Thursday, February 24, 2022

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

Drucken

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