Home > Artikel > Ausgabe 12/2013 > Das Kontrollkästchen

Das Kontrollkästchen

Achtung: Sie sind nicht angemeldet. Wenn Sie Abonnent sind und sich anmelden, lesen Sie den kompletten Artikel, laden das PDF herunter oder probieren die Beispieldatenbank aus (sofern vorhanden).

Immer, wenn es um die Darstellung von Werten im Format Ja/Nein, Wahr/Falsch, True/False oder -1/0 geht, kommt das Kontrollkästchen zum Zug. Es ist etwas unscheinbar, aber wenn Boolean-Werte angezeigt werden sollen, ist es in seiner Kompaktheit unschlagbar und sehr praktisch. Dieser Artikel zeigt, wie Sie mit dem Kontrollkästchen arbeiten, wie Sie es an eine Datenherkunft binden und welche weiteren Eigenschaften es offenbart.

Beispieldatenbank

Die Beispiele dieses Artikels finden Sie in der Datenbank 1312_Kontrollkaestchen.mdb.

Mit und ohne Bindung

Ein Kontrollkästchen können Sie wie die übrigen Steuerelemente mit und ohne Bindung an ein Feld der Datenherkunft des Formulars benutzen. Für den ersten Fall bietet es sich beispielsweise zum Festlegen von Optionen vor der Ausführung von Aktionen wie etwa dem Drucken eines Dokuments an.

Bei gebundenen Formularen zeigt es die Werte aus Ja/Nein-Feldern an und ermöglicht es, die enthaltenen Werte mit einem einfachen Mausklick zu ändern. Dabei stellt das Kontrollkästchen mit aktiviertem Häkchen den Wert -1 (True, Wahr, Ja) dar. Ohne Häkchen repräsentiert es den Wert 0 (False, Falsch, Nein).

Ungebundene Kontrollkästchen

Im ersten Beispiel fügen Sie zunächst ein einfaches Kontrollkästchen zu einem Formular namens frmKontrollkaestchen hinzu.

Dazu klicken Sie im Ribbon unter Entwurf|Steuerelemente auf das entsprechende Symbol und platzieren es dann an der gewünschten Stelle im Formular. Im Gegensatz zu den meisten übrigen Steuerelementen platziert Access das Bezeichnungsfeld rechts neben dem eigentlichen Steuerelement und nicht links daneben.

Das ist manchmal praktisch, aber nicht immer – zum Beispiel dann nicht, wenn das Kontrollkästchen gebunden ist und zusammen mit den übrigen Feldern der Datenherkunft untereinander dargestellt werden soll. Wir vertauschen also zunächst die Position der beiden zusammengehörenden Steuerelemente.

Access stellt außerdem automatisch den Namen des Steuerelements sowie den Text des Bezeichnungsfeldes ein (siehe Bild 1). Diese beiden Werte passen wir als Erstes an: Das Kontrollkästchen soll den Namen chkBeispiel1 und das Bezeichnungsfeld den Wert Beispiel 1: für die Eigenschaft Beschriftung erhalten.

Hinzufügen eines ersten Kontrollkästchens

Bild 1: Hinzufügen eines ersten Kontrollkästchens

Wenn Sie nun in den Entwurf des Formulars wechseln, finden Sie das Kontrollkästchen wie in Bild 2 vor.

Kontrollkästchen ohne Wert

Bild 2: Kontrollkästchen ohne Wert

Ups – das ist aber weder ein leeres noch ein angehaktes Kontrollkästchen! Wenn das Kontrollkästchen den Wert -1 (True) oder 0 (False) hätte, würde es wohl entweder einen Haken anzeigen oder leer sein. Welchen Wert mag es also nun enthalten? Dies können wir nur auf eine At herausfinden – per VBA.

Aktuellen Wert ermitteln

Wenn Sie den Wert eines Kontrollkästchens ermitteln möchten, müssen brauchen Sie zwei Informationen: den Namen des Formulars, in dem sich das Kontrollkästchen befindet sowie den Namen des Kon­trollkästchens.

