Die Umschaltfläche

Neben der normalen Schaltfläche fristet die Umschaltfläche bei den meisten Entwicklern das Dasein eines Stiefkindes. Oder sollte man eher sagen, neben dem Kontrollkästchen und der Optionsgruppe samt Optionsfeldern Denn eigentlich ist die Aufgabe dieses Steuerelements eher die zur Auswahl einer von zwei oder mehr Optionen. Dazu gehört natürlich auch das An- oder Ausschalten bestimmter Zustände.

Beispieldatenbank

Die Beispiele dieses Artikels finden Sie in der Datenbank 1208_Umschaltflaeche.mdb.

Umschaltfläche als Einzelgänger

Im einfachsten Fall verwenden Sie die Umschaltfläche als einfaches, ungebundenes Steuerelement. Ein Beispiel zeigt Bild 1. Die dortige Umschaltfläche im Formular frmToggleButton der Beispieldatenbank heißt schlicht tblAnAus. In diesem ersten Beispiel wollen wir uns zunächst ansehen, welche Werte die Umschaltfläche abhängig von ihrem Zustand annimmt.

Eine einfache Umschaltfläche

Bild 1: Eine einfache Umschaltfläche

Dazu geben Sie einfach im Direktfenster des VBA-Editors (Strg + G, am besten platzieren Sie beide Fenster nebeneinander) die folgende Anweisung ein:

  Forms!frmToggleButton!tglAnAus.Value
    Null

Dies war der Zustand direkt nach dem öffnen des Formulars für eine ungebundene Umschaltfläche – die Eigenschaft Value liefert den Wert Null. Sie können die Angabe der Eigenschaft Value auch weglassen, da dies die Standardeigenschaft dieses Steuerelements ist. Klicken Sie nun einmalig auf die Umschaltfläche und führen die Abfrage für den gedrückten Status aus, sieht das Ergebnis so aus:

  Forms!frmToggleButton!tglAnAus
    -1 

Der gedrückte Zustand liefert also den Wert -1 beziehungsweise True. Ein erneutes Anklicken liefert schließlich den Wert 0, also False.

Ereignisse der Umschaltfläche

Anschließend prüfen wir, wie wir auf das Anklicken der Umschaltfläche reagieren und den aktuellen Wert verarbeiten können. Ein Blick auf die Registerseite Ereignis des Eigenschaftsfensters liefert alle zur Verfügung stehenden Ereigniseigenschaften (siehe Bild 2). Davon sind drei interessant: Beim Klicken, Vor Aktualisierung und Nach Aktualisierung.

Ereigniseigenschaften der Umschaltfläche

Bild 2: Ereigniseigenschaften der Umschaltfläche

Beim Anklicken der Umschaltfläche werden alle drei Eigenschaften in der folgenden Reihenfolge ausgelöst:

  • Vor Aktualisierung
  • Nach Aktualisierung
  • Beim Klicken

Dies können Sie ganz einfach testen, indem Sie für alle drei Eigenschaften je eine Ereignisprozedur anlegen und diesen einen Haltepunkt hinzufügen. Die Ereigniseigenschaft fügen Sie am schnellsten hinzu, indem Sie den Wert [Ereigniseigenschaft] für die jeweilige Eigenschaft auswählen und auf die Schaltfläche mit den drei Punkten klicken. Einmal im VBA-Editor angelangt, können Sie weitere Ereignisprozeduren über die beiden Kombinationsfelder oben im Code-Fenster mit dem Klassenmodul Form_frmToggleButton des Beispielformulars hinzufügen. Dort klicken Sie dann links auf den grauen Rand neben dem Prozedurkopf, um Haltepunkte hinzuzufügen (siehe Bild 3).

Wichtige Ereignisprozeduren einer Umschaltfläche

Bild 3: Wichtige Ereignisprozeduren einer Umschaltfläche

Schauen wir, ob es Unterschiede zwischen den Prozeduren gibt – gegebenenfalls wird ja das Ereignis Vor Aktualisierung so früh ausgelöst, dass Value noch nicht den geänderten Wert liefert, dies aber bei den übrigen Ereignissen der Fall ist. Dazu lassen wir bei jedem Ereignis den Wert der Umschaltfläche ausgeben:

Private Sub tglAnAus_AfterUpdate()
     Debug.Print "AfterUpdate: ", tglAnAus.Value
End Sub
Private Sub tglAnAus_Click()
     Debug.Print "Click: ", tglAnAus.Value
End Sub
Private Sub tglAnAus_BeforeUpdate(Cancel As Integer)
     Debug.Print "BeforeUpdate: ", tglAnAus.Value
End Sub

Nach dem Anklicken der Umschaltfläche liefern jedoch alle drei Ereignisse den gleichen Wert, wie die folgende Ausgabe im Direktfenster bestätigt:

Access [basics]

Unser exklusives Angebot für Dich!

Access im Unternehmen
7,90 € im Monat*

(Das Abo ist jederzeit monatlich kündbar)

Hier geht’s weiter →

Die ersten 4 Wochen kostenlos testen – voller Zugriff auf alle Artikel, vollständigen Code und Beispieldatenbanken. Kein Risiko: Wenn es nicht passt, kündigst Du einfach innerhalb der ersten vier Wochen.

PayPal VISA Mastercard SEPA
Kostenlos & unverbindlich

Oder hast Du eine konkrete Frage zu Deiner eigenen Access-Anwendung?

Vielleicht stellt Deine Anwendung Dich vor eine Herausforderung, zu der Du bisher keine Lösung findest. Schlechte Performance, kein ausreichender Zugriffsschutz, Du bist unsicher über Dein Datenmodell oder Dein Code liefert unerklärliche Fehler?

In unserem kostenlosen Access-Audit schaut sich André Minhorst persönlich gemeinsam mit Dir Deine Lösung per Zoom an – und zeigt Dir, wo Datenmodell, VBA-Code, Ergonomie und Sicherheit Optimierungspotenzial bieten.

Jetzt kostenloses Access-Audit anfordern →