__________________________
Nicolas Weber
nwe...@s-direktnet.de
Beim Formular-Ereignis 'bei Entladen'...
Private Sub Form_Unload(Cancel As Integer)
'If MsgBox("Wirklich?", vbYesNo) <> vbYes Then Cancel = True
If Me.Wichtige_Eingabe = "" Then Cancel = True
End Sub
Bye Jo.
"Nicolas Weber" <nwe...@s-direktnet.de> schrieb im Newsbeitrag
news:38ee1044$0$17...@businessnews.de.uu.net...
> Wie kann ich das Schliessen (docmd.close acForm, "frmName") eines
Formulars
> verhindern, wenn noch nicht alle Muss-Eingaben ausgefüllt sind?
> Wenn ich das Formular über x schliesse bekomme ich eine Meldung, dass
nicht
> alles ausgefüllt ist, warum nicht über VBA?
Automatisch geht da nix.
Du musst die entsprechenden Felder auf Inhalt überprüfen.
Das kannst du beim Verlassen des entsprechenden Feldes (einfacher) oder vor
dem SchliessenEreignis (komplizierter) und dann auch das Schliessen
verhindern.
--
gruss vom berg
mach mal folgenden code in das betreffende form rein
Option Compare Database
Option Explicit
Dim bolError As Boolean
Private Sub Form_AfterUpdate()
bolError = False
End Sub
Private Sub Form_Error(DataErr As Integer, Response As Integer)
bolError = True
Select Case DataErr
Case 2169 'schliessen rückfrage unterdrücken
Response = acDataErrContinue
Case Else
Response = acDataErrDisplay
End Select
End Sub
Private Sub Form_Unload(cancel As Integer)
If bolError Then
bolError = False
cancel = True
End If
End Sub
der fehler wird automatisch ausgegeben, das unload ereignis wird
abgebrochen und die daten werden auf den ursprungswert zurückgesetzt.
vollautomatisch, oder?
hth
henry
--
Ich beantworte keine Fragen per E-Mail auf Postings
Plattner Wolfgang schrieb in Nachricht
<38eedb76$0$34...@SSP1NO17.highway.telekom.at>...
ich hab den Code jetzt noch nicht probiert, aber woher käme denn der Fehler
für >Form_Error<, wenn er die Eingabefelder einfach so belässt, ohne eine
Eingabe zu fordern?
>automatisch< hiess für mich, dass er glaubt, Access erkenne
was-weiss-ich-wie , dass leere Felder einfach falsch sind.
Wenn er dann Code einsetzt zur Prüfung, läufts ja dann eh >automatisch< :-)
--
gruss vom berg
der form_error wird von access ausgelöst, wenn zB. ein not null feld
nicht gefüllt ist. es ist natürlich schon so, dass die feld
eigenschaften entsprechend eingestellt sein müssen, also "eingabe
erforderlich = Ja", aber so dämlich wird der fragesteller ja wohl nicht
sein, oder?
im gegensatz zu dir habe ich den code probiert und schon mehrfach in
betrieb und er läuft tadellos. die fehlermeldung sagt sogar aus, welches
feld denn was drin haben sollte und der 2169 fange ich ab, damit die
lästige frage nicht kommt, ob denn nun das form trotzdem geschlossen
werden soll, auch wenn die daten verloren gehen. dieser code ist sehr
generisch und daher bezeichne ich es als automatismus. ich muss also
nicht einen komplizierten before_update event ausprogrammieren, nur um
herauszufinden, ob denn nun alle felder, die was drin haben sollen, auch
was drin haben. wenn ich nämlich eines zu den mussfeldern hinzunehme
oder entferne, muss ich sonst den code wieder anpassen. mit diesem
mechanismus definiere ich das nur einmal bei der feld eigenschaft.
also, bevor du hier rummeckerst, solltest du zumindest die mühe machen,
den code auszuprobieren. gell? ich schreibe es normalerweise zum posting
dazu, wenn ich ungetesteten code einfüge.
Gruss und nichts für ungut
Henry
--
Ich beantworte keine Fragen per E-Mail auf Postings
Plattner Wolfgang schrieb in Nachricht
<38ef61e7$0$36...@SSP1NO17.highway.telekom.at>...