[AccessD] Import from FoxPro

MartyConnelly martyconnelly at shaw.ca
Mon Jun 27 12:11:30 CDT 2005


If all else fails there is the VFP 9.0 OLE DB Provider to get at the dbc 
file or directory of tables via ADO

I tried downloading the old ODBC Ver 6.0 driver from the main MS Foxpro 
page but that doesn't work
and maybe bad to install on WinXP or Win2000, Microsoft is unclear on this.


This code will read the VFP 9.0 Northwinds Foxpro Sample database that 
comes with the provider


'With the release of Microsoft Visual FoxPro 9.0,
'a new version of the Microsoft OLE DB Provider for Visual FoxPro is now 
available.
'The OLE DB provider is installed when Visual FoxPro 9.0 is installed
'and is typically saved in the C:\Program Files\Common Files\System\Ole 
DB folder.
'It is a single file that is named VfpOleDb.dll and is version 9.0.0.2412.
'To download the OLE DB provider for free, visit the following Microsoft 
Web site:
'http://www.microsoft.com/downloads/details.aspx?FamilyId=E1A87D8F-2D58-491F-A0FA-95A3289C5FD4&displaylang=en
Sub testvfp()
Dim oConn As ADODB.Connection
Dim oRS As ADODB.Recordset
Set oConn = New ADODB.Connection
Set oRS = New ADODB.Recordset
oConn.ConnectionString = "provider=vfpoledb.1;" & _
   "data source=C:\Program Files\Microsoft Visual FoxPro OLE DB 
Provider\Samples\Northwind\northwind.dbc"
  
' ConnStr = "Driver=Microsoft Visual Foxpro Driver; " + _
'   "UID=;SourceType=DBC;SourceDB=C:\VFP\Samples\Tastrade\Data\Tastrade.dbc"
oConn.Open

'Make sure the connection opened:
If Not CBool(oConn.State And adStateOpen) Then
  'Could not open the connection:
  MsgBox "Could not open connection..."
  Set oConn = Nothing
    Set oRS = Nothing
  Exit Sub
Else
  'Process data as usual here...

        Dim oCat As New ADOX.Catalog
        Dim oTbl As ADOX.Table
         Dim oTblc As ADOX.Table
         Dim oname As ADOX.DataTypeEnum
        Dim oCol As Column
       
            oCat.ActiveConnection = oConn

                Debug.Print "TableName   number of columns"
            For Each oTbl In oCat.Tables
                Debug.Print oTbl.Name & "   " & oTbl.Columns.Count
            Next

            Set oTblc = oCat.Tables("Customers")
             Debug.Print ADOX.DataTypeEnum.adChar; ADOX.DataTypeEnum.adChar

            For Each oCol In oTblc.Columns
                Debug.Print oCol.Name & ": " & oCol.DefinedSize & _
                          ": " & oCol.Type
            Next

oRS.Open "SELECT * FROM Customers", oConn

With oRS
  .MoveFirst
  Debug.Print oRS.Fields.Item(0), oRS.Fields.Item(1)
End With
End If
Dim rsSchema As ADODB.Recordset
Dim fld As ADODB.Field
Dim rCriteria As Variant
'Pass in the table name to retrieve index info. The other
'array parameters may be defined as follows:
'    TABLE_CATALOG  (first parameter)
'    TABLE_SCHEMA   (second)
'    INDEX_NAME     (third)
'    TYPE           (fourth)
'    TABLE_NAME     (fifth, e.g. "employee")

rCriteria = Array(Empty, Empty, Empty, Empty, "Customers")

Set rsSchema = oConn.OpenSchema(adSchemaIndexes, rCriteria)

Debug.Print "Recordcount: " & rsSchema.RecordCount

While Not rsSchema.EOF
      Debug.Print "==================================================="

   For Each fld In rsSchema.Fields
      Debug.Print fld.Name & ": " & fld.Value
      'Debug.Print "------------------------------------------------"
   Next
   rsSchema.MoveNext
Wend
rsSchema.Close
Set rsSchema = Nothing
 Set oConn = Nothing
End Sub

Joe Hecht wrote:

>I have had to through Excel sometimes for FP Tables.
>
>Check your properties after importing to Access
>
>Joe Hecht
>Los Angeles CA
>
>-----Original Message-----
>From: accessd-bounces at databaseadvisors.com
>[mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Hollis,Virginia
>Sent: Friday, June 24, 2005 4:40 AM
>To: accessD at databaseadvisors.com
>Subject: [AccessD] Import from FoxPro
>
>Ok, what is the secret to importing from FoxPro to Access 2003? It is
>not in the list of types anymore. I looked through the KB articles but
>still have problems.
>
> 
>
>I pulled the tables up in Visual FoxPro, saved them out as dBase IV
>files, and then tried to import them into Access 2003.  I got the
>message:
>
> 
>
>"Unexpected Error from External Database Driver (8961)"
>
> 
>
>I was able to create an ODBC datasource based on a FoxPro driver that
>was already on my computer.  I tried to import the tables, and it looked
>like it was going to do it, but then I got an error, "Decimal field
>precision too small...
>
> 
>
>I'm running out of ideas.
>
> 
>
>Virginia
>
> 
>
>  
>

-- 
Marty Connelly
Victoria, B.C.
Canada






More information about the AccessD mailing list