Eingabe erforderlich VBA/Access/Formular

Hallo zusammen,

ich hab’ ein kleines problem - hoffe ihr könnt mir helfen…

In einem Access Formular soll/muss ein Feld (Stoffbezeichnung) zwangsweise vom Benutzer ausgefüllt werden bevor er weitere Felder ausfüllen kann. Beim öffnen des Formulars wird der Focus bereits auf das Feld gesetzt. Beim verlassen des Feldes wird folgende Ereignisprozedur aufgerufen…

Private Sub Stoffbezeichnung_Exit(Cancel As Integer)
If IsNull(Me!Stoffbezeichnung) Or Stoffbezeichnung = „“ Then
Me.Stoffbezeichnung.SetFocus
MsgBox („Bitte geben Sie zuerst die Stoffbezeichnung ein!“)
End If
End Sub

Prozedur wird zwar aufgerufen sobald das Feld verlassen wird (ob mit tab oder Maus) aber nach dem man die MsgBox schließt springt der Focus zum nächsten Feld, Me.Stoffbezeichnung.SetFocus funktioniert also nicht! warum ist das so??? was mache ich falsch??

Hoffe jemand kann mir helfen!

Danke

Gruß Manuel

Hallo,

hast du mal versucht, den SetFocusAufruf nach der MsgBox zu kodieren?
Denn mit dem Oeffnen der MshBox wird der Focus vom eigentlichen Formular weggenommen, und danach wieder gesetzt, vieleicht aender die Reihenfolge der Aufrufe etwas.

Tschau
Peter

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo,

Dein Weg mit SetFocus ist falsch. Dafür ist ‚Cancel‘ zuständig.

Probier das mal aus:

Private Sub Stoffbezeichnung\_Exit(ByVal Cancel As MSForms.ReturnBoolean)
 If IsNull(Me!Stoffbezeichnung) Or Stoffbezeichnung = "" Then
 Cancel = True
 MsgBox ("Bitte geben Sie zuerst die Stoffbezeichnung ein!")
 End If
End Sub

Gruß, Rainer

hat funktioniert! super, danke

Gruß ds