Form_error: Fehlerzuweisung an Objekt

Guten Morgen,

ich möchte nicht die Fehlermeldungen von Access verwenden (zu kompliziert für den Anwender). Aus diesem Grund verwende ich folgende Prozedur (vereinfachtes Beispiel):

Private Sub Form_Error(DataErr As Integer, Response As Integer)
Response = acDataErrContinue
Select Case DataErr
Case 2113
MsgBox „Bitte eine Zahl eingeben!“, vbInformation, „Falsche
Eingabe“
txtZahl.setfocus
Case Else
Response = acDataErrDisplay
End Select
End Sub

Der Fehler 2113 tritt auf, wenn in ein als Zahl definiertes Feld ein Buchstabe eingegeben wird und das Feld dann verlassen wird. Wenn ich nur ein Feld mit Zahl hab, ist das kein Problem.
Habe ich nun aber zwei Felder mit Zahlen, woher weiss ich nun, bei welchem Feld er den Fehler verursacht?

Schöne Grüße,

Oliver.

Hallo,

ich möchte nicht die Fehlermeldungen von Access verwenden (zu
kompliziert für den Anwender). Aus diesem Grund verwende ich
folgende Prozedur (vereinfachtes Beispiel):

Private Sub Form_Error(DataErr As Integer, Response As
Integer)
Response = acDataErrContinue
Select Case DataErr
Case 2113

MsgBox „Bitte eine Zahl eingeben!“, vbInformation, "Falsche

Eingabe Im Feld " & Screen.ActiveControl.Name

’ txtZahl.setfocus überflüssig, Der Focus bleibt im angemeckerten Feld

Case Else
Response = acDataErrDisplay
End Select
End Sub

Der Fehler 2113 tritt auf, wenn in ein als Zahl definiertes
Feld ein Buchstabe eingegeben wird und das Feld dann verlassen
wird. Wenn ich nur ein Feld mit Zahl hab, ist das kein
Problem.
Habe ich nun aber zwei Felder mit Zahlen, woher weiss ich nun,
bei welchem Feld er den Fehler verursacht?

siehe oben die Referenz auf Screen.Activecontrol.Name

Ansonsten wäre eine Fehlerprüfung im BeforeUpdate-Ereignis der jeweiligen Controls vielleicht besser aufgehoben.

Viele Grüße vom Bodensee
Franz , DF6GL

PS: Feedback erwünscht!

Hallo Franz,

das hier war der eintscheidende Hinweis:

MsgBox „Bitte eine Zahl eingeben!“,
vbInformation, "Falsche

Eingabe Im Feld " & Screen.ActiveControl.Name

Mit dem Ereignis „BeforeUpdate“ komme ich leider nicht wirklich weiter. Das hab’ ich schon probiert.

Ansonsten wäre eine Fehlerprüfung im BeforeUpdate-:Ereignis der jeweiligen Controls vielleicht
besser aufgehoben.

Für mich habe ich nun folgendes beschlossen:

a) Fehlermeldungen werden über das Ereignis „Form_Error“ abgefangen.
b) Das „Eingabeformat“ für Felder definiere ich nicht. Dies wäre zwar schön als Eingabehilfe. Aber die Hinweismeldung finde ich nicht schön - auch nicht mit der Eigenschaft „Gültigkeitsmeldung“. Das Format überwach ich anschließend im Ereignis „Form_BeforeUpdate“.

Schöne Grüße aus Ein-bisschen-Nördlich-vom-Bodensee-aber-noch-Württemberg,

Oliver.