Wenn Sie mit Makros programmieren, was zumindest beim Einsatz von Webdatenbanken (ab Access 2010) oder beim Einsatz von Datenmakros nötig ist, möchten Sie vielleicht auch eine Fehlerbehandlung zu Ihren Makros hinzufügen. Dieser Artikel zeigt, wie Fehlerbehandlung in Makros funktioniert und welche Makroaktionen dafür benötigt werden.
Beispieldatenbank
Die Beispiele dieses Artikels finden Sie in der Datenbank 1403_Makros.mdb.
Makroaktionen zur Fehlerbehandlung
Für die Fehlerbehandlung stellt Access ab Version 2010 die beiden folgenden Makroaktionen zur Verfügung:
- BeiFehler: Wird vor dem Aufruf der mit einer Fehlerbehandlung zu versehenen Makroaktionen aufgerufen und nimmt die beiden Parameter Gehe zu und Makroname entgegen.
- LöschenMakroFehler: Löscht die Informationen des zuletzt aufgetretenen Fehlers
Makroaktion BeiFehler
Die Makroaktion BeiFehler erlaubt verschiedene Aktionen, wenn ein Fehler in einer der folgenden Makroaktionen ausgelöst wird. Diese können Sie mit dem Parameter Gehe zu einstellen (siehe Bild 1):
Bild 1: Mögliche Schritte nach dem Auftreten eines Fehlers
- Nächster: Sorgt dafür, dass die fehlerhafte Anweisung ignoriert und die folgende Anweisung ausgeführt wird. In Bild 2 löst die Division durch 0 einen Fehler aus und zeigt gleich die folgende Meldung an. Dies entspricht der Anweisung On Error Resume Next unter VBA.
- Macroname: Sie können eine Fehlerbehandlung in einem Makro oder einem Untermakro programmieren. Wenn Sie diese Option auswählen, geben Sie für den zweiten Parameter Makroname den Namen des aufzurufenden Makros oder Untermakros an.
- Fehlgeschlagen: Löst den Fehler aus und zeigt die Standardmeldung von Access an, so als ob die Fehlerbehandlung gar nicht aktiviert wäre. In der Tat dient diese Variante dazu, eine zuvor aktivierte benutzerdefinierte Fehlerbehandlung wieder zu deaktivieren (entspricht der Anweisung On Error Goto 0 unter VBA)
Bild 2: Gehe zu: Nächster fährt nach dem Fehler mit der folgenden Makroaktion fort.
In letzterem Fall würde Access die gleiche Fehlermeldung anzeigen, als wenn das Makro keine Fehlerbehandlung enthielte. Diese sieht wie die Fehlermeldung aus, welche eine entsprechende VBA-Anweisung auslösen würde – nur ohne Angabe der Fehlernummer und ohne die Möglichkeit, den Fehler zu debuggen (siehe Bild 3).
Bild 3: Gehe zu: Fehlgeschlagen zeigt die eingebaute Fehlermeldung von Access an.
Anschließend erscheint dann noch ein Dialog mit weiteren Informationen (siehe Bild 4). Dieser enthält den Makronamen, die Bedingung, den Aktionsnamne, der den Fehler ausgelöst hat, die Argumente und die Fehlernummer. Außerdem finden Sie dort die Möglichkeit, verschiedene Aktionen auszuführen.
Bild 4: Fehlermeldung eines Makros
Das MacroError-Objekt
Zusätzlich gibt es ein Objekt namens MacroError, das ähnliche Informationen liefert wie das von VBA bekannte Err-Objekt:
- Number: Fehlernummer (entspricht Err.Number)
- Description: Fehlermeldung (entspricht Err.Description)
- MacroName: Name des Makros, das den Fehler auslöste
- ActionName: Name der Makroaktion, die den Fehler auslöste
- Arguments: Parameter der Makroaktion
- Condition: Bedingung beim Aufruf der Makroaktion
Möchten Sie weiterlesen? Dann lösen Sie Ihr Ticket!
Hier geht es zur Bestellung des Jahresabonnements des Magazins Access [basics]:
Zur Bestellung ...
Danach greifen Sie sofort auf alle rund 400 Artikel unseres Angebots zu - auch auf diesen hier!
Oder haben Sie bereits Zugangsdaten? Dann loggen Sie sich gleich hier ein: