CancelEvent-Makroaktion
Sie können die CancelEvent- Aktion verwenden, um das Ereignis abzubrechen, das dazu geführt hat, dass Access das Makro mit dieser Aktion ausgeführt hat. Der Makroname ist die Einstellung einer Ereigniseigenschaft wie BeforeUpdate , OnOpen , OnUnload oder OnPrint .
Hinweis: Die Makroaktion CancelEvent ist in Access-Web-Apps nicht verfügbar.
Einstellung
Die CancelEvent- Aktion hat keine Argumente.
Bemerkungen
In einem Formular verwenden Sie normalerweise die CancelEvent- Aktion in einem Validierungsmakro mit der BeforeUpdate- Ereigniseigenschaft. Wenn ein Benutzer Daten in ein Steuerelement oder einen Datensatz eingibt, führt Access das Makro aus, bevor die Daten der Datenbank hinzugefügt werden. Wenn die Daten die Validierungsbedingungen im Makro nicht erfüllen, bricht die CancelEvent- Aktion den Aktualisierungsprozess ab, bevor er beginnt.
Häufig verwenden Sie diese Aktion mit der MsgBox -Aktion, um anzuzeigen, dass die Daten die Validierungsbedingungen nicht erfüllt haben, und um hilfreiche Informationen über die Art der Daten bereitzustellen, die eingegeben werden sollten.
Die folgenden Ereignisse können durch die CancelEvent- Aktion abgebrochen werden.
Filter anwenden | Dreckig | Maus nach unten |
BeforeDelConfirm | Ausgang | Keine Daten |
VorEinfügen | Filter | Offen |
VorUpdate | Format | |
DblClick | Tastendruck | Entladen |
Löschen |
Hinweis: Sie können die CancelEvent- Aktion nur mit dem MouseDown- Ereignis verwenden, um das Ereignis abzubrechen, das auftritt, wenn Sie mit der rechten Maustaste auf ein Objekt klicken.
Wenn die OnDblClick -Ereigniseigenschaftseinstellung eines Steuerelements ein Makro angibt, das die CancelEvent- Aktion enthält, bricht die Aktion das DblClick- Ereignis ab.
Bei Ereignissen, die abgebrochen werden können, tritt das Standardverhalten für das Ereignis (d. h. das, was Access normalerweise tut, wenn das Ereignis eintritt) auf, nachdem das Makro für das Ereignis ausgeführt wurde. Dadurch können Sie das Standardverhalten aufheben. Wenn Sie beispielsweise in einem Textfeld auf ein Wort doppelklicken, auf dem sich die Einfügemarke befindet, wählt Access normalerweise das Wort aus. Sie können dieses Standardverhalten im Makro für das DblClick- Ereignis aufheben und eine andere Aktion ausführen, z. B. das Öffnen eines Formulars mit Informationen zu den Daten im Textfeld. Bei Ereignissen, die nicht abgebrochen werden können, tritt das Standardverhalten auf, bevor das Makro ausgeführt wird.
Hinweis: Wenn die OnUnload -Ereigniseigenschaft eines Formulars ein Makro angibt, das eine CancelEvent- Aktion ausführt, können Sie das Formular nicht schließen. Sie müssen entweder die Bedingung korrigieren, die die Ausführung der CancelEvent- Aktion verursacht hat, oder das Makro öffnen und die CancelEvent- Aktion löschen. Wenn das Formular ein modales Formular ist, können Sie das Makro nicht öffnen.
Um die CancelEvent- Aktion in einem Visual Basic for Applications (VBA)-Modul auszuführen, verwenden Sie die CancelEvent- Methode des DoCmd- Objekts.
Beispiel
Validieren Sie Daten mithilfe eines Makros
Das folgende Validierungsmakro überprüft die in einem Lieferantenformular eingegebenen Postleitzahlen. Es zeigt die Verwendung der Aktionen StopMacro , MsgBox , CancelEvent und GoToControl . Ein bedingter Ausdruck überprüft das Land/die Region und die Postleitzahl, die in einem Datensatz im Formular eingegeben wurden. Wenn die Postleitzahl nicht das richtige Format für das Land/die Region hat, zeigt das Makro ein Meldungsfeld an und bricht das Speichern des Datensatzes ab. Sie kehren dann zum Steuerelement Postleitzahl zurück, wo Sie den Fehler korrigieren können. Dieses Makro sollte an die BeforeUpdate- Eigenschaft des Lieferantenformulars angehängt werden.
Zustand | Aktion | Argumente: Einstellung | Kommentar |
IsNull([LandRegion]) | StopMakro | Wenn CountryRegion Null ist, kann die Postleitzahl nicht validiert werden. | |
[LandRegion] In ("Frankreich","Italien","Spanien") und Len([Postleitzahl]) <> 5 | MsgBox | Nachricht: Die Postleitzahl muss 5 Zeichen lang sein. Piep: Ja Typ: Informationen Titel: Postleitzahlfehler | Wenn die Postleitzahl nicht aus 5 Zeichen besteht, zeigen Sie eine Nachricht an. |
... | CancelEvent | Stornieren Sie die Veranstaltung. | |
GoToControl | Kontrollname: Postleitzahl | ||
[LandRegion] In ("Australien","Singapur") und Len([Postleitzahl]) <> 4 | MsgBox | Nachricht: Die Postleitzahl muss 4 Zeichen lang sein. Piep: Ja Typ: Informationen Titel: Postleitzahlfehler | Wenn die Postleitzahl nicht aus 4 Zeichen besteht, zeigen Sie eine Nachricht an. |
... | CancelEvent | Stornieren Sie die Veranstaltung. | |
GoToControl | Kontrollname: Postleitzahl | ||
([CountryRegion] = "Kanada") und ([Postleitzahl] nicht wie "[AZ][0-9][AZ] [0-9][AZ][0-9]") | MsgBox | Nachricht: Die Postleitzahl ist ungültig. Beispiel für kanadischen Code: H1J 1C3 Piep: Ja Typ: Informationen Titel: Postleitzahlfehler | Wenn die Postleitzahl für Kanada nicht korrekt ist, zeigen Sie eine Meldung an. (Beispiel für kanadischen Code: H1J 1C3) |
... | CancelEvent | Stornieren Sie die Veranstaltung. |
No comments:
Post a Comment