Collegare una tabella ODBC in Access 2007
-
11-07-2019 - |
Domanda
Ho un'applicazione Access 2002 che collega una tabella Oracle tramite ODBC con questo codice:
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
Sfortunatamente, Access 2007 non accetta più questa sintassi, dicendo che ODBCDirect non è più supportato (errore di runtime 3847) e suggerisce di usare ADO invece di DAO. Qualcuno potrebbe dirmi come posso modificare questo codice per soddisfare Access 2007?
Soluzione
Ho scoperto che avrei potuto risolvere il mio problema in un modo molto semplice, eliminando le prime due dichiarazioni e modificando la terza in questo modo:
DoCmd.TransferDatabase acLink, "ODBC Database", "ODBC;DRIVER=Microsoft ODBC for Oracle;SERVER=myserver;UID=myuser;PWD=mypassword", acTable, "SCHEMA.TABLE", "TABLE", False, True
In questo modo la tabella verrebbe collegata senza richiedere nulla. Se lascio alla stringa di connessione un semplice "ODBC", invece, Access chiederà di specificare la connessione odbc e gli altri parametri mancanti, ottenendo così la stessa cosa che ho provato a eseguire con le istruzioni precedenti.
Altri suggerimenti
Prova questo:
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
Sostituisci il testo tra parentesi ( []
) con le tue informazioni.