WklTreeView
Eine datengebundene Struktur für Access-Formulare. Sie zeigt die Datensätze einer Tabelle, einer Abfrage oder einer SQL-Anweisung als Hierarchie. Der Benutzer kann sie auswählen, durchsuchen, bearbeiten und verschieben; Änderungen schreibt die Struktur wie ein gebundenes Access-Steuerelement in die Datenquelle zurück.
Erste Schritte
Häufige Aufgaben
Schaubild
+- Tree1 -------------------------------+ | [1] Suchen: ö_ 2 Treffer < > | +---------------------------------------+ | v [F] Europa [2] | | v [F] Deutschland | | [D] Berlin <-- [3] | | [D] Köln | | > [F] Österreich | | > [F] Amerika | +---------------------------------------+
| Bereich | Bedeutung |
|---|---|
| 1 | Suchleiste (Strg+F, AllowSearch): Suchtext, Anzahl der Treffer, vorheriger/nächster Treffer, „Nur Treffer“ |
| 2 | Ein Knoten je Datensatz: Text aus TextField, Symbol ([F] Ordner, [D] Dokument) aus ImageField oder DefaultImage, untergeordnete Knoten aus ParentField; v aufgeklappt, > zugeklappt |
| 3 | Ausgewählter Knoten (SelectedKey); ein Rechtsklick öffnet das Kontextmenü |
Wichtige Funktionen
- Bindung ohne Code:
RecordSource,KeyField,ParentField,TextField; optional Felder für Sortierung, Symbol, QuickInfo, Häkchen, Farbe und Fettdruck. - Verzögertes Laden großer oder verknüpfter Tabellen: Jede Ebene wird gelesen, sobald sie aufgeklappt wird.
- Master-Detail wie bei einem Access-Unterformular (
LinkChildFields,LinkMasterFields): Master ist der aktuelle Datensatz des Formulars, ein beliebiges DAO- oder ADO-Recordset oder Werte aus dem Code, auch auf UserForms. - Zusammengesetzte Schlüssel:
KeyFieldundParentFieldmit mehreren Feldern; in VBA sind Schlüssel dann Arrays. - Bearbeiten mit Zurückschreiben in einer Transaktion je Vorgang: umbenennen (F2), hinzufügen (Einfg), löschen (Entf), verschieben und kopieren durch Ziehen oder mit Strg+X/C/V, Häkchen.
- Suchen und Filtern über die gesamte Datenquelle, einschließlich noch nicht geladener Knoten.
- Pfade und JPath: einen Knoten über einen Textpfad auswählen (
Europa\Deutschland\Berlin) oder Knoten mit einem JPath-Ausdruck finden. - Zustand: Knoten und Ansichtszustand als JSON oder XML speichern und wiederherstellen (Datei, Zeichenfolge, ADODB.Stream, JDoc) oder nur die Ansicht (
Layout). - Access-Konventionen: Eigenschaftenblatt mit Wertelisten, ein Designerfenster mit Live-Vorschau, Ereignisse im Formularmodul mit
Cancel,KeyCode = 0undResponse, feste Fehlernummern.
Grundkonzepte
Bindung. Jeder Datensatz ist ein Knoten. KeyField identifiziert ihn, ParentField enthält
den Schlüssel seines übergeordneten Knotens. Ein Datensatz ohne vorhandenen übergeordneten
Knoten (Null, 0 oder ein unbekannter Schlüssel) ist ein Stammknoten. Das Steuerelement liest
über DAO in dem Access, in dem es läuft; verknüpfte Tabellen und Abfragen mit Formularbezügen
funktionieren daher wie in jedem Formular.
Schlüssel. Jeder Member und jedes Ereignis identifiziert einen Knoten über seinen Schlüssel, als Variant im Datentyp des Schlüsselfelds; bei mehreren Schlüsselfeldern als Array mit einem Wert je Feld.
Aktionen des Benutzers und Code. Ereignisse melden, was der Benutzer tut. Dieselben Vorgänge
aus dem Code (MoveNode, DeleteNode, NodeText = …) lösen keine Ereignisse aus – so wie Code in
Access auch kein AfterUpdate auslöst –, schreiben aber über dieselbe Transaktion.
AutoSave. Mit AutoSave = True (Standardwert) wird jede Änderung sofort geschrieben;
BeforeUpdate kann sie abbrechen und nimmt damit den ganzen Vorgang zurück. Mit
AutoSave = False oder wenn die Struktur aus einem Recordset oder einer Datei geladen wurde,
ändert sich nur die Anzeige.
Entwurfsansicht. Mit LivePreview = False (Standardwert) zeigt die Entwurfsansicht eine
Beispielstruktur und fragt die Datenquelle nie ab; mit True zeigt sie die echten Knoten.
Administration
Fehlerbehebung
Für Entwickler
Verwandte Themen
- Überblick WklTreeList: die Struktur mit Spalten