PDA

Vollständige Version anzeigen : Formular nach Msg-Box geschlossen


archaeopterix
23.03.2004, 21:14
Wenn ich das „BeforeUpdate"-Ereignis eines Formulars mit einer Msg-Box unterbreche schließt sich das Formular gemeinsam mit der Msg-Box. Das möchte ich aber nicht!
Was kann ich tun? Weiß nicht mehr weiter! Vielen Dank!

jmc
23.03.2004, 22:29
Hi

das ist nicht üblich - selbst in der OL-Hilfe wird im Beispiel eine MsgBox verwendet ...

Wie sieht denn dein Code aus ??

CptChaos
24.03.2004, 06:43
"Was" möchtest Du tun?
Und "wie" versuchst Du es (Code)?

archaeopterix
24.03.2004, 14:16
Hier ist die ganze DB. Das betreffende Formular ist „Zeitepochen“. Der Wert im Feld „Von“ darf logischerweise nicht größer als der Wert „Bis“ sein. Wenn man einen falschen Wert eingibt erscheint auf das Ereignis „Before-Update“ eine Msg-Box, die die weitere Ausführung des Ereignisses unterbricht. Egal, ob ich die Msg-Box mit OK bestätige oder mit „X“ schließe, das Formular schließt sich gemeinsam mit ihr!
Irgendwie scheint das mit der Schaltfläche „OK“ im Formular zusammenzuhängen, wenn ich diese lösche funktioniert das ganze.
Grazias im Voraus!

Josef Östreicher
24.03.2004, 19:21
Hallo archaeopterix,

ich habe mir Dein Formular kurz angesehen:

Mit Deiner Schaltfläche OK im Formular hängt das deswegen zusammen, da der dahinterliegende Code das Formular schließt:


Private Sub OK_Click()
DoCmd.Close acForm, "Zeitepochen"
End Sub


Das Doppelklicken auf dem Listenfeld verweist auf ein unbekanntes Feld.

Ich kann nicht recht erkennen, was in dem Formular alles passieren soll.

jmc
24.03.2004, 20:09
Hi

wieso prüfst du denn nicht unmittelbar bei der Eingabe der Bis-Angabe, ob diese kleiner als das Von ist ??

Da du das Form_BeforeUpdate genommen hast, wird dies erst dann ausgelöst, wenn der Datensatz gespeichert wird. Das geschieht entweder durch Wechseln zu einem anderen Datensatz - dann funktioniert nämlich deine Meldung - oder durch schliessen.
Wenn du auf den Button "OK" klickst, dann machst du - wie bereits Josef sagte - ein Close des Formulars.
Und das wird dann eben nach der Meldung auch ausgeführt ...