Die Rollen eines Benutzers als Tokens führen
In diesem Tutorial bauen Sie ein Benutzerformular, dessen Rollen Tokens sind: Jede Rolle ist eine Zeile einer untergeordneten Tabelle, die wählbaren Rollen stammen aus einer Tabelle, und andere Werte werden abgelehnt.
Voraussetzungen
- Microsoft 365 Access oder Access Runtime, in 32 oder 64 Bit, mit der WKL Forms Object Library 1.33 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. Beispieltabellen anlegen
Fügen Sie die Prozedur in ein Standardmodul ein und führen Sie sie einmal im Direktbereich aus
(CreateTokenSample):
Public Sub CreateTokenSample()
With CurrentDb
.Execute "CREATE TABLE tblBenutzer (ID LONG CONSTRAINT PK_Benutzer PRIMARY KEY, Name TEXT(50))"
.Execute "CREATE TABLE tblRolle (Rolle TEXT(30) CONSTRAINT PK_Rolle PRIMARY KEY)"
.Execute "CREATE TABLE tblBenutzerRolle (BenutzerID LONG NOT NULL, Rolle TEXT(30) NOT NULL, " & _
"CONSTRAINT PK_BenutzerRolle PRIMARY KEY (BenutzerID, Rolle))"
.Execute "INSERT INTO tblBenutzer VALUES (1, 'Meier')"
.Execute "INSERT INTO tblRolle VALUES ('Leser')"
.Execute "INSERT INTO tblRolle VALUES ('Autor')"
.Execute "INSERT INTO tblRolle VALUES ('Admin')"
.Execute "INSERT INTO tblBenutzerRolle VALUES (1, 'Leser')"
End With
End Sub
2. Formular erstellen
Erstellen Sie ein einzelnes Formular frmBenutzer, gebunden an tblBenutzer, mit den
Textfeldern ID und Name.
3. Token-Feld einfügen
Wählen Sie Formularentwurf › Steuerelemente › ActiveX-Steuerelemente › WKL Token Box,
ziehen Sie das Feld unter Name etwa 8 cm breit und 1 cm hoch auf und nennen Sie es
tokRollen. Setzen Sie seinen Steuerelementinhalt (Eigenschaftenblatt, Registerkarte
Daten) auf ID, damit das Feld dem Datensatz folgt.
4. An die untergeordnete Tabelle binden
Öffnen Sie den Designer (Eigenschaftenblatt, Registerkarte Andere, Zeile
Benutzerdefiniert [...]). Setzen Sie auf der Seite Daten die Datensatzquelle auf
tblBenutzerRolle, das Wertfeld auf Rolle, Verknüpfen von (Kind) auf BenutzerID
und Verknüpfen nach (Formular) auf ID. Setzen Sie auf der Seite Vorschläge und Regeln
die Vorschlagsquelle auf SELECT Rolle FROM tblRolle ORDER BY Rolle und schalten Sie
Freie Eingabe aus. Klicken Sie auf OK und speichern Sie das Formular.
5. Ausprobieren
Öffnen Sie das Formular: Bei Meier steht das Token „Leser“. Geben Sie au in das Feld ein und
drücken Sie die Eingabetaste: „Autor“ wird hinzugefügt, und tblBenutzerRolle enthält sofort
eine zweite Zeile. Geben Sie Gast ein und drücken Sie die Eingabetaste: Der Wert wird
abgelehnt, und der Grund erscheint unter dem Feld. Klicken Sie auf die Schaltfläche zum
Entfernen von „Leser“: Seine Zeile wird gelöscht.
Erwartetes Ergebnis
- Jedes Token ist eine Zeile von
tblBenutzerRolle, geschrieben beim Hinzufügen oder Entfernen des Tokens; der Datensatz vontblBenutzerbleibt unverändert. - Angenommen werden nur Rollen aus
tblRolle, und keine Rolle lässt sich zweimal hinzufügen. - Bei einem neuen Benutzerdatensatz nimmt das Feld Eingaben an, sobald der Datensatz gespeichert ist.
Nächste Schritte
- Mehrere Werte eines Datensatzes als Tokens führen: eine Rückfrage, bevor die letzte Rolle entfernt wird, und die Rollen als Spalte einer Benutzerliste.