Zur Hauptseite ... Zum Onlinearchiv ... Zum Abonnement ... Zum Newsletter ... Zu den Tools ... Zum Impressum ... Zum Login ...

Achtung: Dies ist nicht der vollständige Artikel, sondern nur ein paar Seiten davon. Wenn Sie hier nicht erfahren, was Sie wissen möchten, finden Sie am Ende Informationen darüber, wie Sie den ganzen Artikel lesen können.

Kompletten Artikel lesen?

Einfach für den Newsletter anmelden, dann lesen Sie schon in einer Minute den kompletten Artikel und erhalten die Beispieldatenbanken.

E-Mail:

Gedrucktes Heft

Diesen Beitrag finden Sie in Ausgabe 3/2002.

Diesen Artikel jetzt als PDF plus Beispieldatenbank herunterladen?

Wenn Sie sich jetzt für den Newsletter anmelden, erhalten Sie in Kürze eine E-Mail mit dem Artikel im PDF-Format plus Beispieldatenbank.

Hier anmelden:973519

E-Mail:

Anrede:

Vorname:

Nachname:

Das Treeview-Steuerelement

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.

Abb. 1: Die Tabellen der Beispieldatenbank

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. Abb. 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". (

Einfügen des
Treeview-Steuerelements

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 Abb. 2 aussehen. Anschließend geben Sie dem Steuerelement noch den Namen ocxTreeview.

Abb. 2: Das Treeview-Steuerelement in der Entwurfsansicht

Grundlagen zum
Treeview-Steuerelement

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 Abb. 3.

Abb. 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

Wenn Sie einige Haupt- und untergeordnete Knoten per VBA angelegt haben, zeigt das Treeview-Steuerelement zunächst nur die oberste Ebene an. Wenn Sie einen Knoten direkt zu Beginn erweitert anzeigen möchten, verwenden Sie die Expanded-Eigenschaft des Knotens:

Baum.Nodes("n0001").Expanded = True

Das Treeview-Steuerelement zeigt nun direkt den erweiterten Knoten an (s. Abb. 4). Das Setzen der Eigenschaft Expanded auf den Wert True wirkt sich nur auf die dem Knoten untergeordnete Ebene aus. Knoten in darunter liegenden Ebenen sind ebenso wenig wie übergeordnete Knoten von dieser Eigenschaft betroffen.

Abb. 4: Das Treeview-Steuerelement mit expandiertem Knoten

Sie haben das Ende des frei verfügbaren Teils des Artikels erreicht. Lesen Sie weiter, um zu erfahren, wie Sie den vollständigen Artikel lesen und auf viele hundert weitere Artikel zugreifen können.

Sind Sie Abonnent?Jetzt einloggen ...
 

Kompletten Artikel lesen?

Einfach für den Newsletter anmelden, dann lesen Sie schon in einer Minute den kompletten Artikel und erhalten die Beispieldatenbanken.

E-Mail:

Diesen Artikel jetzt als PDF plus Beispieldatenbank herunterladen?

Wenn Sie sich jetzt für den Newsletter anmelden, erhalten Sie in Kürze eine E-Mail mit dem Artikel im PDF-Format plus Beispieldatenbank.

Hier anmelden:

E-Mail:

Anrede:

Vorname:

Nachname:

Verwandte Beiträge:

TreeView-Elemente im Griff

TreeView-Konfigurator

TreeView nach Bedarf füllen

Hierarchien visualisieren

Softwareprojekte verwalten

© 2003-2015 André Minhorst Alle Rechte vorbehalten.