Ereignisse abgreifen

Lies diesen Artikel und viele weitere mit einem kostenlosen, einwöchigen Testzugang.

Normalerweise implementieren Sie die Ereignisprozeduren von Formularen und Steuerelementen jeweils im Klassenmodul des jeweiligen Formulars. Aber wussten Sie, dass Sie die Ereignisse auch in anderen Klassenmodulen implementieren können Falls nicht: Es funktioniert! Und für diese Technik gibt es auch noch sinnvolle Einsatzzwecke. Wie dies gelingt und welche Einsatzzwecke es dafür gibt, erfahren Sie im vorliegenden Artikel.

Beispieldatenbank

Die Beispiele dieses Artikels finden Sie in der Datenbank 1306_EreignisseAbgreifen.mdb.

Ereignisse implementieren

Bestimmte Prozeduren werden durch Ereignisse ausgelöst. Einige haben Sie in Access [basics] bereits kennengelernt – zum Beispiel das Ereignis Beim Klicken einer Schaltfläche oder Formularereignisse wie Beim öffnen, Beim Anzeigen, Beim Laden oder Beim Entladen eines Formulars.

Diese können Sie nutzen, indem Sie erstens für die Ereigniseigenschaft festlegen, dass das Ereignis eine Ereignisprozedur auslösen soll. Dies erledigen Sie durch Eintragen des Wertes [Ereignisprozedur] für die entsprechende Ereigniseigenschaft.

Zusätzlich benötigen Sie eine Ereignisprozedur, deren erste Zeile eine spezielle, vom Namen des Objekts (also des Formulars oder Steuerelements) und vom Ereignis abhängige Syntax aufweisen muss. Diese sieht etwa für das Laden eines Formulars wie folgt aus:

Private Sub Form_Load()

Die erste Zeile mancher Ereignisprozeduren enthält noch Parameter, die verschiedene Informationen liefern, die beim Durchführen der Prozedur hilfreich sein können. In manchen Fällen nehmen die Parameter auch Rückgabewerte entgegen, mit denen sich das weitere Verhalten von Access steuern lässt.

Einfache Beispiele

Die Konstellation aus Bild 1 liefert ein paar Beispiele für Ereignisprozeduren. Die Schaltfläche cmdForm2-Oeffnen löst die folgende Prozedur aus und öffnet damit das zweite Formular:

Formular 1 öffnet Formular 2, Formular 2 wird wieder geschlossen

Bild 1: Formular 1 öffnet Formular 2, Formular 2 wird wieder geschlossen

Private Sub cmdForm2Oeffnen_Click()
     DoCmd.OpenForm "frm2"
End Sub

Die Schaltfläche cmdForm2-Schliessen im zweiten Formular schließt das Formular wieder und gibt eine Meldung aus, dass Formular 2 geschlossen wird:

Private Sub cmdForm2Schliessen_Click()
    DoCmd.Close acForm, Me.Name
    MsgBox "Formular 2 wird geschlossen."
End Sub

Formular 1 beim Schließen von Formular 2 informieren

Das ist alles kein Problem, wenn die Formulare unabhängig voneinander sind. Wenn Formular 1 aber nun Werte anzeigt (beispielsweise in einem Unterformular in der Datenblattansicht), die in Formular 2 bearbeitet werden, soll das Unterformular von Formular 1 nach dem Schließen von Formular 2 tunlichst aktualisiert werden, damit es den aktuellen Stand des bearbeiteten Datensatzes anzeigt.

Ende des frei verfügbaren Teil. Wenn Du mehr lesen möchtest, hole Dir ...

Testzugang

eine Woche kostenlosen Zugriff auf diesen und mehr als 1.000 weitere Artikel

diesen und alle anderen Artikel mit dem Jahresabo

Schreibe einen Kommentar