Lies diesen Artikel und viele weitere mit einem kostenlosen, einwöchigen Testzugang.
Mit dem TreeView-Steuerelement zeigen Sie nicht nur die Daten aus mehreren hierarchisch verknüpften Tabellen an, sondern auch solche aus Tabellen mit reflexiver Verknüpfung. Das gängige Beispiel hierfür sind Vorgesetzte und ihre Mitarbeiter. Dieser Artikel zeigt die notwendigen Tabellen sowie die Funktion, mit der Sie ein TreeView-Steuerelement mit den gewünschten Daten füllen können.
Beispieldatenbank
Die Beispiele dieses Artikels finden Sie in der Datenbank 1310_TreeView.mdb.
Mitarbeiterhierarchie im TreeView-Steuerelement
Ziel dieses Artikels ist es, die Mitarbeiter einer Mitarbeiter-Tabelle hierarchisch in einem TreeView-Steuerelement anzuzeigen. Das Ergebnis sieht beispielsweise wie in Bild 1 aus.
Bild 1: TreeView-Steuerelement zur Abbildung der Mitarbeiter-Hierarchie
Formular erstellen
Wir benötigen wieder ein Formular mit einem TreeView-Steuerelement namens ctlTreeView. Das Formular finden Sie in der Beispieldatenbank unter dem Namen frmTreeViewMitarbeiter. Für das Formular stellen Sie die Eigenschaften Datensatzmarkierer, Navigationsschaltflächen und Bildlaufleisten sowie Trennlinien auf Nein, die Eigenschaft Automatisch zentrieren auf Ja ein. Außerdem legen Sie für die Eigenschaft Rahmenart des TreeView-Steuerelements den Wert Durchgezogen fest (siehe Bild 2).
Bild 2: Basis für das zu füllende Formular mit TreeView-Steuerelement
Die übrigen Eigenschaften des TreeView-Steuerelements definieren wir wie gewohnt über die entsprechenden VBA-Eigenschaften, die in der Ereignisprozedur Form_Load eingestellt werden (siehe Listing 1). Dabei deklarieren wir zunächst eine Objektvariable zum Referenzieren des TreeView-Steuerelements:
Private Sub Form_Load() With objTreeView .Appearance = ccFlat .BorderStyle = ccNone .LineStyle = tvwRootLines .Style = tvwTreelinesPlusMinusText .Font.Name = "Calibri" .Font.Size = 9 End With TreeViewFuellen End Sub
Listing 1: Einstellen der Eigenschaften des TreeView-Steuerelements beim Laden des Formulars und Aufrufen der Funktion zum Füllen.
Dim WithEvents m_Treeview As MSComctlLib.TreeView
Um diese Variable zu füllen und darauf zuzugreifen, legen wir eine Property Get-Prozedur an. Diese prüft, ob die Variable m_TreeView bereits mit einem Verweis gefüllt ist und füllt diesen gegebenenfalls. Der Inhalt von m_Treeview wird dann mit objTreeView zurückgegeben (siehe Listing 2).
Private Property Get objTreeView() As MSComctlLib.TreeView If m_Treeview Is Nothing Then Set m_Treeview = Me!ctlTreeView.Object End If Set objTreeView = m_Treeview End Property
Listing 2: Die Property-Prozedur objTreeView liefert immer einen aktuellen Verweis auf das TreeView-Steuerelement.
Reflexive Tabellen als Datenherkunft
Schauen wir uns nun zunächst die Datenherkunft für das TreeView-Steuerelement an. Diese besteht in unserem Fall aus ein oder zwei Tabellen – je nachdem, ob Sie das Feld zur Verknüpfung eines Mitarbeiter-Datensatzes mit einem anderen Mitarbeiter-Datensatz zur Mitarbeiter-Tabelle oder zu einer weiteren Tabelle hinzugefügt haben.
Im ersten Fall enthält die Tabelle tblMitarbeiter gleich das Feld VorgesetzterID, mit dem der Vorgesetzte des aktuellen Mitarbeiters festgelegt wird (siehe Bild 3). Für die Darstellung der Daten aus dieser Tabelle sind keine weiteren Vorarbeiten nötig.
Ende des frei verfügbaren Teil. Wenn Du mehr lesen möchtest, hole Dir ...
Testzugang
eine Woche kostenlosen Zugriff auf diesen und mehr als 1.000 weitere Artikel
diesen und alle anderen Artikel mit dem Jahresabo