ODBC Fehler auffangen

24/09/2008 - 15:13 von Josef Morlo | Report spam
Access XP alle SP's, WinXP SP 2, SQL Server 2000 (Dev.)

Hallo allerseits,

wenn bei der Server Anmeldung was schief làuft (etwa: Server existiert
nicht, Datenbank existiert nicht: "Fehler bei der Verbindung: SQLState:
'08004' ...) müsste sich doch auch dieser Fehler über die Errors-Collection
ermitteln und behandeln lassen.

Wenn ich das recht verstehe, müsste der Fehler doch vom ODBC-Treiber an
Access zurückgereicht und mitsamt der Access-Fehlerreaktion in der
Error-Collection abgelegt werden (korrekt?).

Wenn ich nun versuche, die Fehler auszulesen, kriege ich nur den
Access-spezifischen Fehler (im konkreten Fall, 3078, manueller Abbruch der
Aktion). Die spezifischen ODBC-Fehler sind dabei allerdings, sofern sie
denn vorhanden gewesen sind, verschütt' gegangen.

Ist mein Verstàndnis schief bzw. wie müsste man denn korrekterweise die
Fehlerbehandlung aufsetzen?

Hat jemand eine Idee ?
-
Sub PrintErrors()
Dim oErr as Dao.Error
For Each oErr in DBEngine.Errors
Debug.Print oErr.Number & ": " & oErr.Description
Next
End Sub
-
Danke und Grüße

Josef Morlo
 

Lesen sie die antworten

#1 Peter Doering
24/09/2008 - 15:33 | Warnen spam
Hallo,

Josef Morlo wrote:

wenn bei der Server Anmeldung was schief làuft (etwa: Server existiert
nicht, Datenbank existiert nicht: "Fehler bei der Verbindung: SQLState:
'08004' ...) müsste sich doch auch dieser Fehler über die Errors-Collection
ermitteln und behandeln lassen.

Wenn ich das recht verstehe, müsste der Fehler doch vom ODBC-Treiber an
Access zurückgereicht und mitsamt der Access-Fehlerreaktion in der
Error-Collection abgelegt werden (korrekt?).

Wenn ich nun versuche, die Fehler auszulesen, kriege ich nur den
Access-spezifischen Fehler (im konkreten Fall, 3078, manueller Abbruch der
Aktion). Die spezifischen ODBC-Fehler sind dabei allerdings, sofern sie
denn vorhanden gewesen sind, verschütt' gegangen.
-
Sub PrintErrors()
Dim oErr as Dao.Error
For Each oErr in DBEngine.Errors
Debug.Print oErr.Number & ": " & oErr.Description
Next
End Sub
-



Probier mal so:

Sub PrintErrors()
Dim I As Long
For I = 0 To Errors.Count - 1
Debug.Print Errors(I)
Next I
End Sub

Gruss - Peter

Anmeldung zur 11. AEK unter www.donkarl.com/?AEK
Mitglied im http://www.dbdev.org
FAQ: http://www.donkarl.com

Ähnliche fragen