문제

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

텍스트를 괄호로 바꾸십시오 ([]) 정보와 함께.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top