WCM Forum

WCM Forum (http://www.wcm.at/forum/index.php)
-   Programmierung (http://www.wcm.at/forum/forumdisplay.php?f=17)
-   -   Access 2003 Eingabe erzwingen (http://www.wcm.at/forum/showthread.php?t=233745)

michael58 10.03.2009 16:00

Access 2003 Eingabe erzwingen
 
Hallo!

Ich möchte in einem Access-Formular eine Eingabe erzwingen.
Formular heißt GastNeu, das Feld um das es geht "Vorname"
Ich habe eine Ereignisprozedur beim Verlassen des Feldes geschrieben, aber es wird ein Leerstring akzeptiert. Schaut so aus:

Private Sub Vorname_Exit(Cancel As Integer)

Dim db As DAO.Database
Dim f As Form
Set f = Forms![GastNeu]
Set db = CurrentDb()

If f!Vorname = "" Then
MsgBox "bla"
End If

End Sub

Wo habe ich meinen Denkfehler? Habe leider seit ca. 8Jahren nichts mehr selber geschrieben. Ich will eigentlich nur, daß der Benutzer unbedingt einen Namen in dieses Feld schreibt. Prüfen möchte ich das sofort und nicht erst wenn in die Tabelle geschrieben wird.

Danke

Michael

Jaguar 10.03.2009 16:10

Du gibst zwar eine Messagebox aus, brichst aber die Exit Function nicht ab.
Dazu mußt du den Wert der übergebenen Variable Cancel verändern. Ich nehme mal an der ist 0 und gehört in deinem Fall auf 1 gesetzt. Ansonsten in der Doku nachlesen auf welchen Wert die Variable Cancel gesetzt werden muß.

michael58 10.03.2009 16:22

Servus!

Entschuldigung, habe mich missverständlich ausgedrückt. Ich bekomme keine MsgBox, obwohl ich absichtlich das Feld leergelassen habe. Die Bedingung muß falsch sein.

Bei Einzelschritt bekomme ich (Maus darüberhalten) als Wert: f!Vorname = Null

Und jetzt stehe ich an.

Danke
Michael

Edith: möglicherweise stehe ich auch mit beiden Füßen fest auf der Leitung!

Jaguar 10.03.2009 16:50

Wenn dein Feld nicht initialisiert ist mußt du auf null auch checken. "" ist ein String mit der Länge 0 und das ist nicht ident mit Null (= gar kein Inhalt)

Also nach dem Prinzip:
if (IsNull(f!Vorname) OR f!Vorname = "")
....

FranzK 10.03.2009 16:56

Zitat:

Zitat von Jaguar (Beitrag 2350547)
Wenn dein Feld nicht initialisiert ist mußt du auf null auch checken. "" ist ein String mit der Länge 0 und das ist nicht ident mit Null (= gar kein Inhalt)

Also nach dem Prinzip:
if (IsNull(f!Vorname) OR f!Vorname = "")
....

So ist es! Außerdem musst du nach dem erkannten Fehler den Focus gleich wieder auf das entsprechende Feld setzen.

:hallo:

michael58 10.03.2009 17:01

@Jaguar und FranzK: Danke, funktioniert schon!

Bitte PN an mich, damit ich weiß, wo ich das Bier hinschicken soll!

Nochmals Danke

Michael


Alle Zeitangaben in WEZ +2. Es ist jetzt 19:19 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
© 2009 FSL Verlag