Farbschema: Riviera
Sie befinden sich hier: start » de » Dokumentation » Werkzeuge für Microsoft Access » WKL Forms Object Library » how-to » Schalter für ein Ja/Nein-Feld verwenden

Schalter für ein Ja/Nein-Feld verwenden

Zeigen Sie ein Ja/Nein-Feld als Schalter mit sofortiger Wirkung an, wie es die Windows-Einstellungen tun – auf einem Formular mit WklToggleSwitch, in einer Liste als Spalte eines WklGrid oder einer WklTreeList.

Voraussetzungen: WKL Forms Object Library 1.32 oder höher.

Lösungsüberblick

  • Auf einem Formular: Fügen Sie WKL Toggle Switch (ein ActiveX-Steuerelement) ein, und setzen Sie seinen Steuerelementinhalt (ControlSource) wie bei einem Kontrollkästchen auf das Ja/Nein-Feld. Caption, OnText und OffText legen Sie auf der Designerseite Schalter oder im Eigenschaftenblatt fest.
  • Sofortige Wirkung: Das Umschalten durch den Benutzer ändert den Datensatz wie jede Bearbeitung; speichern Sie ihn im Ereignis Change mit Me.Dirty = False.
  • Nicht bearbeitbar: Gesperrt (Locked) = Ja am Steuerelement oder Bearbeitungen zulassen (AllowEdits) = Nein am Formular – der Schalter lässt sich dann nicht umschalten.
  • In einer Liste: Eine Spalte mit Editor = wedToggle zeichnet denselben Schalter; OnText und OffText der Spalte fügen einen Zustandstext hinzu (standardmäßig leer, weil eine Liste wenig Platz hat). Ein Klick oder die Leertaste schaltet um und speichert wie jede Zellbearbeitung der Liste.

Umsetzung

Ein Formular frmUser ist an tblUser gebunden und enthält einen Schalter tglAktiv, der an das Feld Aktiv gebunden ist:

' Once, in design view (or on the designer's pages); saved with the form.
With Forms!frmUser!tglAktiv
    .ControlSource = "Aktiv"
    .Object.Caption = "Konto"
    .Object.OnText = "Aktiv"
    .Object.OffText = "Gesperrt"
End With
' Form module of frmUser: every switch is saved at once.
Private Sub tglAktiv_Change()
    Me.Dirty = False
End Sub

Eine Benutzerliste mit demselben Schalter als Spalte:

With Me!lstUser.Object
    .RecordSource = "tblUser"
    .KeyField = "UserID"
    With .Columns.Add("Aktiv", "Konto")
        .Editor = wedToggle
        .OnText = "Aktiv"
        .OffText = "Gesperrt"
    End With
End With

Hinweise

  • Verlassen Sie sich vor dem Speichern nicht auf das Feld. Access markiert den Datensatz als geändert, wenn der Benutzer umschaltet, und schreibt den Wert des Schalters spätestens beim Speichern des Datensatzes in das Feld. In Change und bis zum Speichern kann das Feld (Me!Aktiv) noch den alten oder schon den neuen Wert liefern. Lesen Sie in Change den neuen Zustand am Steuerelement (Me!tglAktiv), oder speichern Sie zuerst.
  • Rückgängig (Esc, Me.Undo) setzt den Schalter mit dem Datensatz zurück.
  • Per Code gesetztes Value zeigt nur einen Zustand an und schreibt nichts; ändern Sie stattdessen das Feld (Me!Aktiv = True).
  • Null – ein Feld ohne Wert, zum Beispiel eine Bit-Spalte von SQL Server, die Null zulässt – zeigt einen grauen Schalter mit dem Knopf in der Mitte und ohne Zustandstext; das erste Umschalten schaltet ihn ein.
  • Bildschirmsprachausgaben hören eine Schaltfläche mit dem Muster Toggle: die Beschriftung (oder den Namen des Steuerelements) und den Zustand ein, aus oder unbestimmt.
  • Auf UserForms in Excel und Word arbeitet der Schalter ungebunden: Setzen Sie Value per Code, und lesen Sie den Wert in Change.
  • Nicht im Detailbereich eines Endlosformulars: Access legt dort eine einzige Instanz eines ActiveX-Steuerelements an, die nur den aktuellen Datensatz zeigt, und mit einem Steuerelementinhalt im Detailbereich öffnet Access das Formular nicht vollständig. Für einen Schalter je Datensatz verwenden Sie die Listenspalte.

Verwandte Themen

de/wiki/msaccess/comctl/how-to/use-a-toggle-switch.txt · Zuletzt geändert: von Wolfgang van der Stille