Dann öffnen Sie den Direktbereich im VBA-Editor mit Strg + G und geben dort den folgenden Ausdruck ein:

Forms!frmKontrollkaestchen! chkBeispiel1

Das Ergebnis lautet Null, wie auch der Screenshot aus Bild 3 zeigt.

Das Kontrollkästchen enthält den Wert Null.

Bild 3: Das Kontrollkästchen enthält den Wert Null.

Nun soll das Kontrollkästchen beim Anzeigen weder so aussehen, wie es aussieht, noch den Wert Null liefern, wenn wir seinen Wert abfragen. Dies können wir nur verhindern, wenn wir einen entsprechenden Standardwert für das Kontrollkästchen festlegen. Dies erledigen Sie auf der Registerseite Daten des Eigenschaftsfensters.

Stellen Sie diese Eigenschaft auf den Wert 0 ein, wenn das Kontrollkästchen beim Anzeigen leer sein soll und auf -1, wenn es einen Haken enthalten soll (siehe Bild 4).

Einstellen des Standardwerts

Bild 4: Einstellen des Standardwerts

Der nächste Wechsel zur Formularansicht liefert dann auch das gewünschte leere Kontrollkästchen (siehe Bild 5).

Neuer Standardwert

Bild 5: Neuer Standardwert

Die Abfrage des Wertes mit Forms!frm­Kon­troll­kaest­chen!chk­Bei­spiel1 im Direktbereich von VBA liefert nun den Wert 0. Wenn Sie das Kontrollkästchen anhaken, liefert die Abfrage den Wert -1 – es funktioniert also alles wie gewünscht.

True und False

An dieser Stelle nochmal der Hinweis, dass unter VBA die Zahl -1 dem Wert True und 0 dem Wert False entspricht.

Dies entspricht auch den Werten eines Ja/Nein- beziehungsweise Boolean-Feldes in Access-Datenbanken.

Wenn Sie eine SQL Server-Datenbank verwenden, entspricht 0 ebenfalls dem Wert False, allerdings müssen Sie für True den Zahlenwert 1 verwenden.

Experimente

Um das Verhalten des Kontrollkästchens besser kennenzulernen, führen wir einige Experimente durch. Dazu fügen Sie zunächst einige weitere Steuerelemente zum Formular frmKontrollkaestchen hinzu (siehe Bild 6).

Erweitern des Formulars für weitere Experimente

Bild 6: Erweitern des Formulars für weitere Experimente

Dabei handelt es sich um ein Textfeld namens txtWertKontroll­kaestchen sowie die drei Schaltflächen cmdFalse, cmdNull und cmdTrue.

Außerdem statten wir das Formular und seine Steuerelemente mit einigen Ereignisprozeduren aus.

Als Erstes soll gleich beim Laden des Formulars der Wert des Kontrollkästchens im Textfeld txtWertKontrollkaestchen angezeigt werden. Dies erledigt die folgende Ereignisprozedur:

Private Sub Form_Load()

     Me!txtWertKontrollkaestchen = Nz(Me!chkBeispiel1.Value, "NULL")

End Sub

Die Prozedur schreibt einfach den Wert des Kontrollkästchens in das Textfeld. Der Wert Null würde als leeres Feld angezeigt werden, weshalb wir diesen mit der Nz-Funktion durch die Zeichenfolge NULL ersetzen.

Sie können nun durch mehrfaches Anklicken des Kontrollkästchens die verschiedenen Werte ausprobieren (siehe Bild 7). Dazu haben wir eine weitere Prozedur angelegt, die durch das Ereignis Nach Aktualisierung des Kombinationsfeldes ausgelöst wird und sowohl den aktuellen Wert in das Textfeld einträgt als auch eine Meldung im Direktfenster ausgibt, wenn diese Prozedur aufgerufen wird (siehe Listing 1).

Sie haben das Ende des frei verfügbaren Teil dieses Artikels erreicht!

Wenn Sie mehr lesen und auf viele weitere Artikel zugreifen möchten, melden Sie sich als Abonnent unter Login an. Falls nicht, bestellen Sie doch einfach ein Jahresabonnement!