Barvna shema: Temna
Trenutno dejavna stran: start » de » Dokumentation » Werkzeuge für Microsoft Access » WKL Forms Object Library » how-to » Anzahl an einer Schaltfläche anzeigen

Anzahl an einer Schaltfläche anzeigen

Zeigen Sie an, wie viele Elemente hinter einer Access-Schaltfläche warten – „3“ offene Sitzungen an Sitzungen, einen roten Punkt an Hinweise –, so wie Outlook und Teams ungelesene Elemente kennzeichnen, ohne die Schaltfläche zu ändern und ohne ein zweites Klickziel.

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

Lösungsüberblick

  • WklBadge ist ein kleines ActiveX-Steuerelement. Legen Sie es neben die Schaltfläche, setzen Sie Target auf den Namen der Schaltfläche und Corner auf die Ecke. In der Formularansicht setzt es sich selbst auf diese Ecke und folgt der Schaltfläche, wenn Code sie verschiebt, in der Größe ändert oder ausblendet.
  • Der Wert: Setzen Sie Count per Code, oder binden Sie das Badge über seinen Steuerelementinhalt an ein Feld oder einen Ausdruck wie =DCount(...). Der Wert 0, Null und ein leerer Wert blenden das Badge aus; oberhalb von Max zeigt es „99+“. Dot zeigt eine Markierung ohne Zahl.
  • Klicks und Tastatur: Ein Klick auf das Badge erreicht die Schaltfläche darunter; das Badge ist kein Tabstopp. Bildschirmsprachausgaben hören „Sitzungen: 3“ mit der vollständigen Anzahl.

Umsetzung

Die Tabelle des Beispiels, einmalig angelegt (führen Sie die Prozedur im Direktbereich aus):

Public Sub CreateBadgeSample()
    With CurrentDb
        .Execute "CREATE TABLE tblSitzung (ID LONG CONSTRAINT PK_Sitzung PRIMARY KEY, KundeID LONG, Offen YESNO)"
        .Execute "INSERT INTO tblSitzung VALUES (1, 1, True)"
        .Execute "INSERT INTO tblSitzung VALUES (2, 1, True)"
        .Execute "INSERT INTO tblSitzung VALUES (3, 2, False)"
    End With
End Sub

Ein Formular frmStart enthält die Schaltfläche cmdSitzungen und ein Badge badSitzungen, das nahe ihrer oberen rechten Ecke gezeichnet ist. Die Eigenschaften des Badges werden einmalig im Eigenschaftenblatt (Registerkarte Andere) oder in der Entwurfsansicht per Code gesetzt; hier der Übersicht halber per Code in Form_Load:

Option Compare Database
Option Explicit
 
Private Sub Form_Load()
    With Me!badSitzungen.Object
        .Target = "cmdSitzungen"
        .Corner = wbcTopRight
        .AccessibleText = "Offene Sitzungen"
    End With
    ZaehlerAktualisieren
End Sub
 
Private Sub Form_Timer()
    ZaehlerAktualisieren        ' TimerInterval = 30000: every 30 seconds
End Sub
 
Private Sub ZaehlerAktualisieren()
    Me!badSitzungen.Object.Count = DCount("*", "tblSitzung", "Offen = True")
End Sub

Gebunden statt per Code: Setzen Sie den Steuerelementinhalt des Badges auf den Ausdruck; Access berechnet ihn mit dem Datensatz des Formulars:

' In design view, or in the property sheet: Control Source of badSitzungen
Me!badSitzungen.ControlSource = "=DCount(""*"",""tblSitzung"",""Offen = True AND KundeID = "" & [KundeID])"

Ein Punkt an einem Bezeichnungsfeld, in der Farbe einer Warnung:

With Me!badHinweise.Object
    .Target = "lblHinweise"
    .Dot = True
    .Kind = wskWarn
End With

Hinweise

  • In der Entwurfsansicht bleibt das Badge dort, wo Sie es gezeichnet haben; erst in der Formularansicht wandert es auf das Ziel. Zeichnen Sie es nahe an seinem Platz, damit der Entwurf aussieht wie das Formular.
  • Das Ziel muss ein Steuerelement ohne eigenes Fenster sein: eine Schaltfläche, ein Bezeichnungsfeld, ein Bild, ein Textfeld oder ein WKL-Steuerelement. Access zeichnet Unterformulare über jedes ActiveX-Steuerelement; ein Badge auf einem Unterformular bleibt verdeckt, legen Sie es daher neben das Unterformular.
  • Nicht im Detailbereich eines Endlosformulars; in dessen Formularkopf oder -fuß funktioniert das Badge. Eine Anzahl je Datensatz gehört in eine Spalte eines WklGrid.
  • Ein Badge mit Clickable = True nimmt Klicks selbst an und löst Click aus. Es ist dann ein Bedienelement, und seine Einstellung TabStop bleibt so, wie Access sie gesetzt hat.

Verwandte Themen

de/wiki/msaccess/comctl/how-to/show-a-count-on-a-button.txt · Zadnja sprememba: uporabnika Wolfgang van der Stille