Das TreeView-Steuerelement: Verknüpfte Daten, Teil II

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.

TreeView-Steuerelement zur Abbildung der Mitarbeiter-Hierarchie

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

Basis für das zu füllende Formular mit TreeView-Steuerelement

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.

Die reflexiven Daten kommen aus einer einzigen Tabelle.

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

Schreibe einen Kommentar