Hallo zusammen,
nachdem wir bisher unter Office 365 32bit gearbeitet haben , mussten wir nun umstellen auf die 64 bit Version.
Leider funktioniert hier die VFPOLEDB Verbindung zu Visual FoxPro nicht mehr.
Habe nun schon einiges versucht, komme leider nicht weiter.
Der Ansatz über Provider=Microsoft.ACE.OLEDB.12.0 geht leider auch nicht.
Wäre super, wenn mir jemand weiterhelfen könnte.
Anbei der Code wie gehabt unter 32 bit. Hat bisher super funktioniert.
Verweis war "OLE Automation"
Dim cnn As ADODB.connection 'Externe DBF-Tabelle
Dim rsdbf As ADODB.Recordset
Set cnn = New ADODB.connection
Set rsdbf = New ADODB.Recordset
With cnn
.Provider = "VFPOLEDB.1"
.Properties("Data Source").Value = "X:\DATABASE.DBC"
.Properties("Collating Sequence").Value = "MACHINE"
.Properties("Deleted").Value = "True"
.Open
End With
With rsdbf
.ActiveConnection = cnn
.Source = "SELECT * FROM TEST.DBF"
.CursorType = adOpenKeyset
.LockType = adLockOptimistic
.CursorLocation = adUseClient
.Open
End With
Zitat von: David2016 am Januar 05, 2022, 14:27:38nachdem wir bisher unter Office 365 32bit gearbeitet haben , mussten wir nun umstellen auf die 64 bit Version.
Leider funktioniert hier die VFPOLEDB Verbindung zu Visual FoxPro nicht mehr.
Wenn du mit einer 64Bit-Anwendung arbeitest, brauchst du einen 64bit OleDb- oder ODBC-Treiber für den Zugriff auf externe Datenquellen.
Für FoxPro sieht das meines Wissens ziemlich schlecht aus. Vielleicht findest du einen anderen Treiber, der das DBC/DBF-Format lesen kann. Angeblich (https://stackoverflow.com/a/56951438/4783374) funktioniert z.B. der Advantage OleDb-Provider (https://devzone.advantagedatabase.com/dz/content.aspx?Key=20&Release=19&Product=15&Platform=14) auch für FoxPro.
PS:Zitat von: David2016 am Januar 05, 2022, 14:27:38Verweis war "OLE Automation"
Mit Verweisen hat das überhaupt nichts zu tun.
Hallo,
siehe auch:
https://www.ms-office-forum.net/forum/showthread.php?t=378516
Hallo Klaus, vielen Dank für die schnelle Antwort, bin am testen. Der Link geht zur gleichen Frage in einem anderem Forum, liegt an der Verzweiflung. ;)
Sieht vielversprechend aus - danke nochmals - leider bekomme ich keinen Zugriff auf die Tabellen
"Error creating rowset in Icommand"
Dim objcon As ADODB.connection
Dim rst As ADODB.Recordset
Dim strcon As String
Dim strSQL As String
strSQL = "SELECT * FROM KDST.DBF"
strcon = "Provider=Advantage OLE DB Provider;Data Source=D:\ACCESS\Import;ServerType=ADS_LOCAL_SERVER;TableType=ADS_VFP;Extended Properties=dBASE IV;"
Set objcon = New ADODB.connection
objcon.Open strcon
Set rst = New ADODB.Recordset
With rst
.ActiveConnection = objcon
.Source = strSQL
.CursorType = adOpenStatic
.LockType = adLockOptimistic
.CursorLocation = adUseClient
.Open
End With
Zitat von: David2016 am Januar 05, 2022, 18:14:50Sieht vielversprechend aus - danke nochmals - leider bekomme ich keinen Zugriff auf die Tabellen
"Error creating rowset in Icommand"
Du hattest vorher als
Data Source "X:\DATABASE.DBC" angegeben. Hast du das bewusst geändert?
Die Angabe mit DATABASE.DBC als Source geht leider nicht. Die kam noch aus der 32bit Umgebung
Aktuell liegen die DBF Dateien und die DBC Datei im Verzeichnis: D:\ACCESS\Import
...
strcon = "Provider=Advantage OLE DB Provider;Data Source=D:\ACCESS\Import;ServerType=ADS_LOCAL_SERVER;TableType=ADS_VFP;Extended Properties=dBASE IV;"
...
Also mit "Provider=Advantage OLE DB Provider; Data Source=D:ACCESSImport; ServerType=ADS_LOCAL_SERVER; TableType=ADS_VFP;"
und
Dim AdsGetCustRecordset As ADODB.Recordset
Set AdsGetCustRecordset = New ADODB.Recordset
AdsGetCustRecordset.Open "SELECT * FROM TABLE", objcon, adOpenDynamic, adLockPessimistic, adCmdText
Tatsächlich der Zugriff möglich ist. Allerding mit Fehlermeldungen von der Advantage Client Engine.
"exception code was generated when calling the user supplied callbackfuntion . it is being disabled"