Private Sub TxtObjektnummer_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If Me.TxtObjektnummer.Value <> "" Then
If DurchsucheObjektNummer(Me.TxtObjektnummer.Value) = True Then
MsgBox ("Objekt ist bereits in der Datenbank vorhanden")
Me.TxtObjektnummer.Value = ""
Me.TxtObjektnummer.SetFocus
Else
End If
End If
End Sub
Ich bin bisher davon ausgegangen, dass das Exit Ereignis ausschließlich bei Verlassen des entsprechenden Steuerelements ausgelöst wird. Wenn ich allerdings meine Prozedur zum Auslesen der Werte in meine Datenbank per Button aktiviere, wird nach dem Befehl Unload Me nochmal das Exit-Ereignis gestartet. Somit findet er den frisch eingetragenen Wert in der Datenbank und zeigt mir die MsgBox "Objekt ist bereits in der Datenbank vorhanden" erneut an.
Was kann ich tun? Kennt jemand dieses Problem? Wäre wirklich äußerst dankbat für Tipps oder Ratschläge. Mit dem Befehl Application.EnableEvents = False habe ich es auch schon versucht, leider vergeblich.
Public pboExitNotOk As Boolean
2. Schreib ins Terminate-Ereignis deines UFs das hier
pboExitNotOk = True
3. Schreib ins Exit-Ereignis jeder Textbox das hier in die erste!! Zeile
If pboExitNotOk = True Then Exit Sub
Wenn nun beim Schließen des Userforms zuerst das Terminate-Ereignis abgefragt wird, dann wird die Variable pboExitNotOk auf True gesetzt.
Und wenn im 2. Schritt das Exit-Ereignis abgefragt wird, erfolgt keine Makroabarbeitung, da durch pboExitNotOk = True das Exit-Ereignis gleich wieder verlassen wird.
Hilft das?
Ciao
Thorsten