Access-o-Mania

Access-Forum (Deutsch/German) => Tabelle/Abfrage => Thema gestartet von: David2016 am Januar 05, 2022, 14:27:38

Titel: Anbindung an VFP über Access 64 bit
Beitrag von: David2016 am Januar 05, 2022, 14:27:38
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
Titel: Re: Anbindung an VFP über Access 64 bit
Beitrag von: PhilS am Januar 05, 2022, 15:39:13
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.
Titel: Re: Anbindung an VFP über Access 64 bit
Beitrag von: MzKlMu am Januar 05, 2022, 16:41:51
Hallo,
siehe auch:
https://www.ms-office-forum.net/forum/showthread.php?t=378516
Titel: Re: Anbindung an VFP über Access 64 bit
Beitrag von: David2016 am Januar 05, 2022, 16:49:41
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. ;)
Titel: Re: Anbindung an VFP über Access 64 bit
Beitrag von: David2016 am Januar 05, 2022, 18:14:50
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
Titel: Re: Anbindung an VFP über Access 64 bit
Beitrag von: PhilS am Januar 05, 2022, 20:27:50
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?
Titel: Re: Anbindung an VFP über Access 64 bit
Beitrag von: David2016 am Januar 05, 2022, 21:43:15
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;"
  ...
 
Titel: Re: Anbindung an VFP über Access 64 bit
Beitrag von: David2016 am Januar 07, 2022, 12:44:53
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"