Zur Hauptseite ... Zum Onlinearchiv ... Zum Abonnement ... Zum Newsletter ... Zu den Tools ... Zum Impressum ... Zum Login ...

Gedrucktes Heft

Diesen Beitrag finden Sie in Ausgabe 1/2002.

Unser Angebot für Sie!

Lesen Sie diesen Beitrag und 500 andere sofort im Onlinearchiv, und erhalten Sie alle zwei Monate brandheißes Access-Know-how auf 72 gedruckten Seiten! Plus attraktive Präsente, zum Beispiel das bald erscheinende Buch 'Access 2010 - Das Grundlagenbuch für Entwickler'!

Diesen Beitrag twittern

Anlegen von Ereignisprozeduren

Autor: André Minhorst, Duisburg

Man munkelt zwar, dass es Datenbankanwendungen gibt, die ohne den Einsatz von VBA auskommen - aber besonders komfortabel können solche Anwendungen wohl nicht sein. Speziell der Einsatz der so genannten Ereignisprozeduren, die in Folge bestimmter Ereignisse ausgelöst werden, ist eine der größten Stärken der Benutzeroberfläche von Access. Im vorliegenden Beitrag erfahren Sie, wie Sie eine Ereignisprozedur für ein bestimmtes Objekt oder Steuerelement und eine bestimmte Ereigniseigenschaft anlegen.

Kurz und bündig

