Spezifische Fehlermeldungen anzeigen
Veröffentlicht am 09.02.2004
Frage:
Um in meiner Datenbank die mehrfache Eingabe von Personaldaten zu verhindern, habe ich in der Tabelle Personaldaten einen Mehrfelder-Sekundärschlüssel mit der Eigenschaft keine Duplikate erstellt, der im Fall der Eingabe von identischen Personalien verhindert, dass der neue Datensatz gespeichert wird und der statt dessen eine Fehlermeldung produziert.
Wenn ich ein Makro mit den Aktionen Meldung, AusführenBefehl (Argument Rückgängig) und StopAlleMakros auf die Formulareigenschaft Bei Fehler setze, so erscheint meine benutzerdefinierte Fehlermeldung zwar, aber sie erscheint natürlich auch bei allen anderen im Formular auftretenden Fehlern.
Wie kann ich nun eine fehlerspezifische Meldung erzeugen? Wie muss eine VBA-Prozedur aussehen, die diesen Fehler auffängt?
Antwort:
Um Ihre Fehlerprozedur auf VBA zu basieren, setzen Sie zunächst die Eigenschaft Bei Fehler Ihres Formulars auf [Ereignisprozedur]. Geben Sie dann folgende Zeilen im Code-Fenster ein.
Private Sub Form_Error(DataErr As Integer, Response As Integer)
' Fehlernummer ausgeben
MsgBox DataErr
If DateErr = 30 Then
DoCmd.RunMacro "MeinMakro"
Response = acDataErrContinue
Else
Response = acDataErrDisplay
End If
End Sub
Der Parameter DataErr enthält eine eindeutige Fehlernummer, die Sie prüfen können. In diesem Beispiel wird das Makro MeinMakro ausgeführt, falls Fehler 30 auftreten sollte.
Alle anderen Fehler werden mit einer normalen Fehlermeldung quittiert.