2017-11-06 13 views
0

ich einige Excel-Makros VBA-Codes haben:VBA Excel Macro Oracle XE Verbindung

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

"XE_DSN" System DNS-Verbindung ist erfolgreich in ODBC-Treiberkonfiguration Panel.

Ich habe die nächste Fehlermeldung mit Makro:

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

ich Oracle XE mit PL/SQL verbinden kann (ich weiß, PL/SQL nicht mein System DNS genannt "XE_DNS" verwenden), aber ich kann keine Verbindung mit Makro.

Können Sie mir helfen, warum?

+0

ich gefunden habe, dass die gesamte Verbindungszeichenkette im Vergleich zu der DSN funktioniert in der Regel besser für die Verbindung zu Oracle von Excel ADO. –

+0

@ScottHoltzman Ich habe gleiche Fehlermeldung mit diesem Code: dbconn.Open "PROVIDER = OraOLEDB.Oracle DATA SOURCE = XE; USER ID = SYSTEM; PASSWORT = mypassword;" hast du daran gedacht? –

+0

Ich bin mir nicht sicher, ob es genau verwandt ist, aber das habe ich für ein neues Projekt getan: 'Driver = {Microsoft ODBC for Oracle}; CONNECTSTRING = (BESCHREIBUNG = (ADRESSE = (PROTOKOLL = TCP) (HOST = XXXL-DB01) (PORT = nnnn)) (CONNECT_DATA = (SERVICE_NAME = myEnv))); uid = U_I_D; pwd = P_W_D; ' –

Antwort

0

Die Verbindungszeichenfolge ist falsch.

Die richtige Verbindungszeichenfolge hängt vom verwendeten Treiber ab. In der Regel kann es "ODBC" oder "OLE DB Providers" sein

Sieht aus wie Sie ODBC verwenden. ODBC-Treiber können von Microsoft stammen. d. h. Microsoft ODBC for Oracle oder von Oracle (wie Oracle in OraClient11g_home1, hängt von Ihrer Version ab).

Die Verbindungszeichenfolge sollte einer von diesen sein:

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"