Das Treeview-Steuerelement

Zusammenfassung

Erstellen Sie professionelle Benutzeroberflächen mit dem Treeview-Steuerelement.

Techniken

Formulare, Treeview-Steuerelement, VBA

Voraussetzungen

Access 2002 und höher oder Access 97/2000 und Developer Edition oder Visual Studio 6.0

Beispieldateien

Treeview2002.mdb

André Minhorst, Duisburg

Access kommt mit einer Menge nützlicher Steuerelemente. Einige wichtige Controls sind jedoch den Besitzern von VB6 oder den Developer-Versionen von Office vorbehalten, da für deren Weitergabe eine Lizenz erforderlich ist. Dazu gehört auch das Treeview-Steuerelement. Oder doch nicht Unbemerkt von weiten Teilen der Access-Entwicklergemeinde hat Microsoft die Bibliothek MSCOMCTL.OCX zum festen Bestandteil von Office gemacht. Ein Grund mehr, das Treeview-Steuerelement einmal genauer unter die Lupe zu nehmen …

Entsprechend der Philosophie von Access im Unternehmen, möglichst keine Tools und Anwendungen in Beiträge einzubeziehen, die zusätzliche Kosten erzeugen (Betriebssystem und Access-Software ausgenommen), ist das Treeview-Steuerelement bisher etwas kurz gekommen. Seit Ewigkeiten herrscht nämlich die Legende, dass die Datei MSCOMCTL.OCX und damit das Treeview-Steuerelement nur in speziellen Entwickler-Paketen enthalten ist und nur mit einer entsprechenden Lizenz weitergegeben werden darf. Da diese Bibliothek aber seit Access 2002 fester Bestandteil der Office-Professional-Pakete ist, kann man die enthaltenen Steuerelemente sorglos in einer Anwendung verwenden, wenn auf dem Zielrechner auch die entsprechende Access-Version installiert ist.

Weitere Informationen zu den unterschiedlichen Versionen der Datei MSCOMCTL.OCX erhalten Sie unter http://support.microsoft.com/dllhelp/dlltype=file&l=55&alpha=mscomctl.ocx&S=1&x=8&y=17.

Es gibt zwar einige Alternativen zum Treeview-Steuerelement von Microsoft, unter anderem solche, die entweder ebenfalls als .ocx-Datei kommen oder keine zusätzlichen Dateien erfordern und komplett auf API basieren, aber auch diese sind meist nicht kostenlos.

Bevor Sie das erste Treeview-Steuerelement in ein Formular einfügen, sollten Sie sich zunächst einmal einen überblick über die Möglichkeiten des Treeview-Steuerelements verschaffen.

Das Hauptmerkmal ist natürlich, dass es hierarchisch angeordnete Daten anzeigen kann. Das bedeutet, dass sich damit beispielsweise eine Verzeichnisstruktur wie im Windows-Explorer nachbilden lässt.

Die wichtigste Rolle spielen dabei die so genannten Knoten (Node). Jedes Element im Treeview entspricht einem Knoten.

Abb. 1: Beispiele für das Aussehen eines Treeviews

Abb. 2: Das Treeview-Steuerelement finden Sie in der Liste der ActiveX-Steuerelemente, die Sie mit dem abgebildeten Menüeintrag anzeigen.

Abb. 3: Dieser Dialog ermöglicht das Einfügen des Treeview-Steuerelements.

Damit die Knoten hierarchisch angeordnet werden können, weist man untergeordneten Knoten den jeweiligen Parent-Knoten zu. Das Treeview-Steuerelement liefert viele Möglichkeiten zum Anpassen seines Aussehens. So lassen sich die folgenden Möglichkeiten leicht kombinieren:

  • Text
  • Symbole
  • Plus-/Minus-Zeichen
  • Linien
  • Kontrollkästchen
  • Um einen überblick über die möglichen Stile zu erhalten, öffnen Sie das in der Beispieldatenbank enthaltene Formular frmTreeviewBeispiel (s. Abb. 1). über die im linken Teil des Formulars enthaltenen Symbole können Sie sich unterschiedliche Stile ansehen. Es gibt noch einige Möglichkeiten mehr wie etwa die Verwendung von Kontrollkästchen, diese werden jedoch in diesem Grundlagenbeitrag nicht behandelt.

    Zum Einfügen des Treeview-Steuerelements führen Sie nach dem öffnen des Zielformulars in der Entwurfsansicht den Menübefehl Einfügen/ActiveX-Steuerelement… aus (s. Abb. 2) und wählen im dann erscheinenden Dialog den Eintrag Microsoft Treeview Control, version 6.0 aus (s. Abb. 3).

    Sie sollten generell immer die gleiche Version verwenden, wenn Sie mehrere Steuerelemente der Common Controls-Sammlung verwenden – am besten die jeweils neuesten.

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

    Workplace

    Jahresabonnement TestzugangOder haben Sie bereits Zugangsdaten? Dann loggen Sie sich gleich hier ein:

    Schreibe einen Kommentar

    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

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

    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

    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

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

    Workplace

    Jahresabonnement TestzugangOder haben Sie bereits Zugangsdaten? Dann loggen Sie sich gleich hier ein:

    Schreibe einen Kommentar