Office - Word, Excel und Co. 9.753 Themen, 41.598 Beiträge

Access 2002

walliilse / 6 Antworten / Baumansicht Nickles

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

bei Antwort benachrichtigen
neanderix walliilse „Access 2002“
Optionen
Wie kann ich das verhindern. Z.B. das er in Pprogramm stehen bleibt. Vielleicht gibt es bei den DoCmd Parameter die dies verhindern?

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
Computers are like airconditioners - they stop working properly when you open Windows Ich bin unschuldig, ich habe sie nicht gewählt!
bei Antwort benachrichtigen
walliilse neanderix „ NMein, mit DoCmd und seinen Parametern kommst du nicht weiter. Schau bitte mal...“
Optionen

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

bei Antwort benachrichtigen
neanderix walliilse „Access 2002“
Optionen
ich glaube aber es kommt nicht von einer Msgbox Abfrage sondern aus den Abfrage Projekt,

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
Computers are like airconditioners - they stop working properly when you open Windows Ich bin unschuldig, ich habe sie nicht gewählt!
bei Antwort benachrichtigen
walliilse neanderix „ keine ahnung was du meinst. laut deinem Eingangspost willst du eine MessageBox...“
Optionen

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

bei Antwort benachrichtigen
REPI walliilse „Access 2002“
Optionen

1. on error goto Routine benutzen, damit werden alle Fehler abgefangen!
2. Ausgabe der msgbox abfangen und dann bei Abbrechenbutton nach exit sub verzweigen.

Es empfiehlt sich immer, etwas Linux im Hause zu haben.
bei Antwort benachrichtigen
walliilse REPI „1. on error goto Routine benutzen, damit werden alle Fehler abgefangen! 2....“
Optionen

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

bei Antwort benachrichtigen