PDA

Vollständige Version anzeigen : Fokus behalten solange kein Eintrag


Manfred Braig
03.08.2001, 15:24
Grüße die Accessrunde freundlicht,
leider mit einem kleinen Problem.

Habe vor einiger Zeit hier im Forum eine keine Anweisung für ein Formularfeld gefunden, welche ich gerade testen will. Leider habe ich damit keinen Erfolg und ich weiß nicht woran das liegt.

Wenn ich das Textfeld verlassen will ohne dass ein Eintrag vorgnommen wurde, so soll der Fokus im gleichen Textfeld bleiben.
Nachfolgenden code verwende ich in Access 2000 im Formular beim Anlegen eines neuen Datensatzes. Der code steht in der Eigenschaft des Textfeldes [OrderNr] im Ereignis Vor Aktualisierung. Wer weiß was hier falsch ist?


Private Sub OrderNr_BeforeUpdate(Cancel As Integer)

If ((IsNull(Me![OrderNr])) Or (Me![OrderNr] = "")) Then
Cancel = True
End If

End Sub

Grüße
Manfred Braig

A.S.
03.08.2001, 15:46
Hallo Manfred,

ich habe Deinen Code jetzt nicht getestet, weiß also auch nicht was daran falsch ist.

Wenn ich so etwas mache, dann mit

If Trim("" & Me.OrderNr.Value) = "" Then
Cancel = True
End If

------------------
HTH

Arno

Manfred Braig
05.08.2001, 16:16
Hallo Arno,

danke für den Hinweis bzw. Tip. der Fehler lag bei mir. der Code muß an das Ereignis "Beim Verlassen" hinterlegt werden und nicht "Nach Aktualisierung" wie ich es anfangs gemacht habe. Beide Codes sind OK.

Grüße
Manfred

erwin
05.08.2001, 18:04
ich kenne ja jetzt den genauen Kontext deiner Feldprüfung nicht, aber wenn es sich um ein gebundenes Formular handelt, und die Prüfung deshalb wichtig ist, damit keine NULL-Werte i.d. Tab. stehen, empfehle ich eine völlig andere Vorgangsweise:

- solange da nix gespeichert wird, kann der User von mir aus "wie er lustig ist" i.d. Feldern navigieren, einzig wesentlich ist die Korrektheit der Datenbasis !
- Def. einer Gültigkeitsregel i.d. Tab.
("is Not NULL";"Feldname: Sie müssen blabla...")
- Damit der Cursor dann auch im "richtigen" Feld steht, werte ich in Form_Error die Fehlermeldung aus, extrahiere aus der (genormten) Meldung alles bis zu den :-Punkten (=Feldname), setzte den Focus + bringe die Fehlermeldung.

Das Verfahren funktioniert für alle "einfachen" Feldprüfungen und hat ausserdem den Vorteil, dass auch "versehentlich" direkt in die Tab. keine unplausiblen Daten eingegeben werden können.

HTH erwin...