2011-06-14 9 views
0

여러 Oracle 데이터베이스에서 테이블을 가져올 수있는 간단한 VBA가 있습니다. 하나의 ODBC 항목이 있고 다른 자격 증명을 사용하여 다른 데이터베이스에 연결합니다.Access 2002에서 여러 oracle 소스의 데이터베이스를 어떻게 전송할 수 있습니까?

내 전송 데이터베이스 코드는 간단하다 :

DoCmd.TransferDatabase acImport, "ODBC", "ODBC;DNS=source;UID=user;PWD=pass;", acTable, "SomeRemoteTable", "MyLocalTable", True

그 코드가 작동하지만 다른 사용자와 동일한 명령을 실행할 때/나는 얻을이 명령 한 후이 오류 immediatley 통과 :

Run-time error '3011': The Microsoft Jet database engine could not find the object 'SomeRemoteTable'. Make sure the object exists and that you spell its name and the path name correctly.

여기 캐치의 :

는 DNS, 사용자 자격 증명 및 테이블 이름은 정확합니다. 액세스를 열고 주석을 달면 주석이 성공적으로 실행됩니다. 그러나 한 명령이 실행되면 Access가 닫히고 다시 열릴 때까지 다른 명령이 실행되지 않습니다.

다음으로 진행하기 전에 첫 번째 연결을 닫는 방법이 있어야한다고 생각합니다. 누구든지 내가 시도 할 수있는 아이디어가 있습니까?

+0

은 분명하지만 여러 개의 TransferDatabase 명령을 실행할 수 있지만 하나의 자격 증명 집합 만 있습니다. 대체 자격 증명으로 TransferDatabase 명령을 실행하려면 액세스를 다시 시작한 다음 실행해야합니다. –

+0

기다림 효과가없는 것 같습니다. 관심이 있는지 확실하지 않지만 오류가 발생한 후에 원래 TransferDatabase 명령을 실행할 수 있으므로 첫 번째 연결을 계속 사용할 수 있습니다. –

+1

ADO를 사용해 보셨습니까? – Fionnuala

답변

0

데이터베이스 중 하나에 dblink를 설정하는 방법에 대해 데이터베이스를 소유하고 있다면 어떻게해야합니까? 그러면 연결이 1 회만 필요합니다.

+0

불행히도 데이터베이스는 저의 소유가 아니므로 데이터베이스 끝에있는 모든 것을 변경하는 것은 옵션이 아닙니다. –

+0

당신이 그렇게 말할 것 같은 느낌이 들었습니다. 2 DSN을 사용하여 연결을 시도 했습니까? –

관련 문제