ich bin gerade dabei ein Installer-Script zu schreiben, dass u.a. prüfen soll, ob der Oracle ODBC-Treiber schon auf dem Systems installiert ist und diesen nachinstalliert wenn das nicht der Fall ist.
Da Excel einen Fehler ausgibt wenn der Treiber nicht installiert ist dachte ich, ich könnte eine Testverbindung zur Datenbank aufbauen und mit "On Error" arbeiten um den Fehlerfall festzustellen. Allerdings habe ich keine Methode gefunden, wie ich verhindern kann, dass die Fehlermeldung am Display ausgegeben wird.
Die ausgegebene Fehlermeldung lautet:
Titel: "Microsoft ODBC for Oracle"
"The Oracle(TM) client and network components were not found.
These components are supplied by Oracle Corporation and are part
of the oracle version (7.3) or greater client software installation.
you will not be unable to use this driver until these components have been installed."
Ihr könnt den Fehler mit folgendem Code nachvollziehen:
Function test()
Dim WshShell
Dim WSHEnvX
On Error GoTo fail
' NLS_LANG temporär setzen
Set WshShell = CreateObject("WScript.Shell")
Set WSHEnvX = WshShell.Environment("Process")
WSHEnvX("NLS_LANG") = "GERMAN_GERMANY.WE8MSWIN1252"
Dim connZ As New ADODB.Connection
Dim rsZ As New ADODB.Recordset
connZ.Open "Driver={Microsoft ODBC for Oracle}; " & _
"CONNECTSTRING=(DESCRIPTION=" & _
"(ADDRESS=(PROTOCOL=TCP)" & _
"(HOST=)(PORT=))" & _
"(CONNECT_DATA=(SERVICE_NAME=))); uid=;pwd=;"
GoTo success:
fail:
MsgBox ("An error occured")
success:
End Function
Ihr müsst aber noch unter Extras->Verweise "Microsoft ActiveX Data Objects 2.8 Libary" auswählenWie kann ich diese Meldung abfangen und evtl. sogar auswerten?
Besten Dank!