Eingabe-Validierung wird ignoriert

26/09/2008 - 15:38 von Volker Neurath | Report spam
Hallo zusammen,

ich möchte nun meinem Eingabeformular eine eingabevalidierung verpassen.

Geprüft werden soll zum einen, ob bestimmte Felder überhaupt gefüllt
sind (Muss-Felder), zum anderen soll geprüft werden, ob getàtigte
eingaben für das jeweilige Feld gültig sind.
(Beispielsweise habe ich ein Feld, in dem die Anzahl der Erfassten
Artikel eingetragen wird - dieses Feld darf nur ganzzahlige Werte >0
enthalten)

Einen ersten Test habe ich mit der Angebotsnummer vorgenommen, hier
sollen alphanumerische Werte verhindert und nur rein numerische eingaben
zugelassen werden.

Dazu habe ich in meinem Formular für die "BeforeUpdate" Eigenschaft des
eingabefeldes folgenden Code hinterlegt:

Private Sub txtQuotationNr_BeforeUpdate(Cancel As Integer)
If Not (IsNumeric(Me!txtQuotationNr.Value)) Then
MsgBox "Die QuotationNr darf nur Ziffern enthalten!", _
vbOKOnly + vbExclamation, "Eingabefehler"
Cancel = True
Exit Sub
End If

End Sub

Leider ignoriert Access bei bisherigen Tests diese Prozedur, statt
meiner Message-Box erscheint die Access-Standardmeldung "Sie haben einen
Wert eingegeben der für dieses Feld nicht zulàssig ist [...]"

Wieso?
Warum erscheint nicht meine MsgBox?
wo liegt hier mein Denkfehler?

Der Test bestand darin das Formular zu öffnen, in das Feld einen
ungültigen Wert einzugeben und dann mit der Tab-Taste in das nàchste
Feld zu springen.

Volker

Wenn es vom Himmel Zitronen regnet -- lerne, Limonade zu machen.
 

Lesen sie die antworten

#1 Jens Schilling
26/09/2008 - 15:54 | Warnen spam
Hallo, Volker

Volker Neurath wrote:
Hallo zusammen,

ich möchte nun meinem Eingabeformular eine eingabevalidierung
verpassen.
Geprüft werden soll zum einen, ob bestimmte Felder überhaupt gefüllt
sind (Muss-Felder), zum anderen soll geprüft werden, ob getàtigte
eingaben für das jeweilige Feld gültig sind.
(Beispielsweise habe ich ein Feld, in dem die Anzahl der Erfassten
Artikel eingetragen wird - dieses Feld darf nur ganzzahlige Werte >0
enthalten)

Einen ersten Test habe ich mit der Angebotsnummer vorgenommen, hier
sollen alphanumerische Werte verhindert und nur rein numerische
eingaben zugelassen werden.

Dazu habe ich in meinem Formular für die "BeforeUpdate" Eigenschaft
des eingabefeldes folgenden Code hinterlegt:

Private Sub txtQuotationNr_BeforeUpdate(Cancel As Integer)
If Not (IsNumeric(Me!txtQuotationNr.Value)) Then
MsgBox "Die QuotationNr darf nur Ziffern enthalten!", _
vbOKOnly + vbExclamation, "Eingabefehler"
Cancel = True
Exit Sub
End If

End Sub

Leider ignoriert Access bei bisherigen Tests diese Prozedur, statt
meiner Message-Box erscheint die Access-Standardmeldung "Sie haben
einen Wert eingegeben der für dieses Feld nicht zulàssig ist [...]"

Wieso?



Weil der Wert nicht zu dem festgelegten Format passt.

Warum erscheint nicht meine MsgBox?



Weil Before_Update des Formulares beim Navigieren innerhalb des Datensatzes
noch nicht ausgelöst wird.

wo liegt hier mein Denkfehler?



Leg's doch mal ins Before_Update des Feldes ...

Gruss
Jens
______________________________
11. AEK - Oktober 2008 ( www.donkarl.com/?AEK )
FAQ: http://www.donkarl.com

Ähnliche fragen