Error-Objekt (DAO)
Gilt für: Access 2013, Office 2013
Das Error-Objekt enthält Details zu Datenzugriffsfehlern. Dabei bezieht sich jeder Fehler auf eine einzelne Operation, an der DAO beteiligt ist.
Hinweise
Jede Operation, an der DAO beteiligt ist, kann mindestens einen Fehler generieren. Beispielsweise kann ein Aufruf an einen ODBC-Server zu einem Fehler des Datenbankservers, einem Fehler von ODBC und einem DAO-Fehler führen. Sobald einer dieser Fehler auftritt, wird ein Error-Objekt in die Errors-Auflistung des DBEngine-Objekts aufgenommen. Ein einzelnes Ereignis kann somit mehrere Error-Objekte ergeben, die in der Errors-Auflistung anzeigt werden.
Generiert eine anschließende DAO-Operation einen Fehler, wird die Errors-Auflistung gelöscht, und die neuen Error-Objekte werden in die Errors-Auflistung aufgenommen. DAO-Operationen, die keinen Fehler generieren, wirken sich nicht auf die Errors-Auflistung aus.
Die Gruppe der Error-Objekte in der Errors-Auflistung beschreibt einen Fehler. Das erste Error-Objekt ist der Fehler der niedrigsten Ebene (der verursachende Fehler), das zweite Objekt ist der Fehler der nächsten Ebene usw. Wenn beispielsweise beim Öffnen eines Recordset-Objekts ein ODBC-Fehler auftritt, enthält das erste Error-Objekt – Errors(0) – den ODBC-Fehler der niedrigsten Ebene. nachfolgende Fehler enthalten die ODBC-Fehler, die von den verschiedenen ODBC-Ebenen zurückgegeben werden. In diesem Fall geben der ODBC-Treibermanager und möglicherweise direkt der Treiber gesonderte Error-Objekte zurück. Das letzte Error-Objekt – Errors.Count-1 – enthält den DAO-Fehler, der angibt, dass das Objekt nicht geöffnet werden konnte.
Das Auflisten der speziellen Fehler in der Errors-Auflistung ermöglicht den Fehlerbehandlungsroutinen eine präzisere Ermittlung der Fehlerursache und das Durchführen der richtigen Schritte zur Wiederherstellung. Sie können die Eigenschaften des Error-Objekts lesen, um die folgenden Details zu den einzelnen Fehlern zu erhalten:
Die Description -Eigenschaft mit dem Text der Fehlermeldung, die beim Abfangen des Fehlers auf dem Bildschirm angezeigt wird.
The Number property, which contains the Long integer value of the error constant.
Die Source -Eigenschaft, die das Objekt identifiziert, das den Fehler verursacht hat. Das ist besonders nützlich, wenn sich nach einem Aufruf der ODBC-Datenquelle mehrere Error-Objekte in der Errors-Auflistung befinden.
Die Eigenschaften HelpFile und HelpContext, die jeweils die betreffende Microsoft Windows-Hilfedatei und das Hilfethema (sofern vorhanden) zu dem Fehler angeben.
Hinweis
Wenn Sie beim Programmieren in Microsoft Visual Basic for Applications (VBA) die Neue Schlüsselwort (keyword) verwenden, um ein Objekt zu erstellen, das anschließend einen Fehler verursacht, bevor dieses Objekt an eine Auflistung angefügt wurde, wird die Errors des DBEngine-Objekts angezeigt. -Auflistung enthält keinen Eintrag für den Fehler dieses Objekts, da das neue Objekt nicht dem DBEngine-Objekt zugeordnet ist. Die Fehlerinformationen sind jedoch im VBA-Objekt Err verfügbar. Ihr VBA-Fehlerbehandlungscode sollte die Errors-Auflistung überprüfen, wenn Sie einen Datenzugriffsfehler erwarten.
Wenn Sie einen zentralisierten Fehlerhandler schreiben, testen Sie das VBA Err-Objekt , um zu ermitteln, ob die Fehlerinformationen in der Errors-Auflistung gültig sind. Wenn die Number-Eigenschaft des letzten Elements der Errors-Auflistung (DBEngine.Errors.Count - 1) und der Wert des Err-Objekts übereinstimmen, können Sie eine Reihe von Select Case-Anweisungen verwenden, um den oder die aufgetretenen DAO-Fehler zu identifizieren. Wenn sie nicht übereinstimmen, verwenden Sie die Refresh-Methode für die Errors-Auflistung .
Beispiel
Dieses Beispiel löst einen Fehler aus, fängt ihn auf und zeigt die Eigenschaften Description, Number, Source, HelpContext und HelpFile des resultierenden Error-Objekts an.
Sub DescriptionX()
Dim dbsTest As Database
On Error GoTo ErrorHandler
' Intentionally trigger an error.
Set dbsTest = OpenDatabase("NoDatabase")
Exit Sub
ErrorHandler:
Dim strError As String
Dim errLoop As Error
' Enumerate Errors collection and display properties of
' each Error object.
For Each errLoop In Errors
With errLoop
strError = _
"Error #" & .Number & vbCr
strError = strError & _
" " & .Description & vbCr
strError = strError & _
" (Source: " & .Source & ")" & vbCr
strError = strError & _
"Press F1 to see topic " & .HelpContext & vbCr
strError = strError & _
" in the file " & .HelpFile & "."
End With
MsgBox strError
Next
Resume Next
End Sub