Ihre Verbindungszeichenfolge ist falsch, Sie können Provider=OraOLEDB.Oracle
und Driver={Microsoft ODBC for Oracle}
nicht gleichzeitig verwenden.
Falls Sie die Oracle OLE DB-Provider verwenden versuchen Sie dies:
Set oConn = CreateObject("ADODB.Connection")
oConn.provider = "OraOLEDB.Oracle"
DB = host & ":" & port & "/" & SERVICE_NAME
oConn.Open "Data Source=DB", User, pass
, die gleichwertig sein sollte:
Set oConn = CreateObject("ADODB.Connection")
DB = host & ":" & port & "/" & SERVICE_NAME
oConn.Open "Provider=OraOLEDB.Oracle;Data Source=DB;User Id=" & User & ";Password=" & pass
aber ich weiß nicht, ob Oracle OLE DB Easy Connect Naming Method unterstützt (EZ), ich habe es nie benutzt. Im Fall nicht unterstützt EZ versuchen diese stattdessen:
DB = "(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=" & host & ")(PORT=" & port & "))(CONNECT_DATA=(SERVICE_NAME=" & SERVICE_NAME & ")))"
Eigentlich sollte eine solche Definition in tnsnames.ora
Datei geschrieben werden, zum Beispiel
DB_TNS.your.domain =
(DESCRIPTION=
(ADDRESS=(PROTOCOL=tcp)(HOST=host)(PORT=1531))
(CONNECT_DATA=
(SERVICE_NAME=service_name)
(SERVER=server)
(INSTANCE_NAME=instance_name)
)
)
Dann können Sie einfach oConn.Open "Data Source=DB_TNS", User, pass
Im Fall, dass Sie es vorziehen, die ODBC-Treiber zu verwenden (obwohl der ODBC-Treiber von Microsoft ist deprecated) verwenden diese: ADO ConnectionStings
Ihre Frage unklar ist. Haben Sie einen Fehler? Was ist der TNSNAME Ihrer Datenbank und welche Version Ihres Microsoft Oracle-Treibers? Wie auch immer die Antwort ist wahrscheinlich [hier] (https://www.connectionstrings.com/oracle/) –