Link auf eine ODBC-Tabelle in Access 2007
-
11-07-2019 - |
Frage
Ich habe eine Access 2002-Anwendung, die eine Oracle-Tabelle über ODBC mit diesem Code verknüpft:
Set HRSWsp = CreateWorkspace("CONNODBC", "", "", dbUseODBC)
Set HRSConn = HRSWsp.OpenConnection("HRSCONN", dbDriverPrompt, , "ODBC;")
DoCmd.TransferDatabase acLink, "Database ODBC", HRSConn.Connect, acTable, "SCHEMA.TABLE", "TABLE", False, True
Leider Access 2007 nicht akzeptiert diese Syntax mehr, sagte, dass ODBCDirect wird nicht mehr unterstützt (Laufzeitfehler 3847) und was darauf hindeutet, ADO zu verwenden anstelle von DAO. Könnte mir jemand bitte sagen, wie kann ich diesen Code ändern Access 2007 zu erfüllen?
Lösung
fand ich, dass ich mein Problem auf eine sehr einfache Art und Weise lösen zu können, indem sie die ersten beiden Aussagen zu löschen und die dritte auf diese Weise ändern:
DoCmd.TransferDatabase acLink, "ODBC Database", "ODBC;DRIVER=Microsoft ODBC for Oracle;SERVER=myserver;UID=myuser;PWD=mypassword", acTable, "SCHEMA.TABLE", "TABLE", False, True
Auf diese Weise würde die Tabelle ohne Aufforderung für alles verknüpft werden. Wenn ich die Verbindungszeichenfolge ein einfaches „ODBC“ verlassen, stattdessen wird der Zugang bitten, die ODBC-Verbindung und die anderen fehlende Parameter angeben, so dass die gleiche Sache zu erhalten ich mit den vorherigen Aussagen auszuführen versucht.
Andere Tipps
Versuchen Sie folgendes:
Dim tbl As New ADOX.Table
Dim cat As New ADOX.Catalog
cat.ActiveConnection = _
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=[x:\your_access_db.mdb];Jet OLEDB:Engine Type=4"
tbl.NAME = "[Access_table_name]"
Set tbl.ParentCatalog = cat
tbl.Properties("Jet OLEDB:Create Link") = True
tbl.Properties("Jet OLEDB:Link Provider String") = "ODBC;Driver={Microsoft ODBC For Oracle};Server=OracleServerName;Uid=[user];Pwd=[password];"
tbl.Properties("Jet OLEDB:Cache Link Name/Password") = True
tbl.Properties("Jet OLEDB:Remote Table Name") = "[Oracle_Schema].[Table]"
cat.Tables.Append tbl
cat.ActiveConnection.Close
Ersetzen von Text in Klammern ([]
) mit Ihrem Info.