collapse

* Benutzer Info

 
 
Willkommen Gast. Bitte einloggen oder registrieren. Haben Sie Ihre Aktivierungs E-Mail übersehen?

* Wer ist Online

  • Punkt Gäste: 56
  • Punkt Versteckte: 0
  • Punkt Mitglieder: 2
  • Punkt Benutzer Online:

* Forenstatistik

  • stats Mitglieder insgesamt: 13700
  • stats Beiträge insgesamt: 62191
  • stats Themen insgesamt: 8474
  • stats Kategorien insgesamt: 5
  • stats Boards insgesamt: 16
  • stats Am meisten online: 415

Autor Thema: Pflichtfeld Standardwert - MsgBox unterdrücken wenn Form geschlossen wird  (Gelesen 218 mal)

Offline derilzemer

  • Access-Meister
  • ***
  • Beiträge: 506
    • Quartettportal
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
Grüße und Dank im voraus
Andreas
 

Offline DF6GL

  • Global Moderator
  • Access-Oberguru
  • *****
  • Beiträge: 22990
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.

Offline derilzemer

  • Access-Meister
  • ***
  • Beiträge: 506
    • Quartettportal
Hallo Franz,
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
Grüße und Dank im voraus
Andreas
 

Offline DF6GL

  • Global Moderator
  • Access-Oberguru
  • *****
  • Beiträge: 22990
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

Offline derilzemer

  • Access-Meister
  • ***
  • Beiträge: 506
    • Quartettportal
Hallo Franz,

ich weiß, wer lesen kann ist klar im Vorteil :(. Wenn man es richtig macht, dann geht es auch. Danke

Gruß Andreas
Grüße und Dank im voraus
Andreas