Hallo Ihr fleißigen Helfer,
ein Anfänger hat viele Frage, aber eine nach der anderen.
Hier die erste.
In eine Ergebnis Routine habe ich eine If Abfrage. Es erscheint ein Fenster welches mit OK oder Abbrechen beantwortet werden mus.
Dim i As Integer
DoCmd.RunCommand acCmdSaveRecord ' Satz nochmals speichern
i = DCount("KZ", "T00-Adress Ebay", "KZ='X'")
If i = 0 Then
MsgBox " Es ist kein KZ mit X gesezt"
Exit Sub
End If
stDocName = "B007 Abfrage Umschlag mit"
DoCmd.OpenReport stDocName, acPreview
End Sub
Wenn ich einen falschen Wert eingebe oder Abbrechen drücke, läuft das programm weiter und führt zu einen Fehler.
Wie kann ich das verhindern. Z.B. das er in Pprogramm stehen bleibt. Vielleicht gibt es bei den DoCmd Parameter die dies verhindern?
Erstmal vilen Dank im voraus.
Dieter
Office - Word, Excel und Co. 9.753 Themen, 41.598 Beiträge
NMein, mit DoCmd und seinen Parametern kommst du nicht weiter. Schau bitte mal in die Access-Hilfe und informiere dich über MsgBox; mit der von dir eingesetzen einfachen Variante kommst du nicht weiter.
Weiter Kommst du mit der MsgBox-Funktion; der kannst du nämlich erstens einen Text, zweitens einen Titel und drittens Parameter für anzuzeigende Buttons und Symbole mitgeben.
Leider habe ich die genaue Syntax nicht im kopf, kann ich auch erst morgen wieder nachsehen.
Das Prinzip ist, dass du abfragst, welchen der Buttons der MsgBox der Anwender gedrückt hat.
If i=o Then
If MsgBox("Es ist kein KZ mit X gesetzt", vbExclamation, vbOkCancel)=vbCancel then
Exit Sub
End If
end if
Achtung, der Code ist ungetestet und kann Fehlerhaft sein, er soll dir nur das Prinzip verdeutlichen.
Volker
Hallo Volker,
danke für Deinen Tip. ich glaube aber es kommt nicht von einer Msgbox Abfrage sondern aus den Abfrage Projekt, wo ich unter Kriterien die Bedingung gesetz habe. Leider kann ich dort, oder besser gesagt ich weis nicht wie, nicht eine wenn nicht Bedingung setzen. Oder vielleicht doch? Selbstverständlich werde ich die Routine für die Msgbox ausprobieren, man weis nicht wenn man sie mal verwenden muss.
Mfg Dieter
keine ahnung was du meinst. laut deinem Eingangspost willst du eine MessageBox mit OK bestätigen oder mit Cancel Abbrechen - und jeweils entsprechend reagieren.
Und das geht nunmal nicht so, wie du im eingangspost schriebst, sondern so, wie ich beschrieb.
Volker
Hallo Volker,
ich Danke Dir, das Du Dir so viel Zeit nimmst um mir zu helfen.
Ich glaube hier muss ich meine Frage noch mals neu stellen.
Ich habe ein Abfrage Projekt erstellt wo ich aus einer Tabelle alle Sätze selektiere die im Feld KZ ein X haben. Undzwar mit den Eintrag in der Entwurfsansicht auf Feld KZ unter Kriterien "X".
Nun passiert folgendes: In meinen Formular erscheint nach den Befehl
"DoCmd.OpenReport stDocName, acPreview" eine Maske wo ich die Sätze mit KZ X auswählen kann.
Gebe ich in dieser Maske ein anderes oder auch kein KZ ein läuft das Programm falsch, genauso wenn ich auf Abbruch gehe.
Hier möchte ich das Programm stoppen aber wie?
Mir würde reichen hier so ein Befehl wie Du mir beschrieben hast für die Msgbox eingeben zu können. Aber wie?
Hallo Volker, habe ich das Problem jetzt etwas genauer beschrieben?
Mfg Dieter
1. on error goto Routine benutzen, damit werden alle Fehler abgefangen!
2. Ausgabe der msgbox abfangen und dann bei Abbrechenbutton nach exit sub verzweigen.
Hallo User,
kann mir das jemand an Hand von Code, als Beispiel geben?
Denn ich weis nicht wie ich ein "on error Routine" aufgrund der Meldung einbinden kann.
Mfg Dieter