Das Treeview-Steuerelement – Basics

Autor: André Minhorst, Duisburg

Das Treeview-Steuerelement dient zur hierarchischen Darstellung von Daten. Diese Daten können entweder aus mehreren miteinander verknüpften Tabellen stammen oder einer Tabelle mit rekursiv definierter Beziehung entnommen werden. Der vorliegende Beitrag beschreibt das Treeview-Steuerelement und seine Programmierung. Sie lernen anhand einiger praktischer Beispiele den Umgang mit diesem Steuerelement kennen.

Hinweis

Das im vorliegenden Beitrag vorgestellte ActiveX-Steuerelement ist nicht standardmäßig in Access enthalten. Um das Steuerelement zu verwenden, benötigen Sie entweder die Office Developer-Edition oder eines der Microsoft Entwickler-Tools wie z. B. Visual Studio.

Der bekannteste Anwendungsbereich des Treeview-Steuerelements ist wohl die Ordnerliste im Windows-Explorer. Das Steuerelement gewährleistet hier eine komfortable und übersichtliche Auswahl und Ansicht des gewünschten Ordners.

Es gibt allerdings noch viele weitere Anwendungsmöglichkeiten. Sie können damit beispielsweise ein Unternehmen und dessen Räumlichkeiten abbilden, indem Sie es in unterschiedliche Ebenen aufteilen: z. B. in Standorte, Gebäude, Etagen und Räume. Oder Sie stellen eine rekursiv definierte Beziehung dar, wie im Beitrag “Mitarbeiterverwaltung mit rekursiven Beziehungen” der vorliegenden Ausgabe von “Access im Unternehmen” beschrieben.

Bild 1: Die Tabellen der Beispieldatenbank

Als Beispiel soll eine Firma namens XYZ dienen, die innerhalb Deutschlands an unterschiedlichen Standorten vertreten ist. An jedem Standort gibt es ein oder mehrere Gebäude mit unterschiedlich vielen Räumen.

Das Treeview-Steuerelement soll – ausgehend von den Standorten – zur Auswahl der Gebäude, Räume und Mitarbeiter eingesetzt werden.

Die Beispieldatenbank beinhaltet vier Tabellen zur Eingabe dieser Standorte, Gebäude usw. Bild 1 zeigt das Beziehungsfenster mit dem Datenmodell.

Hinweis

Sie müssen die Tabellenstruktur nicht von Hand nachbilden. Alle im vorliegenden Beitrag vorgestellten Tabellen und Formulare befinden sich auf der Heft-CD der aktuellen Ausgabe von “Access im Unternehmen”.

Um das Treeview-Steuerelement verwenden zu können, müssen Sie es zunächst in das gewünschte Formular einfügen.

Hinweis

Weitere Informationen zum Einfügen von Ac-tiveX-Steuerelementen finden Sie im Beitrag “ActiveX-Steuerelemente einfügen” der vorliegenden Ausgabe.

Nachdem Sie das Steuerelement in das Formular eingefügt und dessen Größe angepasst haben, könnte die Entwurfsansicht wie in Bild 2 aussehen. Anschließend geben Sie dem Steuerelement noch den Namen ocxTreeview.

Bild 2: Das Treeview-Steuerelement in der Entwurfsansicht

Die einzelnen Elemente des Treeview-Steuerelements heißen Nodes (dt.: Knoten). In den folgenden Abschnitten wird gezeigt, wie Sie die einzelnen Nodes mit den Daten der Beispieltabellen füllen können.

Da dies nicht besonders einfach ist, lernen Sie zunächst Schritt für Schritt die wichtigsten Eingaben zum Füllen des Treeview-Objektes kennen und setzen dieses Wissen dann anhand der Beispieldatenbank um.

Aufbau des Treeview-Steuerelements

Das Treeview-Steuerelement bietet die Möglichkeit der strukturierten Darstellung hierarchischer Daten. Es besteht aus einer Reihe von Hauptknoten, die zur Darstellung der Elemente der obersten Ebene der Hierarchie dienen.

Zu jedem der Hauptknoten können unterschiedlich viele untergeordnete Knoten vorhanden sein, die wiederum untergeordnete Knoten besitzen usw.

Das Steuerelement bietet die Möglichkeit, die verschiedenen untergeordneten Ebenen ein- und auszublenden, Einträge zu markieren und verschiedene Aktionen anhand dieser Einträge durchzuführen.

So ist es z. B. denkbar, die Mitarbeiter eines Unternehmens entsprechend der Hierarchie in dem Unternehmen darzustellen und per Doppelklick Detaildaten zu einem Mitarbeiter in einem separaten Formular anzuzeigen.

Prozedur zum Füllen des Baumes

Zum Füllen der Nodes verwenden Sie eine VBA-Prozedur namens BaumFuellen(). Legen Sie die Prozedur im Klassenmodul des Formulars frmTreeview an.

