2017-11-06 15 views
0

:VBA 엑셀 좀 엑셀 매크로 VBA 코드를 매크로 오라클 XE 연결

Set dbconn = New ADODB.Connection 
dbconn.ConnectionString = "DSN=XE_DSN;" 
dbconn.Open 

"XE_DSN"시스템 DNS 연결이 ODBC 드라이버 구성 패널에 성공한 것입니다.

나는 매크로 다음 오류 메시지가 :

[Oracle][ODBC][Ora]ORA-12154: TNS:could not resolve the connect identifier specified. 

내가 PL/SQL (나는/SQL PL을 알고있다 "XE_DNS"라는 내 시스템의 DNS를 사용하지 말아)하지만 연결할 수 없습니다 오라클 XE에 연결할 수 있습니다 매크로.

왜 도와 줄 수 있습니까?

+0

나는 전체 연결 문자열을 전달하면 DSN은 일반적으로 엑셀 ADO에서 오라클 연결을위한 더 나은 작동에 비해 것으로 나타났습니다. –

+0

@ScottHoltzman 이 코드와 같은 에러 메시지가 : dbconn.Open "PROVIDER = OraOLEDB.Oracle 단계; DATA SOURCE = XE, 사용자 ID = SYSTEM; PASSWORD = mypassword을;" 이 문제를 생각 했습니까? –

+0

정확하게 관련이 있는지 잘 모르겠지만, 최근 프로젝트에서 이렇게 한 것입니다.'Driver = {Microsoft ODBC for Oracle}; CONNECTSTRING = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP) (HOST = XXXL-DB01) (PORT = nnnn)) (CONNECT_DATA = (SERVICE_NAME = myEnv)))); uid = U_I_D; pwd = P_W_D;' –

답변

0

연결 문자열이 잘못되었습니다.

올바른 연결 문자열은 사용하는 드라이버에 따라 다릅니다. 일반적으로 "ODBC"또는 "OLE DB 공급자"일 수 있습니다.

ODBC를 사용하는 것처럼 보입니다. ODBC 드라이버는 Microsoft에서 제공 할 수 있습니다. 즉 Microsoft ODBC for Oracle 또는 오라클 (Oracle in OraClient11g_home1과 같은 버전)은 사용중인 버전에 따라 다릅니다.

연결 문자열은 다음 중 하나 여야합니다 :

dbconn.ConnectionString = "Driver={Oracle in OraClient11g_home1};Uid=" & <username> & ";Pwd=" & <password> & ";DBQ=XE_DSN" 

dbconn.ConnectionString = "Driver={Microsoft ODBC for Oracle};Uid=" & <username> & ";Pwd=" & <password> & ";Server=XE_DSN"