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?

È stato utile?

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top