Reihenfolge der Ereignisse für Datenbankobjekte
Eine einzelne Aktion, z. B. das Bewegen von einem Steuerelement eines Objekts zu einem anderen Steuerelement, kann mehrere verschiedene Ereignisse auslösen, die in einer bestimmten Reihenfolge auftreten. Es ist wichtig zu wissen, wann und in welcher Reihenfolge Ereignisse auftreten, da dies Auswirkungen darauf haben kann, wie und wann Ihre Makros oder Ereignisprozeduren ausgeführt werden. Wenn beispielsweise zwei Ereignisprozeduren in einer bestimmten Reihenfolge ausgeführt werden sollen, möchten Sie sicherstellen, dass die ihnen zugeordneten Ereignisse in derselben Reihenfolge auftreten.
In diesem Artikel
Reihenfolge der Ereignisse für Steuerelemente in Formularen
Ereignisse treten für Steuerelemente in Formularen auf, wenn Sie den Fokus auf ein Steuerelement verschieben und wenn Sie Daten in einem Steuerelement ändern und aktualisieren.
Hinweis: Microsoft Office Access zeigt Ereignisnamen im Visual Basic-Editor etwas anders an als im Eigenschaftsfenster und im Makro-Generator . Beispielsweise heißt das Ereignis mit dem Namen On Got Focus im Eigenschaftenblatt des Formulars und im Makro-Generator im Visual Basic-Editor GotFocus . Die Beispiele in diesem Artikel verwenden das VBA-Format (Visual Basic for Applications) für Ereignisnamen.
Verschieben des Fokus auf ein Steuerelement
Wenn Sie den Fokus auf ein Steuerelement in einem Formular verschieben (z. B. durch Öffnen eines Formulars, das ein oder mehrere aktive Steuerelemente enthält, oder durch Verschieben des Fokus auf ein anderes Steuerelement im selben Formular), treten die Ereignisse Enter und GotFocus in dieser Reihenfolge auf :
Eintreten GotFocus
Wenn Sie ein Formular öffnen, treten die Ereignisse Enter und GotFocus wie folgt nach den Ereignissen auf, die mit dem Öffnen des Formulars verbunden sind (z. B. Open , Activate und Current ):
Öffnen (Formular) Aktivieren (Formular) Aktuell (Formular) Eingabe (Steuerung) GotFocus (Steuerung)
Wenn der Fokus ein Steuerelement auf einem Formular verlässt (z. B. wenn Sie ein Formular schließen, das ein oder mehrere aktive Steuerelemente enthält, oder wenn Sie zu einem anderen Steuerelement im selben Formular wechseln), treten die Ereignisse Exit und LostFocus in dieser Reihenfolge auf:
Ausgang Verlorener Fokus
Wenn Sie ein Formular schließen, treten die Ereignisse Exit und LostFocus wie folgt vor den Ereignissen auf, die mit dem Schließen des Formulars verbunden sind (z. B. Unload , Deactivate und Close ):
Ausgang (Kontrolle) LostFocus (Steuerung) Entladen (Formular) Deaktivieren (Formular) Schließen (Formular)
Ändern und Aktualisieren von Daten in einem Steuerelement
Wenn Sie Daten in ein Steuerelement in einem Formular eingeben oder ändern und dann den Fokus auf ein anderes Steuerelement verschieben, treten die Ereignisse BeforeUpdate und AfterUpdate auf:
VorUpdate Nach rUpdate
Die Exit- und LostFocus- Ereignisse für ein Steuerelement, dessen Wertänderungen nach den BeforeUpdate- und AfterUpdate- Ereignissen auftreten:
VorUpdate Nach dem Update Ausgang Verlorener Fokus
Wenn Sie den Text in einem Textfeld oder im Textfeldabschnitt eines Kombinationsfelds ändern, tritt das Change -Ereignis ein. Dieses Ereignis tritt auf, wenn sich der Inhalt des Steuerelements ändert, aber bevor Sie den Fokus auf ein anderes Steuerelement oder einen anderen Datensatz verschieben (und daher bevor die Ereignisse BeforeUpdate und AfterUpdate eintreten). Die folgende Abfolge von Ereignissen tritt für jede Taste auf, die Sie in einem Textfeld oder im Textfeldabschnitt eines Kombinationsfelds drücken:
Taste nach unten Tastendruck Schmutzig Veränderung KeyUp
Das NotInList- Ereignis tritt auf, nachdem Sie einen Wert in ein Kombinationsfeld eingegeben haben, der nicht in der Kombinationsfeldliste gefunden wird, und dann versuchen, den Fokus auf ein anderes Steuerelement oder einen anderen Datensatz zu verschieben. Das NotInList- Ereignis tritt nach den Tastaturereignissen und den Change -Ereignissen für das Kombinationsfeld auf, aber vor den Ereignissen für alle anderen Steuerelemente oder das Formular. Wenn die LimitToList- Eigenschaft des Kombinationsfelds auf Yes gesetzt ist, tritt das Error -Ereignis für das Formular unmittelbar nach dem NotInList -Ereignis auf :
Taste nach unten Tastendruck Schmutzig Veränderung KeyUp NichtInListe Fehler
Reihenfolge der Ereignisse für Datensätze auf Formularen
Ereignisse treten für Datensätze in Formularen auf, wenn Sie den Fokus auf einen anderen Datensatz verschieben, Daten in einem Datensatz aktualisieren, einen oder mehrere vorhandene Datensätze löschen oder einen neuen Datensatz erstellen.
Verschieben des Fokus auf Datensätze und Aktualisieren von Daten in Datensätzen
Wenn Sie den Fokus auf einen vorhandenen Datensatz in einem Formular verschieben, Daten in den Datensatz eingeben oder ändern und dann den Fokus auf einen anderen Datensatz verschieben, tritt die folgende Abfolge von Ereignissen für das Formular auf:
Aktuell (Formular) BeforeUpdate (Formular) AfterUpdate (Formular) Aktuell (Formular)
Wenn Sie den Datensatz verlassen, dessen Daten geändert wurden, aber bevor Sie den nächsten Datensatz eingeben, treten die Ereignisse Exit und LostFocus für das Steuerelement auf, das den Fokus hat. Diese Ereignisse treten wie folgt nach den Ereignissen BeforeUpdate und AfterUpdate für das Formular auf:
BeforeUpdate (Formular) AfterUpdate (Formular) Ausgang (Kontrolle) LostFocus (Steuerung) Aktuell (Formular)
Wenn Sie den Fokus zwischen den Steuerelementen in einem Formular verschieben, treten Ereignisse für jedes Steuerelement auf. Die folgenden Abfolgen von Ereignissen treten beispielsweise auf, wenn Sie Folgendes tun:
Öffnen Sie ein Formular und ändern Sie Daten in einem Steuerelement:
Aktuell (Formular) Eingabe (Steuerung) GotFocus (Steuerung) BeforeUpdate (Kontrolle) AfterUpdate (Kontrolle)
Bewegen Sie den Fokus auf ein anderes Steuerelement:
Ausgang (control1) Verlorener Fokus (Steuerung 1) Eingabe (control2) GotFocus (control2)
Bewegen Sie den Fokus auf einen anderen Datensatz:
BeforeUpdate (Formular) AfterUpdate (Formular) Ausgang (control2) Lo stFocus (control2) Aktuell (Formular)
Datensätze löschen
Wenn Sie einen Datensatz löschen, treten die folgenden Ereignisse für das Formular auf, und Microsoft Office Access zeigt ein Dialogfeld an, in dem Sie aufgefordert werden, den Löschvorgang zu bestätigen:
Löschen BeforeDelConfirm NachDelConfirm
Wenn Sie das Delete -Ereignis abbrechen, treten die Ereignisse BeforeDelConfirm und AfterDelConfirm nicht auf, und das Dialogfeld wird nicht angezeigt.
Erstellen eines neuen Datensatzes
Wenn Sie den Fokus auf einen neuen (leeren) Datensatz in einem Formular verschieben und dann einen neuen Datensatz erstellen, indem Sie Daten in ein Steuerelement eingeben, tritt die folgende Abfolge von Ereignissen auf:
Aktuell (Formular) Eingabe (Steuerung) GotFocus (Steuerung) VorEinfügen (Formular) AfterInsert (Formular)
Das Ereignis BeforeInsert (Formular) wird ausgelöst, sobald Sie mit der Eingabe in das Steuerelement beginnen. Das Ereignis AfterInsert (Formular) wird ausgelöst, nachdem Sie den Datensatz verlassen haben.
Die BeforeUpdate- und AfterUpdate- Ereignisse für die Steuerelemente im Formular und für den neuen Datensatz treten nach dem BeforeInsert- Ereignis und vor dem AfterInsert- Ereignis auf.
Reihenfolge der Ereignisse für Formulare und Unterformulare
Ereignisse treten für Formulare auf, wenn Sie ein Formular öffnen oder schließen, zwischen Formularen wechseln oder mit Daten in einem Formular oder Unterformular arbeiten.
Öffnen und Schließen eines Formulars
Wenn Sie ein Formular öffnen, tritt für das Formular die folgende Abfolge von Ereignissen auf:
Offen Belastung Größe ändern aktivieren Sie Aktuell
Wenn das Formular keine aktiven Steuerelemente enthält, tritt das GotFocus- Ereignis für das Formular nach dem Activate -Ereignis, aber vor dem Current -Ereignis auf.
Wenn Sie ein Formular schließen, tritt für das Formular die folgende Abfolge von Ereignissen ein:
Entladen Deaktivieren Nah dran
Wenn das Formular keine aktiven Steuerelemente enthält, tritt das LostFoc us -Ereignis für das Formular nach dem Unload- Ereignis, aber vor dem Deactivate -Ereignis auf.
Wechseln zwischen Formularen
Wenn Sie zwischen zwei geöffneten Formularen wechseln, tritt das Deactivate -Ereignis für das erste Formular und das Activate- Ereignis für das zweite Formular auf:
Deaktivieren (form1) Aktivieren (form2)
Das Deactivate- Ereignis für ein Formular tritt auch auf, wenn Sie in Access vom Formular zu einer anderen Objektregisterkarte wechseln. Das Deactivate -Ereignis tritt jedoch nicht ein, wenn Sie zu einem Dialogfeld, zu einem Formular, dessen PopUp -Eigenschaft auf Yes festgelegt ist, oder zu einem Fenster in einem anderen Programm wechseln.
Hinweis: Das Open -Ereignis tritt nicht ein, wenn Sie den Fokus auf ein bereits geöffnetes Formular verschieben, selbst wenn Sie den Fokus durch Ausführen einer OpenForm -Aktion auf dieses Formular verschoben haben.
Arbeiten mit Daten in einem Formular
Formular- und Steuerelementereignisse treten auf, wenn Sie zwischen Datensätzen im Formular wechseln und Daten ändern. Wenn Sie beispielsweise zum ersten Mal ein Formular öffnen, tritt die folgende Abfolge von Ereignissen auf:
Öffnen (Formular) Laden (Formular) Größe ändern (Formular) Aktivieren (Formular) Aktuell (Formular) Eingabe (Steuerung) GotFocus (Steuerung)
In ähnlicher Weise tritt beim Schließen eines Formulars die folgende Abfolge von Ereignissen auf:
Ausgang (Kontrolle) Lo stFocus (Steuerung) Entladen (Formular) Deaktivieren (Formular) Schließen (Formular)
Wenn Sie Daten in einem Steuerelement geändert haben, treten die Ereignisse BeforeUpdate und AfterUpdate sowohl für das Steuerelement als auch für das Formular vor dem Exit -Ereignis für das Steuerelement auf.
Arbeiten mit Unterformularen
Wenn Sie ein Formular öffnen, das ein Unterformular enthält, werden das Unterformular und seine Datensätze vor dem Hauptformular geladen. Daher treten die Ereignisse für das Unterformular und seine Steuerelemente (z. B. Open , Current , Enter und GotFocus ) vor den Ereignissen für das Formular auf. Das Activate- Ereignis tritt jedoch nicht für Unterformulare auf. Daher löst das Öffnen eines Hauptformulars nur für das Hauptformular ein Activate -Ereignis aus.
Wenn Sie ein Formular schließen, das ein Unterformular enthält, werden das Unterformular und seine Datensätze entsprechend nach dem Formular entladen. Das Deactivate- Ereignis tritt für Unterformulare nicht auf. Daher löst das Schließen eines Hauptformulars nur für das Hauptformular ein Deactivate -Ereignis aus. Die Ereignisse für die Steuerelemente, das Formular und das Unterformular treten in der folgenden Reihenfolge auf:
Ereignisse für die Steuerelemente des Unterformulars (z. B. Exit und LostFocus )
Ereignisse für die Steuerelemente des Formulars (einschließlich des Unterformular-Steuerelements)
Ereignisse für das Formular (z. B. Deactivate und Close )
Ereignisse für das Unterformular
Hinweis: Da die Ereignisse für ein Unterformular nach dem Schließen des Hauptformulars eintreten, treten bestimmte Ereignisse, wie z. B. das Abbrechen des Schließens des Hauptformulars durch ein Ereignis im Unterformular, nicht auf. Möglicherweise müssen Sie diese Arten von Validierungstests in ein Ereignis im Hauptformular verschieben.
Reihenfolge der Ereignisse für Tastenanschläge und Mausklicks
Tastaturereignisse treten für Formulare und Steuerelemente auf, wenn Sie Tasten drücken oder Tastenanschläge senden, während das Formular oder Steuerelement den Fokus hat. Mausereignisse treten für Formulare, Formularabschnitte und Steuerelemente auf Formularen auf, wenn Sie mit den Maustasten klicken, während sich der Mauszeiger auf einem Formular, Abschnitt oder Steuerelement befindet. Mausereignisse treten auch auf, wenn Sie den Mauszeiger über ein Formular, einen Abschnitt oder ein Steuerelement bewegen.
Keyboard-Ereignisse
Wenn Sie eine Taste drücken und loslassen, während ein Steuerelement in einem Formular den Fokus hat (oder die SendKeys- Aktion oder -Anweisung verwenden, um einen Tastendruck zu senden), tritt die folgende Abfolge von Ereignissen auf:
Taste nach unten Tastendruck KeyUp
Wenn Sie eine Taste drücken und loslassen oder einen Tastendruck im ANSI-Zeichensatz senden, treten die Ereignisse KeyDown , KeyPress und KeyUp auf. Wenn Sie eine ANSI-Taste drücken und gedrückt halten, wechseln sich die Ereignisse KeyDown und KeyPress wiederholt ab ( KeyDown , KeyPress , KeyDown , KeyPress usw.), bis Sie die Taste loslassen. dann tritt das KeyUp- Ereignis auf.
Wenn Sie eine Nicht-ANSI-Taste drücken und loslassen, treten die Ereignisse KeyDown und KeyUp auf. Wenn Sie eine Nicht-ANSI-Taste drücken und gedrückt halten, tritt das KeyDown -Ereignis wiederholt auf, bis Sie die Taste loslassen, und dann tritt das KeyUp- Ereignis auf.
Wenn das Drücken einer Taste ein weiteres Ereignis für ein Steuerelement auslöst, tritt dieses Ereignis nach dem KeyPress- Ereignis, aber vor dem KeyUp- Ereignis auf. Wenn beispielsweise ein Tastendruck den Text in einem Textfeld ändert, was ein Change -Ereignis auslöst, tritt die folgende Abfolge von Ereignissen auf:
Taste nach unten Tastendruck Veränderung KeyUp
Wenn ein Tastendruck bewirkt, dass der Fokus von einem Steuerelement zu einem anderen Steuerelement wechselt, tritt das KeyDown- Ereignis für das erste Steuerelement auf, während die Ereignisse KeyPress und KeyUp für das zweite Steuerelement auftreten. Wenn Sie beispielsweise Daten in einem Steuerelement ändern und dann die TAB-TASTE drücken, um zum nächsten Steuerelement zu wechseln, treten die folgenden Ereignisfolgen auf:
Erste Kontrolle:
Taste nach unten VorUpdate Nach dem Update Ausgang Verlorener Fokus
Zweite Kontrolle:
Eintreten GotFocus Tastendruck KeyUp
Mausereignisse
Wenn Sie eine Maustaste klicken und loslassen, während sich der Mauszeiger auf einem Steuerelement in einem Formular befindet, tritt die folgende Abfolge von Ereignissen für das Steuerelement auf:
Maus nach unten Maus hoch Klicken
Wenn ein Steuerelement den Fokus hat und Sie auf ein anderes Steuerelement klicken, um den Fokus auf dieses zweite Steuerelement zu verschieben, treten die folgenden Ereignisfolgen auf:
Erste Kontrolle:
Ausgang Verlorener Fokus
Zweite Kontrolle:
Eintreten GotFocus Maus nach unten Maus hoch Klicken
Wenn Sie zu einem anderen Datensatz wechseln und dann auf ein Steuerelement klicken, tritt das Current -Ereignis für das Formular auch vor dem Enter -Ereignis für das Steuerelement auf.
Durch Doppelklicken auf ein Steuerelement werden sowohl das Click- als auch das DblClick -Ereignis ausgelöst . Wenn Sie beispielsweise auf ein anderes Steuerelement als eine Befehlsschaltfläche doppelklicken, tritt für das Steuerelement die folgende Abfolge von Ereignissen auf:
MouseD besitzen Maus hoch Klicken DblClick Maus hoch
Wenn Sie auf eine Befehlsschaltfläche doppelklicken, tritt die vorhergehende Ereignisfolge auf, gefolgt von einem zweiten Click -Ereignis.
Das MouseMove- Ereignis für ein Formular, einen Abschnitt oder ein Steuerelement tritt auf, wenn Sie den Mauszeiger über das Formular, den Abschnitt oder das Steuerelement bewegen. Dieses Ereignis ist unabhängig von den anderen Mausereignissen.
Reihenfolge der Ereignisse für Berichte und Berichtsabschnitte
Ereignisse treten für Berichte und Berichtsabschnitte auf, wenn Sie einen Bericht öffnen, um ihn zu drucken oder in der Vorschau anzuzeigen, oder einen Bericht schließen.
Ereignisse für Berichte
Wenn Sie einen Bericht öffnen, um ihn zu drucken oder in der Vorschau anzuzeigen, und den Bericht später schließen oder zu einer anderen Objektregisterkarte in Access wechseln, tritt die folgende Abfolge von Ereignissen für den Bericht auf:
Offen aktivieren Sie Nah dran Deaktivieren
Wenn Sie zwischen zwei geöffneten Berichten wechseln, tritt das Deactivate -Ereignis für den ersten Bericht und das Activate- Ereignis für den zweiten Bericht ein:
Deaktivieren (Bericht1) Aktivieren (Bericht2)
Das Deactivate- Ereignis für einen Bericht tritt auch auf, wenn Sie in Access vom Bericht zu einer anderen Objektregisterkarte wechseln. Das Deactivate -Ereignis tritt jedoch nicht ein, wenn Sie zu einem Dialogfeld, zu einem Formular, dessen PopUp -Eigenschaft auf Yes festgelegt ist, oder zu einem Fenster in einem anderen Programm wechseln.
Wenn Sie einen Bericht öffnen, der auf einer Abfrage basiert, löst Access das Open -Ereignis für den Bericht aus, bevor die zugrunde liegende Abfrage ausgeführt wird. Daher können Sie die Kriterien für den Bericht festlegen, indem Sie ein Makro oder eine Ereignisprozedur verwenden, die auf das Open -Ereignis reagiert. Beispielsweise kann die Makro- oder Ereignisprozedur ein benutzerdefiniertes Dialogfeld öffnen, in das Sie Berichtskriterien eingeben.
Ereignisse für Berichtsabschnitte
Wenn Sie einen Bericht drucken oder in der Vorschau anzeigen, treten die Format- und Print -Ereignisse für die Berichtsabschnitte nach den Open- und Activate -Ereignissen für den Bericht und vor den Close- oder Deactivate -Ereignissen des Berichts auf:
Öffnen (Bericht) Aktivieren (melden) Format (Berichtsabschnitt) Drucken (Berichtsabschnitt) Schließen (Bericht) Deaktivieren (melden)
Sicherheit Sie können die Berichtsansicht verwenden, um die Benutzerfilterung von Berichten zu aktivieren. Aber im Gegensatz zur Druckvorschau treten die Format- und Druckereignisse in keinem Abschnitt in der Berichtsansicht auf. Dies gilt auch für VBA-Funktionsergebnisse und benutzerdefinierte Prozeduren, die in Steuerelementen (z. B. Beschriftungen, Anzeigestatus, bedingte Formatierung, Größenänderung von Steuerelementen usw.) innerhalb dieser Ereignisse angezeigt werden. Verwenden Sie daher in diesem Ereignis keinen Code, um vertrauliche Daten zu formatieren, auszublenden oder zu drucken, die offengelegt werden könnten. Wir empfehlen, die Daten vorab zu filtern oder die Berichtsvorschau zu deaktivieren, indem Sie die AllowReportView- Eigenschaft auf Nein setzen.
Darüber hinaus können die folgenden Ereignisse während oder nach der Formatierung, aber vor dem Druckereignis auftreten:
Das Retreat- Ereignis tritt auf, wenn Access während der Berichtsformatierung zu einem vorherigen Abschnitt zurückkehrt.
Das NoData- Ereignis tritt auf, wenn der Bericht keine Datensätze anzeigt.
Das Page -Ereignis tritt nach dem Formatieren, aber vor dem Drucken auf. Sie können dieses Ereignis verwenden, um das Erscheinungsbild des gedruckten Berichts anzupassen.
No comments:
Post a Comment