Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1112to1116
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Fehlermeldung von Oracle ODBC Treiber abfangen

Fehlermeldung von Oracle ODBC Treiber abfangen
Oracle
Hi,
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ählen
Wie kann ich diese Meldung abfangen und evtl. sogar auswerten?
Besten Dank!

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Fehlermeldung von Oracle ODBC Treiber abfangen
31.10.2009 03:49:22
Oracle
Hallo Stefan,
das Auswerten der Meldung ist kein Problem, du kannst die Fehlernummer als Wert der Function zurückgeben.
Die Systemmeldung läßt sich mit meinen Kenntnissen nicht unterdrücken -
auch nicht mit DispalyAlerts = False/True
Hier muss man wahrscheinlich nach anderen Infos auf dem System suchen, um die die Installation des Treibers zu prüfen.
Gruß
Franz
Sub aaaTest()
Dim a As Long
a = test
If a = 0 Then
MsgBox "Ich hab den Treiber gefunden"
ElseIf a = -2147467259 Then
MsgBox "Fehler-Nr.= " & a & " - Oracle-Treiber ist nicht installiert!"
Else
MsgBox "Fehler-Nr.= " & a & " - Sonstiger Fehler bei Ausführung von Test!"
End If
End Sub
Function test() As Long
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=;"
fail:
With Err
Select Case .Number
Case 0
'do nothing
Case -2147467259 'Fehler wenn Treiber fehlt
test = .Number
Case Else
MsgBox "Fehler-Nr: " & .Number & vbLf & .Description
test = .Number
End Select
End With
End Function

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige