window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'G-TCJTE9L38H');

Die Umschaltfläche

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

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:

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