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?

War es hilfreich?

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.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top