Eine Struktur an eine Tabelle binden
In diesem Tutorial legen Sie eine kleine Tabelle mit Regionen an und platzieren eine
WklTreeView auf einem Formular. Sie binden sie ohne Code im Eigenschaftenblatt und
aktualisieren ein zweites Steuerelement, sobald der Benutzer einen Knoten auswählt. Das dauert
etwa fünfzehn Minuten.
Voraussetzungen
- Microsoft 365 Access oder Access Runtime in der 32- oder 64-Bit-Version mit der WKL Forms Object Library 1.23 oder höher, installiert und für den aktuellen Windows-Benutzer registriert (Freigegebenes Paket installieren).
- Eine neue, leere Datenbank an einem vertrauenswürdigen Speicherort (Datei › Optionen › Trust Center), damit ActiveX-Steuerelemente und VBA in der Formularansicht ausgeführt werden.
- 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
Öffnen Sie den Direktbereich (Strg+G im VBA-Editor) und führen Sie diese Zeilen nacheinander aus:
CurrentDb.Execute "CREATE TABLE tblRegionen (RegionID COUNTER PRIMARY KEY, ElternID LONG, Regionsname TEXT(50))" CurrentDb.Execute "INSERT INTO tblRegionen (ElternID, Regionsname) VALUES (0, 'Europa')" CurrentDb.Execute "INSERT INTO tblRegionen (ElternID, Regionsname) VALUES (1, 'Deutschland')" CurrentDb.Execute "INSERT INTO tblRegionen (ElternID, Regionsname) VALUES (2, 'Berlin')" CurrentDb.Execute "INSERT INTO tblRegionen (ElternID, Regionsname) VALUES (2, 'Koeln')" CurrentDb.Execute "INSERT INTO tblRegionen (ElternID, Regionsname) VALUES (1, 'Österreich')" CurrentDb.Execute "INSERT INTO tblRegionen (ElternID, Regionsname) VALUES (0, 'Amerika')"
ElternID = 0 verweist auf keinen Datensatz; Europa und Amerika werden daher zu Stammknoten. Die
Schreibweise „Koeln“ ist Absicht; Sie korrigieren sie in Schritt 5.
2. Steuerelement einfügen
- Erstellen Sie ein leeres Formular in der Entwurfsansicht.
- Wählen Sie Formularentwurf › Steuerelemente › ActiveX-Steuerelemente, markieren Sie WKL TreeView und klicken Sie auf OK.
- Ziehen Sie das Steuerelement auf und nennen Sie es
Tree1(Eigenschaftenblatt, Registerkarte Andere, Name).
Access fügt der Datenbank den Verweis WKL Forms Object Library (mit der Version des registrierten Release) hinzu.
3. Struktur binden
Legen Sie im Eigenschaftenblatt auf der Registerkarte Andere fest:
| Eigenschaft | Wert |
|---|---|
RecordSource | tblRegionen (Werteliste) |
KeyField | RegionID |
ParentField | ElternID |
TextField | Regionsname |
ExpandLevel | 2 |
DefaultImage | Folder |
Alternativ klicken Sie in der Zeile Benutzerdefiniert auf [...] und öffnen so das
Designerfenster: Seine Seite Datenherkunft legt dieselben Felder fest und zeigt in der
Vorschau die echte Struktur. Der Designer spricht die Sprache der Komponenten.
4. Auswahl anzeigen
Fügen Sie dem Formular ein Textfeld txtAuswahl hinzu. Wählen Sie im Codefenster in der
Objektliste Tree1 und in der Prozedurliste NodeSelect, und vervollständigen Sie dann die
Prozedur:
Private Sub Tree1_NodeSelect(ByVal Key As Variant)
Me.txtAuswahl = Me!Tree1.Object.FullPath(Key)
End Sub
5. In der Formularansicht ausprobieren
Wechseln Sie in die Formularansicht. Klicken Sie auf Koeln und drücken Sie dann F2:
Umbenennen ist ausgeschaltet, also geschieht nichts. Setzen Sie in der Entwurfsansicht
LabelEdit auf Ja, wechseln Sie zurück, benennen Sie den Knoten in Köln um und drücken Sie
die Eingabetaste. Die Struktur schreibt den neuen Namen sofort in tblRegionen (AutoSave).
Erwartetes Ergebnis
- Die Struktur zeigt Europa und Amerika als Stammknoten; Europa ist bis Deutschland und Österreich aufgeklappt, Deutschland bis Berlin und Koeln, jeder Knoten mit einem Ordnersymbol.
- Die Auswahl von Koeln zeigt
Europa\Deutschland\KoelnintxtAuswahl. - Nach dem Umbenennen enthält der Datensatz in
tblRegionenden WertKöln.
Nächste Schritte
- Struktur durch Benutzer bearbeiten lassen: hinzufügen, löschen, verschieben, kopieren.
- Tutorial WklTreeList: dieselben Daten mit Spalten.
- Überblick über die Konzepte.