Hallo,
ich habe in meinem Formular diverse Pflichtfelder, welche meckern, wenn man sie nicht befüllt. Soweit so gut.
Der Focus beim öffnen der Tabelle ist auf ein bestimmtes Feld gelegt, was auch gleich ein Pflichfeld ist. Wenn man nun das Formular versehentlich öffnet und man es wieder schließen will, dann kommt die Warnmeldung 2x, erst dann schließt das Formular. Wie kann ich das unterdrücken via VBA, damit beim close dies nicht passiert? Oder kann man da eine andere Abfangroutine "dazu bauen", wie z.B. wenn close, dann nur fragen ob das Form wirklich geschlossen werden soll?
Private Sub cboIDVerlag_Exit(Cancel As Integer)
If IsNull(Me!cboIDVerlag) Then
MsgBox "Das Pflichtfeld Verlag muss befüllt werden!", vbCritical + vbOKOnly, "Pflichtfeld"
Me!cboIDVerlag.SetFocus
Cancel = True
End If
End Sub
Ich habe das Ereignis Beim verlassen des Feldes eingestellt, da es unter Bevor Aktualisierung nicht funktioniert hat.
Wer kann mir hier Hilfestellung leisten?
Gruß Andreas
Hallo,
Zitat
Ich habe das Ereignis Beim verlassen des Feldes eingestellt, da es unter Bevor Aktualisierung nicht funktioniert hat.
Mach das rückgängig und sorg dafür, dass "Vor Aktualisierung" funktioniert.
Hallo Franz,
Zitat von: DF6GL am Juli 21, 2017, 20:22:24
Zitat
Mach das rückgängig und sorg dafür, dass "Vor Aktualisierung" funktioniert.
würde ich echt sofort machen, aber auf dem Feld ist schon ein Ereignis, was ja grundsätzlich kein Problem darstellt. Aber wenn ich es hier integriere, passiert einfach nichts. Ich habe auch nicht herausgefunden warum :(. Das steht drin im Ereignis
Private Sub cboIDVerlag_BeforeUpdate(Cancel As Integer)
' kein neuer Datensatz?
If Not Me.NewRecord Then
' Prüfen auf ungewollte Änderung
If Me.cboIDVerlag.OldValue <> Me.cboIDVerlag.Value Then
If MsgBox("Achtung!" & vbCrLf & vbCrLf & _
"Soll der Verlag tatsächlich von '" & Me.cboIDVerlag.OldValue & _
"' auf '" & Me.cboIDVerlag.Value & "' geändert werden?", _
vbQuestion + vbOKCancel) = vbCancel Then
Cancel = True
End If
End If
End If
End Sub
So sieht es aus, nachdem ich es ergänzt habe, aber es passiert eben nichts mit Messagbox etc.
Private Sub cboIDVerlag_BeforeUpdate(Cancel As Integer)
If IsNull(Me!cboIDVerlag) Then
MsgBox "Das Pflichtfeld Verlag muss befüllt werden!", vbCritical + vbOKOnly, "Pflichtfeld"
Me!cboIDVerlag.SetFocus
Cancel = True
End If
' kein neuer Datensatz?
If Not Me.NewRecord Then
' Prüfen auf ungewollte Änderung
If Me.cboIDVerlag.OldValue <> Me.cboIDVerlag.Value Then
If MsgBox("Achtung!" & vbCrLf & vbCrLf & _
"Soll der Verlag tatsächlich von '" & Me.cboIDVerlag.OldValue & _
"' auf '" & Me.cboIDVerlag.Value & "' geändert werden?", _
vbQuestion + vbOKCancel) = vbCancel Then
Cancel = True
End If
End If
End If
End Sub
Gruß Andreas
Hallo,
ich meinte das Form_BeforeUpdate-Ereignis:
Private Sub Form_BeforeUpdate(Cancel As Integer)
If IsNull(Me!cboIDVerlag) Then
MsgBox "Das Pflichtfeld Verlag muss befüllt werden!", vbCritical + vbOKOnly, "Pflichtfeld"
Me!cboIDVerlag.SetFocus
Cancel = True
End If
Hallo Franz,
ich weiß, wer lesen kann ist klar im Vorteil :(. Wenn man es richtig macht, dann geht es auch. Danke
Gruß Andreas