Ohne Ereignisprozeduren läuft nicht viel in Access-Anwendungen: Wer Klicks auf Schaltflächen, Datensatzwechsel, Öffnungs- oder Schließvorgänge von Formularen mit Funktionen hinterlegen möchte, verwendet am besten die für diesen Zweck vorgesehenen Ereigniseigenschaften in Kombination mit entsprechenden VBA-Prozeduren. Wir zeigen Ihnen, wie Sie schnell zu Ihrer ersten Ereignisprozedur kommen und was es dabei zu beachten gilt.
Grundlagen
Die meisten Beitrag von Access im Unternehmen werden Ihnen völlig unverständlich bleiben, wenn Sie noch nie mit Ereignisprozeduren gearbeitet haben. Daher möchten wir einmal grundlegend erläutern, was es mit Ereignisprozeduren auf sich hat und welche Möglichkeiten sich hier bieten.
In einem weiteren Beitrag setzen wir dann auf dem hier gewonnenen Wissen auf und gehen dann in die Vollen – Sie werden dann einige Tricks und Kniffe kennen lernen, die den Aufbau Ihrer Anwendungen merklich optimieren werden.
Ereignisprozeduren sind im Prinzip nichts weiter als herkömmliche Routinen, die den enthaltenen Code ausführen. Der Unterschied etwa zu einer üblichen Function- oder Sub-Prozedur ist, dass Ereignisprozeduren nicht durch einen herkömmlichen Aufruf von anderer Stelle gestartet werden. Dies ist zwar auch möglich, hauptsächlich jedoch werden Ereignisprozeduren durch fest definierte Ereignisse ausgelöst.
Dies kann beispielsweise ein Klick auf eine Schaltfläche, die Auswahl eines Kombinationsfeldeintrags, das Öffnen eines Formulars oder auch das Wechseln des Datensatzes im Formular sein.
Ereignisse sind immer für bestimmte Objekte definiert, die Access Ihnen ganz einfach über das Eigenschaftsfenster des jeweiligen Objekts in Kombination mit dem VBA-Editor zugänglich macht.
Dazu muss das jeweilige Objekt entweder markiert sein oder Sie wählen einfach das gewünschte Objekt über das oben im Eigenschaftsfenster befindliche Kombinationsfeld aus.
Wenn Sie einem Formular eine Schaltfläche hinzufügen, finden Sie in der Entwurfsansicht im Bereich Ereignisse des Eigenschaftsfensters eine Reihe von Einträgen, die allesamt dem Festlegen von Ereignissen dienen (siehe Bild 1). Wenn der Benutzer nun auf diese Schaltfläche klickt, schaut Access – vereinfacht gesagt – nach, ob für einen Mausklick ein Ereignis festgelegt wurde.
Bild 1: Die Ereigniseigenschaften einer Schaltfläche
Dies geschieht in der Eigenschaft Beim Klicken, wo Sie mehrere Optionen haben: Sie können dort festlegen, dass eine Ereignisprozedur, eine herkömmliche Funktion oder ein Makro ausgeführt werden soll. Um es kurz zu machen: Nur die Ereignisprozedur bietet den vollen Komfort, weshalb wir auf Funktionen und Makros als Ziel einer Ereigniseigenschaft hier nicht eingehen.
Die möglichen Werte für Ereigniseigenschaften schränken Sie damit merklich ein: Sie können dort lediglich noch den Wert [Ereignisprozedur] eintragen – oder aber das englische Pendant [Event Procedure], was in der deutschen Version aber gleich in [Ereignisprozedur] umgewandelt wird.
Ein kleiner Hinweis: Im Beitrag Ereignisprozeduren implantieren (Shortlink 686) erfahren Sie, wie Sie diese Eigenschaft per VBA-Code setzen. Sie sollten dort immer die englische Variante verwenden – zumindest, wenn auch nur die geringste Chance besteht, dass der Code einmal auf einem anderssprachigen System laufen soll.
Nun besitzt die Eigenschaft Beim Klicken zwar den Wert [Ereignisprozedur], beim Klick auf die Schaltfläche tut sich aber nichts. Das ist auch klar: Immerhin gibt es ja noch gar keine Ereignisprozedur. Diese muss bestimmten Konventionen gehorchen, die sich jedoch auf die Deklarationszeile der Prozedur beschränken und sich auf den Namen und die nötigen Parameter beziehen. In Abhängigkeit vom Objekt, welches das Ereignis auslöst, und vom Ereignis selbst besitzt die Ereignisprozedur unterschiedliche Parameter.
Zum Glück brauchen Sie die nicht jedes Mal abzutippen oder gar auswendig zu kennen, denn Access bietet gleich mehrere Möglichkeiten, den Prozedurrumpf automatisch anlegen zu lassen.
Klicken Sie nach dem Markieren der gewünschten Ereigniseigenschaft einfach auf die nun erscheinende Schaltfläche mit den drei Punkten (…) und wählen Sie im Dialog Generator auswählen den Eintrag Code-Generator aus (siehe Bild 2). Nach einem Klick auf OK öffnet Access den VBA-Editor und legt automatisch den Prozedurrumpf der Ereignisprozedur an (siehe Bild 3).
Bild 2: Anlegen einer Ereignisprozedur über den Dialog Generator auswählen
Bild 3: Prozedurrumpf einer frisch angelegten Ereignisprozedur