Unter der Überschrift Kurz und bündig finden Sie eine Kurzanleitung zum Anlegen einer Ereignisprozedur. Diese sollte in den meisten Fällen funktionieren. Weitere Details dazu finden Sie in den nachfolgenden Kapiteln.

  • Öffnen Sie das gewünschte Objekt (z. B. das Formular oder den Bericht) in der Entwurfsansicht.
  • Klicken Sie auf den Bereich oder das Steuerelement, für das Sie eine Ereignisprozedur anlegen möchten.
  • Falls das Eigenschaftsfenster nicht sichtbar ist, aktivieren Sie es über den Menübefehl Ansicht/Eigenschaften.
  • Wechseln Sie in das Register Ereignis.
  • Klicken Sie doppelt in das Textfeld neben dem gewünschten Ereignis. Daraufhin erscheint der Text [Ereignisprozedur].
  • Klicken Sie auf die Schaltfläche mit den drei Punkten. Es öffnet sich der VBA-Editor.
  • Sie sollten nun bereits die erste und die letzte Zeile der Prozedur vorfinden. Fügen Sie die übrigen Zeilen der gewünschten Prozedur zwischen die beiden Zeilen (Private Sub... und EndSub) ein.
  • Schließen Sie den VBA-Editor. Die Änderungen werden beim nächsten Speichern des Formulars übernommen.
  • Ereignisprozeduren anlegen im Detail

    Es gibt drei wesentliche Parameter, die für das Anlegen einer Ereignisprozedur wichtig sind:

  • der Name des Objektes oder Steuerelementes, für das die Ereignisprozedur angelegt wird,
  • die Angabe des Ereignisses, durch dass die Prozedur ausgelöst wird,
  • der eigentliche Inhalt der Prozedur.
  • Um mit diesen Informationen eine Ereignisprozedur zu erstellen, verwenden Sie den VBA-Editor. Die Bezeichnung VBA-Editor werden Sie übrigens nirgends finden. Das gemeinte Fenster trägt lediglich den Namen des Objekts und die Modulart in der Titelleiste, z. B. Form_Formular1: Klassenmodul. Im Folgenden soll für dieses Fenster die Bezeichnung VBA-Editor verwendet werden.

    Abb. 1: Aktivieren eines Formulars

    Hinweis

    Es gibt einen Unterschied zwischen dem VBA-Editor unter Access 97 und Access 2000: Unter Access 97 öffnet sich ein weiteres Fenster innerhalb des Anwendungsfensters, während unter Access 2000 wie bei allen anderen Anwendungen von Office 2000 ein eigener VBA-Editor erscheint. (

    Wohin mit der Prozedur?

    Als Aufbewahrungsort für die Ereignisprozeduren dienen Klassenmodule. Es gibt für jedes Objekt ein Klassenmodul, in das Sie alle Ereignisprozeduren für das entsprechende Objekt und die darin befindlichen Steuerelemente eingeben können.

    VBA-Editor anzeigen...

    Zum Anlegen einer Ereignisprozedur gibt es unterschiedliche Möglichkeiten:

  • vom Eigenschaftsfenster des Objektes oder Steuerelementes aus
  • direkt im VBA-Editor
  • In beiden Fällen verwenden Sie den VBA-Editor. Im ersten Fall zeigt der VBA-Editor direkt den Prozedurrahmen an, während Sie im zweiten Fall den Prozedurrahmen erst - mehr oder weniger automatisiert - zusammensetzen müssen.

    Hinweis

    Mit dem Begriff Prozedurrahmen sind die erste und letzte Zeile der Prozedur gemeint (Private Sub... und End Sub), zwischen die noch der eigentliche Code der Prozedur eingefügt werden muss. (

    ... mit fertigem Prozedurrahmen

    Zum Anlegen einer Ereigniseigenschaft verwenden Sie in der Regel die Entwurfsansicht des jeweiligen Objekts, also beispielsweise des Formulars oder Berichts.

    Wenn Sie eine Ereigniseigenschaft für das Objekt selbst anlegen möchten, müssen Sie zunächst einmal das Eigenschaftsfenster aktivieren. Dazu können Sie unter anderem den Menübefehl Ansicht/Eigenschaften betätigen.

    Alternativ - und schneller - geht es über das Kontextmenü. Klicken Sie mit der rechten Maustaste auf ein beliebiges Element des Formulars oder Berichts und wählen Sie aus dem Kontextmenü den Eintrag Eigenschaften aus.

    Anschließend aktivieren Sie das Objekt, dessen Eigenschaften Sie anzeigen möchten. Dazu klicken Sie entweder auf den dunkelgrauen Bereich rechts neben oder unter dem eigentlichen Entwurfsbereich (soweit sichtbar) oder markieren es durch einen Klick in das kleine Viereck im Schnittpunkt der verlängerten Lineale (s. Abb. 1).

    Die Lineale sind standardmäßig eingeblendet. Falls sie unerwarteterweise nicht zu sehen sein sollten, aktivieren Sie die Lineale mit dem Menübefehl Ansicht/Lineal.

    Im Eigenschaftsfenster finden Sie ein Register namens Ereignis. Wechseln Sie in dieses Register, indem Sie auf den entsprechenden Registerreiter klicken.

    Sie finden hier alle für das aktuell aktivierte Objekt oder Steuerelement verfügbaren Ereigniseigenschaften.

    Abb. 2: Anlegen einer Ereignisprozedur über das Eigenschaftsfenster

    Abb. 3: Auswahl eines Generators

    Abb. 4: VBA-Editor unter Access 97 mit Prozedurrahmen

    Um eine Ereignisprozedur für eine dieser Eigenschaften anzulegen, klicken Sie zunächst in das Textfeld neben der gewünschten Eigenschaft. Es erscheinen zwei Schaltflächen, eine zum Aufklappen einer Liste und eine zum Aufrufen eines Dialogs (s. Abb. 2).

    Wenn Sie den Eintrag [Ereignisprozedur] aus der Liste auswählen und anschließend auf die Schaltfläche mit den drei Punkten klicken, erscheint sofort der VBA-Editor.

    Sie können die Auswahl des Eintrags [Ereignisprozedur] auch beschleunigen, indem Sie doppelt in das leere Feld klicken.

    Klicken Sie bei einem leeren Textfeld auf diese Schaltfläche, erscheint der Dialog aus Abb. 3. Wählen Sie hier den Eintrag Code-Generator aus, um den VBA-Editor anzuzeigen.

    Im Anschluss erscheint der VBA-Editor und zeigt direkt den gewünschten Prozedurrahmen an. In Abb. 4 sehen Sie beispielsweise den VBA-Editor unter Access 97.

    ... ohne Prozedurrahmen

    Manchmal ist es sinnvoll, den Prozedurrahmen direkt im VBA-Editor zu erstellen - beispielsweise, wenn Sie für mehrere Steuerelemente die gleichen Prozeduren anlegen möchten.

    Um den VBA-Editor anzuzeigen, verwenden Sie den Menübefehl Ansicht/Code. Achten Sie dabei darauf, dass sich das Objekt, dessen Klassenmodul Sie anzeigen möchten, in der Entwurfsansicht befindet und auch aktiviert ist.

    Abb. 5 zeigt den VBA-Editor ohne automatisch angelegten Prozedurrahmen. Diesmal handelt es sich um die Access 2000-Variante. Unter Access 2000 wird ein komplett neues Fenster zur Bearbeitung von Code geöffnet.

    Selbstverständlich können Sie nun die Prozedur komplett von Hand eingeben - Sie müssen allerdings auf die Konventionen für die Benennung von Ereignisprozeduren achten, da die Prozedur nur dann durch das angegebene Ereignis ausgelöst wird.

    Der Prozedurname einer Ereignisprozedur setzt sich aus zwei Teilen zusammen, die durch einen Unterstrich (_) getrennt werden: dem Objektnamen sowie der Ereignisbezeichnung.

    Am einfachsten kommen Sie über die beiden Kombinationsflächen oberhalb des Eingabebereichs für den Code an die beiden Teile des Prozedurnamens.

    Öffnen Sie das linke Kombinationsfeld, um alle im Objekt befindlichen Bereiche und Steuerelemente anzuzeigen, und wählen Sie den gewünschten Eintrag aus.

    Im rechten Kombinationsfeld finden Sie alle Ereignisse, die für den Eintrag des linken Kombinationsfeldes zur Verfügung stehen.

    Abb. 5: VBA-Editor unter Access 2000

    Abb. 6: Diese Prozedur wird beim Laden des Formulars ausgelöst.

    Achtung: Wenn Sie das linke Kombinationsfeld verwenden, erstellt Access automatisch einen Prozedurrahmen. Dabei handelt es sich um die Ereignisprozedur, die für das jeweilige Objekt als Standardereignis angegeben ist.

    Falls dies nicht der Rahmen der gewünschten Prozedur ist, können Sie ihn einfach löschen. Sie haben aber nun im linken Kombinationsfeld das gewünschte Objekt ausgewählt, für das Sie eine Ereignisprozedur anlegen möchten. Sie müssen nun noch im rechten Kombinationsfeld das gewünschte Ereignis auswählen.

    Access legt dann automatisch den Prozedurrahmen für die neue Ereignisprozedur an und trägt den Wert [Ereignisprozedur] für die entsprechende Eigenschaft des Objektes oder Steuerelements ein.

    Praxis-Tipp

    Die beiden Kombinationsfelder dienen eigentlich einem ganz anderen Zweck: Mit ihnen können Sie sehr schnell die Ereignisprozeduren der einzelnen Objekte finden. Wählen Sie einfach den gewünschten Bereich oder das Steuerelement und das gewünschte Ereignis aus, um die entsprechende Ereignisprozedur anzuzeigen. (

    Prozedurrumpf einfügen

    Sie sollten nun zwei Voraussetzungen geschaffen haben, bevor Sie mit der Eingabe des Quellcodes beginnen können:

  • Sie haben das richtige Modul für das gewünschte Objekt geöffnet oder erstellt.
  • Sie haben einen Prozedurrahmen angelegt.
  • Falls dies zutrifft, können Sie nun die gewünschten Codezeilen zwischen die erste und letzte Zeile des Prozedurrahmens einfügen - z. B. wie in Abb. 6.

    Anschließend schließen Sie einfach den VBA-Editor. Die Prozedur wird beim nächsten Speichervorgang des Objekts gesichert.

    Dem ersten Test der Prozedur steht nun nichts mehr im Wege.

    Kompletten Artikel lesen?

    Einfach für den Newsletter anmelden, dann lesen Sie schon in einer Minute den kompletten Artikel und erhalten die Beispieldatenbanken.

    E-Mail:

    © 2003-2015 André Minhorst Alle Rechte vorbehalten.