Wenn wir von der Programmiersprache VBA in Zusammenhang mit Access-Formularen reden, geht es sehr oft um den Code, der durch das Anklicken einer Schaltfläche ausgelöst wird. Damit können wir einem Formular die Funktionen hinzufügen, die für das Verarbeiten der enthaltenen Daten benötigt werden. In manchen Fällen handelt es sich um das einfache Schließen des Formulars, in anderen soll ein Klick auf eine Schaltfläche vielleicht ein anderes Formular öffnen, das die Details zu einem aus einer Liste ausgewählten Datensatz liefert. Dieser Artikel zeigt die Grundlagen zur Programmierung von Schaltflächen per VBA.
Beispieldatenbank
Die Beispiele dieses Artikels findest Du in der Datenbank FormulareBasics_SchaltflaechenUndVBA.accdb.
Schaltfläche hinzufügen
Um eine Schaltfläche zu einem Formular hinzuzufügen, zeigen wir dieses in der Entwurfsansicht an. Im Bereich Formularentwurf|Steuerelemente des Ribbons finden wir dann alle in Access eingebauten Steuerelemente, unter anderem auch die Schaltfläche. Klicken wir diese an, haben wir zwei Möglichkeiten:
- Wir können im Formular entweder an die Stelle klicken, an welcher die linke, obere Ecke der Schaltfläche landen soll. Dann wird die Schaltfläche in der Standardgröße angelegt.
- Oder wir ziehen direkt einen Rahmen in der gewünschten Größe auf, wenn die Schaltfläche eine andere als die Standardgröße erhalten soll.
In beiden Fällen landet eine Schaltfläche im Formular, die eine Beschriftung wie Befehl0 und einen gleichlautenden Namen erhält (siehe Bild 1).
Bild 1: Hinzufügen einer Schaltfläche zur Entwurfsansicht
Name und Beschriftung anpassen
Bevor wir die Schaltfläche mit einer Funktion füllen, wollen wir diese beiden Eigenschaften ändern. Den angezeigten Text, damit der Benutzer weiß, was geschieht, wenn er auf die Schaltfläche klickt, und den Namen, damit wir die Schaltfläche später einfach per VBA-Code referenzieren können. Und da die durch die Schaltfläche ausgelöste Prozedur einen Namen erhält, der zum Teil aus dem Namen der Schaltfläche besteht, sollte dieser recht aussagekräftig sein.
Die Beschriftung ändern wir, indem wir die Schaltfläche einmal anklicken und dann noch einmal (nicht zu schnell hintereinander) und die dann im Änderungsmodus angezeigte Beschriftung anpassen (siehe Bild 2).
Bild 2: Ändern der Beschriftung
Wir können die Beschriftung auch direkt im Eigenschaftenblatt der Schaltfläche ändern. Dazu muss die Schaltfläche markiert sein. Die Beschriftung ändern wir wie im Beispiel aus Bild 3 in OK.
Bild 3: Ändern der Beschriftung per Eigenschaftenblatt
Die Anpassung des Namens erfolgt über die Eigenschaft Name auf der Registerseite Andere des Eigenschaftenblatts. Hier geben wir den Namen cmdOK ein. Mit dem Präfix cmd geben wir an, dass es sich bei dem Steuerelement um einen CommandButton handelt, also eine Schaltfläche. Damit können wir dieses später, wenn wir einmal per VBA auf solche Steuerelemente zugreifen wollen, leichter per IntelliSense auffinden.
Nachdem dies erledigt ist, finden wir auch in der Auswahllist oben im Eigenschaftenblatt bereits den neuen Namen der Schaltfläche vor. Sollte dieses aus irgendwelchen Gründen einmal nicht direkt im Formular auszuwählen sein, beispielsweise, weil es durch andere Steuerelemente verdeckt ist, können wir es über die Auswahl in dieser Liste selektieren (siehe Bild 4).
Bild 4: Ändern des Namens der Schaltfläche
Ereignisprozedur anlegen
Damit kommen wir auch schon zum magischen Teil dieses Artikels: Dem Anlegen einer Ereignisprozedur, die dann die für diese Schaltfläche vorgesehenen Codezeilen ausführt.
Das erledigen wir über die Registerseite Ereignis des Eigenschaftenblatts, während die Schaltfläche cmdOK markiert ist. Hier finden wir verschiedene Ereignisse vor, von denen uns aktuell nur das Ereignis Beim Klicken interessiert. Mit der Schaltfläche mit dem nach unten zeigenden Pfeil öffnen wir eine Liste, die aktuell nur den Eintrag [Ereignisprozedur] enthält (siehe Bild 5).
Bild 5: Auswählen des Eintrags [Ereignisprozedur]
Anzeigen, dass es eine Ereignisprozedur für ein Ereignis gibt
Genau diesen benötigen wir und wählen ihn aus. Damit legen wir jedoch noch nicht die Prozedur an, die beim Anklicken der Schaltfläche ausgelöst werden soll. Vielmehr geben wir nur an, dass Access beim Anklicken der Schaltfläche im Klassenmodul des Formulars nachschauen soll, ob dort ein passendes Ereignis notiert ist. Um dieses anzulegen, klicken wir nach dem Auswählen des Eintrags [Ereignisprozedur] auf die rechts davon befindliche Schaltfläche mit den drei Punkten.
Möchten Sie weiterlesen? Dann lösen Sie Ihr Ticket!
Hier geht es zur Bestellung des Jahresabonnements des Magazins Access [basics]:
Zur Bestellung ...
Danach greifen Sie sofort auf alle rund 400 Artikel unseres Angebots zu - auch auf diesen hier!
Oder haben Sie bereits Zugangsdaten? Dann loggen Sie sich gleich hier ein: