Eine Zahl auf eine Schaltfläche setzen
In diesem Tutorial setzen Sie die Anzahl der offenen Sitzungen auf eine Schaltfläche eines Startformulars, zuerst per Code, dann gebunden an einen Ausdruck. Anschließend prüfen Sie, dass die Schaltfläche weiterhin auf einen Klick auf die Zahl reagiert.
Voraussetzungen
- Microsoft 365 Access oder Access Runtime, in 32 oder 64 Bit, mit der WKL Forms Object Library 1.35 oder höher, installiert und für den aktuellen Windows-Benutzer registriert (Freigegebenes Paket installieren).
- Eine neue oder vorhandene Datenbank an einem vertrauenswürdigen Speicherort.
- Jedes WKL-Steuerelement öffnet seinen Designer auf dieselbe Weise: in der Entwurfsansicht im Eigenschaftenblatt (F4), Registerkarte Andere, Zeile Benutzerdefiniert,
[...](Designer eines Steuerelements öffnen).
Schritte
1. Beispieltabelle anlegen
Fügen Sie die Prozedur in ein Standardmodul ein und führen Sie sie einmal im Direktbereich aus
(CreateBadgeSample):
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
2. Formular mit Schaltfläche erstellen
Erstellen Sie in der Entwurfsansicht ein leeres Formular frmStart. Fügen Sie eine
Befehlsschaltfläche hinzu, brechen Sie den Assistenten ab, nennen Sie die Schaltfläche
cmdSitzungen und geben Sie ihr die Beschriftung &Sitzungen. Geben Sie ihr eine
Ereignisprozedur für den Klick:
Private Sub cmdSitzungen_Click()
MsgBox "Sitzungen öffnen"
End Sub
3. Badge einfügen
Wählen Sie Formularentwurf › Steuerelemente › ActiveX-Steuerelemente › WKL Badge und ziehen
Sie es nahe der oberen rechten Ecke der Schaltfläche auf, etwa so groß wie ein kleines Quadrat.
Nennen Sie es badSitzungen (Eigenschaftenblatt, Registerkarte Andere, Name).
4. Badge auf die Schaltfläche richten
Öffnen Sie den Designer: Eigenschaftenblatt, Registerkarte Andere, Zeile
Benutzerdefiniert [...]. Wählen Sie auf der Seite Ziel cmdSitzungen als Ziel und
„Oben rechts“ als Ecke, geben Sie als Gezähltes Offene Sitzungen ein und setzen Sie das
Häkchen bei An Ziel ausrichten. Klicken Sie auf OK: Das Badge springt auf die Ecke der
Schaltfläche.
5. Zahl per Code setzen
Fügen Sie dem Formularmodul hinzu und wechseln Sie in die Formularansicht:
Private Sub Form_Load()
Me!badSitzungen.Object.Count = DCount("*", "tblSitzung", "Offen = True")
End Sub
Die Schaltfläche zeigt an ihrer Ecke eine rote „2“. Klicken Sie auf die „2“: Das Meldungsfenster der Schaltfläche erscheint, weil der Klick durch das Badge hindurch an die Schaltfläche geht.
6. Stattdessen binden
Entfernen Sie Form_Load und setzen Sie den Steuerelementinhalt des Badges
(Eigenschaftenblatt, Registerkarte Daten) auf:
=DCount("*";"tblSitzung";"Offen = True")
Ein deutsches Access trennt die Argumente im Eigenschaftenblatt mit ;, ein englisches mit
,. Wechseln Sie in die Formularansicht: Die Zahl stammt aus dem Ausdruck, den Access wie bei
einem berechneten Textfeld berechnet.
Erwartetes Ergebnis
- Die Schaltfläche zeigt in der Formularansicht an ihrer oberen rechten Ecke „2“; in der Entwurfsansicht bleibt das Badge dort, wo Sie es aufgezogen haben.
- Ein Klick auf die Zahl führt
cmdSitzungen_Clickaus; die Tabulatortaste hält nie am Badge. - Gibt es keine offene Sitzung (alle
Offen= Nein), ist das Badge beim Öffnen des Formulars ausgeblendet.
Nächste Schritte
- Anzahl an einer Schaltfläche anzeigen: ein Punkt auf einem Bezeichnungsfeld, Farben je Datensatz aus
KindField. - API-Referenz (Englisch): WklBadge: alle Eigenschaften und die Wertregeln.