Access 2007의 ODBC 테이블을 연결하십시오
-
11-07-2019 - |
문제
ODBC를 통해 Oracle 테이블을이 코드와 연결하는 Access 2002 응용 프로그램이 있습니다.
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
불행히도, Access 2007은 더 이상이 구문을 받아들이지 않으며, ODBCDirect는 더 이상 지원되지 않는다고 말하고 (런타임 오류 3847) DAO 대신 ADO를 사용하도록 제안합니다. Access 2007을 만족시키기 위해이 코드를 어떻게 수정할 수 있습니까?
해결책
나는 처음 두 진술을 삭제하고 세 번째를이 방법으로 수정함으로써 매우 간단한 방식으로 내 문제를 해결할 수 있음을 발견했습니다.
DoCmd.TransferDatabase acLink, "ODBC Database", "ODBC;DRIVER=Microsoft ODBC for Oracle;SERVER=myserver;UID=myuser;PWD=mypassword", acTable, "SCHEMA.TABLE", "TABLE", False, True
이런 식으로 테이블은 아무것도 홍보하지 않고 연결됩니다. Connect String을 간단한 "ODBC"로 남겨두면 Access는 ODBC 연결 및 다른 누락 된 매개 변수를 지정하여 이전 문서에서 수행하려는 것과 동일한 것을 얻습니다.
다른 팁
이 시도:
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
텍스트를 괄호로 바꾸십시오 ([]
) 정보와 함께.
제휴하지 않습니다 StackOverflow