Access
 sql >> Datenbank >  >> RDS >> Access

Greifen Sie auf die Suche nach Fehlermeldungen zu

Hatten Sie schon einmal eine Access-Fehlernummer, aber nicht die Fehlermeldung, die erklärt, was es ist?

Der AccessError() -Funktion ist eine schnelle Möglichkeit, die mit einer Access-Fehlernummer verknüpfte Fehlermeldung zu erhalten:

Das Pipe-Platzhalterzeichen

Das Pipe-Zeichen (| ) ist ein vertikaler Balken (verfügbar über [Shift] + [\] {Backslash} auf einer englischen Tastatur).

Die AccessError-Funktion verwendet dieses Zeichen als Platzhalter für instanzspezifischen Text in einer Fehlermeldung.

Zugriffsfehler 3211 lautet beispielsweise „... konnte Tabelle '|' nicht sperren. ..."  Das Pipe-Zeichen in der allgemeinen Nachricht wird durch die tatsächliche Zeichenfolge ersetzt, die in der Codezeile verwendet wurde, die die Fehlermeldung ausgelöst hat:

Offizielle Dokumentation

Die AccessError-Funktion ist eigentlich eine Methode des Access.Application-Objekts. Hier ist eine Beschreibung dessen, was es tut, aus der offiziellen Dokumentation:

Sie können den AccessError verwenden -Methode, um die beschreibende Zeichenfolge zurückzugeben, die einem Microsoft Access- oder Data Access Objects (DAO)-Fehler zugeordnet ist.

Es ist erwähnenswert, dass dies ein Microsoft ist Zugriffsspezifisch Funktion. Mit anderen Worten, Sie könnten es nicht aus einer anderen Office-Anwendung wie Excel oder Word aufrufen.*

(* Dies ist technisch gesehen nicht wahr. Sie könnten ein Access-Anwendungsobjekt über COM in jeder VBA-Umgebung erstellen und dann die AccessError-Methode von diesem Objekt aufrufen. Das wäre natürlich nur nützlich, wenn Sie es überprüfen möchten Zugriffsspezifische Fehlermeldungszeichenfolgen in dieser anderen Office-Anwendung, was unwahrscheinlich erscheint.)

Anwendungsfälle

Ehrlich gesagt kann ich mich nicht erinnern, diese Methode jemals in meinem Anwendungscode verwendet zu haben.

Dies ist eine Funktion, die ich fast ausschließlich im Direktfenster verwende, wenn ich nur schnell feststellen möchte, was eine Access-Fehlernummer darstellt.

Dies wäre am nützlichsten, wenn Sie auf einen Fehlerbehandler stoßen, der eine Select Case Err.Number enthält Block und alle der einzelnen Case Anweisungen verwendeten Zahlen ohne begleitende Kommentare, etwa so:

    Select Case Err.Number
    Case 2452   
        'Do something
    Case 2455   
        'Do a different thing
    Case 2467   
        'Do something else
    End Select

Bewaffnet mit der AccessError-Methode könnten Sie diesen Code verbessern, indem Sie einen Kommentar mit einer kurzen Beschreibung jeder Fehlernummer hinzufügen:

    Select Case Err.Number
    Case 2452   'invalid reference to the Parent property
        'Do something
    Case 2455   'invalid reference to the property
        'Do a different thing
    Case 2467   'expr refers to object that is closed or doesn't exist
        'Do something else
    End Select

Überlegungen zur Integration von Fehlerdatenbanken

Wenn Sie eine Fehlerdatenbank wie FogBugz verwenden, die eine Funktion zum Gruppieren von Fehlern basierend auf ihrer Beschreibung bietet, möchten Sie vielleicht die generische verwenden Fehlermeldung im Betreff des Fehlerberichts (oder welches Feld auch immer die Gruppierung vornimmt) und erfassen Sie die spezifischen Fehlermeldung im Detailfeld des Fehlerereignisses.

Ich bespreche dieses Problem im Zusammenhang mit meiner benutzerdefinierten Fehlerauslösefunktion hier:Fehler in VBA ausgeben:Fehler bei der Datenbankintegration.

Referenzierte Artikel

Werfen von Fehlern in VBAEinführung einer reibungslosen Alternative zu Err.Raise. Mike Wolfe nicht mehr gesetzt