Die Prozedur fügt dem Baum zunächst einen einzigen neuen Knoten ohne weitere Verzweigungen zu.

Deklaration von Bäumen und Knoten

Dazu verwenden Sie die Prozedur aus Quellcode 17. Hier erfolgt zunächst die Deklaration einer Treeview- sowie einer Node-Objektvariablen. Anschließend wird der Treeview-Variablen das Treeview-Steuerelement des Formulars zugewiesen.

Die Nodes-Auflistung

Das Treeview-Objekt enthält eine Auflistung namens Nodes, die sämtliche Node-Elemente beinhaltet. Diese Auflistung wird mit der Methode Clear in der nächsten Anweisung der Prozedur initialisiert.

Schließlich fügt die Prozedur der Auflistung mit der Add-Methode ein erstes Node-Objekt hinzu.

Die Add-Methode verfügt über einige Parameter, die in Tabelle 1 aufgelistet sind. Tabelle 2 beinhaltet eine Liste der Konstanten für die Eigenschaft Relationship.

Private Sub BaumFuellen()
    Dim Baum As MSComctlLib.Treeview
    Dim Knoten As MSComctlLib.Node
    Set Baum = Me.ocxTreeview.Object
    Baum.Nodes.Clear
    Set Knoten = Baum.Nodes.Add(Key:="n0001", _        Text:="Knoten1")
End Sub

Quellcode 1

Eigenschaft

Bedeutung

Key

Eindeutiger Schlüssel zum Verweis auf den Knoten

Text

Angezeigter Text

Relative

Schlüssel oder Index des Knotens, auf den sich der in Relationship angegebene Wert bezieht

Relationship

Art der Beziehung, falls ein Wert für Relative angegeben ist (mögliche Werte in Tabelle 2)

Image

Angezeigtes Bild, wenn Knoten nicht ausgewählt ist

SelectedImage

Angezeigtes Bild, wenn Knoten ausgewählt ist

Tab. 1: Parameter der Add-Methode

Konstante

Beschreibung

tvwFirst

Platzierung als erster Knoten in der Ebene des mit Relative angegebenen Knotens

tvwLast

Platzierung als letzter Knoten in der Ebene des mit Relative angegebenen Knotens

tvwNext

Platzierung hinter dem mit Relative angegebenen Knoten

tvwPrevious

Platzierung vor dem mit Relative angegebenen Knoten

tvwChild

Platzierung in der Ebene unterhalb des mit Relative angegebenen Knotens

Tab. 2: Konstanten für den Parameter Relationship

Hinweis

Der Wert für den Parameter Text der Add-Methode muss als erstes Zeichen einen Buchstaben enthalten, also z. B. n0001 statt 0001.

Damit die Prozedur aus Quellcode 1 auch ausgeführt wird, rufen Sie diese in einer Ereignisprozedur auf, die beim Laden des Formulars ausgelöst wird. Die Ereignisprozedur hat folgendes Aussehen:

Private Sub Form_Load()
    BaumFuellen
End Sub

Hinweis

Weitere Informationen zum Anlegen einer Ereignisprozedur finden Sie im Beitrag “Anlegen von Ereignisprozeduren” in der Ausgabe 1/2002 von “Access im Unternehmen”.

Wenn Sie das Formular nun in der Formularansicht öffnen, erscheint ein Baum mit nur einem einzigen Knoten wie in Bild 3.

Bild 3: Ein Treeview-Steuerelement mit einem einzigen Knoten

Anlegen weiterer Knoten

Wenn Sie nun einen weiteren Knoten in der gleichen Ebene hinzufügen möchten, erledigen Sie dies mit der folgenden Anweisung:

Set Knoten = Baum.Nodes.Add(Key:="n0002", Text:="Knoten2")

Hinzufügen untergeordneter Knoten

Auch das Hinzufügen eines untergeordneten Knotens ist nicht viel komplizierter:

Set Knoten = _    Baum.Nodes.Add(Relative:="n0001", _    Relationship:=tvwChild, _    Text:="Knoten1-1")

Zusätzlich zu der bekannten Anweisung sind hier die beiden Parameter Relative und Relationship erforderlich. Die Parameter geben den übergeordneten Knoten und die Art der Zuordnung an.

Gleichzeitige Anzeige mehrerer Ebenen

Sie haben das Ende des frei verfügbaren Textes erreicht. Möchten Sie ...

TestzugangOder bist Du bereits Abonnent? Dann logge Dich gleich hier ein. Die Zugangsdaten findest Du entweder in der aktuellen Print-Ausgabe auf Seite U2 oder beim Online-Abo in der E-Mail, die Du als Abonnent regelmäßig erhältst:

Schreibe einen Kommentar