{"id":55000063,"date":"2002-06-01T00:00:00","date_gmt":"2021-02-10T20:09:27","guid":{"rendered":"http:\/\/access-im-unternehmen.aix-dev.de\/aiu\/?p=63"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-30T00:00:00","slug":"Das_TreeviewSteuerelement__Basics","status":"publish","type":"post","link":"https:\/\/access-im-unternehmen.de\/Das_TreeviewSteuerelement__Basics\/","title":{"rendered":"Das Treeview-Steuerelement &#8211; Basics"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/vg09.met.vgwort.de\/na\/43562daf69214183b92d179009c1127c\" width=\"1\" height=\"1\" alt=\"\"><\/p>\n<p><b>Autor: Andr&eacute; Minhorst, Duisburg<\/p>\n<p><\/b><\/p>\n<p><b>Das Treeview-Steuerelement dient zur hierarchischen Darstellung von Daten. Diese Daten k&ouml;nnen entweder aus mehreren miteinander verkn&uuml;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.<\/b><\/p>\n<h3>Hinweis<\/h3>\n<p>Das im vorliegenden Beitrag vorgestellte ActiveX-Steuerelement ist nicht standardm&auml;&szlig;ig in Access enthalten. Um das Steuerelement  zu verwenden, ben&ouml;tigen Sie entweder die Office Developer-Edition oder eines der Microsoft Entwickler-Tools wie z. B. Visual Studio. <\/p>\n<p>Der bekannteste Anwendungsbereich des Treeview-Steuerelements ist wohl die Ordnerliste im Windows-Explorer. Das Steuerelement gew&auml;hrleistet hier eine komfortable und &uuml;bersichtliche Auswahl und Ansicht des gew&uuml;nschten Ordners.<\/p>\n<p>Es gibt allerdings noch viele weitere Anwendungsm&ouml;glichkeiten. Sie k&ouml;nnen damit beispielsweise ein Unternehmen und dessen R&auml;umlichkeiten abbilden, indem Sie es in unterschiedliche Ebenen aufteilen: z. B. in Standorte, Geb&auml;ude, Etagen und R&auml;ume. Oder Sie stellen eine rekursiv definierte Beziehung dar, wie im Beitrag &#8222;Mitarbeiterverwaltung mit rekursiven Beziehungen&#8220; der vorliegenden Ausgabe von &#8222;Access im Unternehmen&#8220; beschrieben.<\/p>\n<p><IMG height=\"141\" src=\"..\/fileadmin\/_temp_\/{110B2E0C-D43C-4B94-838D-6A28DA2BFAC9}\/pic001.png\" width=\"500\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 1:  Die Tabellen der Beispieldatenbank<\/span><\/b><\/p>\n<p>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&auml;ude mit unterschiedlich vielen R&auml;umen.<\/p>\n<p>Das Treeview-Steuerelement soll &#8211; ausgehend von den Standorten &#8211; zur Auswahl der Geb&auml;ude, R&auml;ume und Mitarbeiter eingesetzt werden.<\/p>\n<p>Die Beispieldatenbank beinhaltet vier Tabellen zur Eingabe dieser Standorte, Geb&auml;ude usw. Bild 1 zeigt das Beziehungsfenster mit dem Datenmodell.<\/p>\n<h3>Hinweis<\/h3>\n<p>Sie m&uuml;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 &#8222;Access im Unternehmen&#8220;. <\/p>\n<p>Um das Treeview-Steuerelement verwenden zu k&ouml;nnen, m&uuml;ssen Sie es zun&auml;chst in das gew&uuml;nschte Formular einf&uuml;gen. <\/p>\n<h3>Hinweis<\/h3>\n<p>Weitere Informationen zum Einf&uuml;gen von Ac-tiveX-Steuerelementen finden Sie im Beitrag &#8222;ActiveX-Steuerelemente einf&uuml;gen&#8220; der vorliegenden Ausgabe. <\/p>\n<p><IMG height=\"299\" src=\"..\/fileadmin\/_temp_\/{110B2E0C-D43C-4B94-838D-6A28DA2BFAC9}\/pic002.png\" width=\"378\" border=\"0\"><\/p>\n<p><b>Nachdem Sie das Steuerelement  in das Formular eingef&uuml;gt und dessen Gr&ouml;&szlig;e angepasst haben, k&ouml;nnte die Entwurfsansicht wie in Bild 2 aussehen. Anschlie&szlig;end geben Sie dem Steuerelement  noch den Namen ocxTreeview. <\/b><\/p>\n<p><IMG height=\"204\" src=\"..\/fileadmin\/_temp_\/{110B2E0C-D43C-4B94-838D-6A28DA2BFAC9}\/pic003.png\" width=\"390\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 2:  Das Treeview-Steuerelement  in der Entwurfsansicht<\/span><\/b><\/p>\n<p>Die einzelnen Elemente des Treeview-Steuerelements hei&szlig;en Nodes (dt.: Knoten). In den folgenden Abschnitten wird gezeigt, wie Sie die einzelnen Nodes mit den Daten der Beispieltabellen f&uuml;llen k&ouml;nnen.<\/p>\n<p>Da dies nicht besonders einfach ist, lernen Sie zun&auml;chst Schritt f&uuml;r Schritt die wichtigsten Eingaben zum F&uuml;llen des Treeview-Objektes kennen und setzen dieses Wissen dann anhand der Beispieldatenbank um.<\/p>\n<p><b>Aufbau des Treeview-Steuerelements<\/b><\/p>\n<p>Das Treeview-Steuerelement  bietet die M&ouml;glichkeit der strukturierten Darstellung hierarchischer Daten. Es besteht aus einer Reihe von Hauptknoten, die zur Darstellung der Elemente der obersten Ebene der Hierarchie dienen.<\/p>\n<p>Zu jedem der Hauptknoten k&ouml;nnen unterschiedlich viele untergeordnete Knoten vorhanden sein, die wiederum untergeordnete Knoten besitzen usw.<\/p>\n<p>Das Steuerelement bietet die M&ouml;glichkeit, die verschiedenen untergeordneten Ebenen ein- und auszublenden, Eintr&auml;ge zu markieren und verschiedene Aktionen anhand dieser Eintr&auml;ge durchzuf&uuml;hren.<\/p>\n<p>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.<\/p>\n<p><b>Prozedur zum F&uuml;llen des Baumes<\/b><\/p>\n<p>Zum F&uuml;llen der Nodes verwenden Sie eine VBA-Prozedur namens BaumFuellen(). Legen Sie die Prozedur im Klassenmodul des Formulars frmTreeview an.<\/p>\n<p>Die Prozedur f&uuml;gt dem Baum zun&auml;chst einen einzigen neuen Knoten ohne weitere Verzweigungen zu.<\/p>\n<h3>Deklaration von B&auml;umen und Knoten<\/h3>\n<p>Dazu verwenden Sie die Prozedur aus Quellcode 17. Hier erfolgt zun&auml;chst die Deklaration einer Treeview- sowie einer Node-Objektvariablen. Anschlie&szlig;end wird der Treeview-Variablen das Treeview-Steuerelement des Formulars zugewiesen.<\/p>\n<h3>Die Nodes-Auflistung<\/h3>\n<p>Das Treeview-Objekt enth&auml;lt eine Auflistung namens Nodes, die s&auml;mtliche Node-Elemente beinhaltet. Diese Auflistung wird mit der Methode Clear in der n&auml;chsten Anweisung der Prozedur initialisiert.<\/p>\n<p>Schlie&szlig;lich f&uuml;gt die Prozedur der Auflistung mit der Add-Methode ein erstes Node-Objekt hinzu. <\/p>\n<p>Die Add-Methode verf&uuml;gt &uuml;ber einige Parameter, die in Tabelle 1 aufgelistet sind. Tabelle 2 beinhaltet eine Liste der Konstanten f&uuml;r die Eigenschaft Relationship.<\/p>\n<pre>Private Sub BaumFuellen()\r\n    Dim Baum As MSComctlLib.Treeview\r\n    Dim Knoten As MSComctlLib.Node\r\n    Set Baum = Me.ocxTreeview.Object\r\n    Baum.Nodes.Clear\r\n    Set Knoten = Baum.Nodes.Add(Key:=\"n0001\", _        Text:=\"Knoten1\")\r\nEnd Sub<\/pre>\n<p><b>Quellcode 1<\/b><\/p>\n<table border=1>\n<tr>\n<td>\n<p><b>Eigenschaft<\/b><\/p>\n<\/td>\n<td>\n<p><b>Bedeutung<\/b><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p>Key<\/p>\n<\/td>\n<td>\n<p>Eindeutiger Schl&uuml;ssel zum Verweis auf den Knoten<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p>Text<\/p>\n<\/td>\n<td>\n<p>Angezeigter Text<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p>Relative<\/p>\n<\/td>\n<td>\n<p>Schl&uuml;ssel oder Index des Knotens, auf den sich der in Relationship angegebene Wert bezieht <\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p>Relationship<\/p>\n<\/td>\n<td>\n<p>Art der Beziehung, falls ein Wert f&uuml;r Relative angegeben ist (m&ouml;gliche Werte in Tabelle 2)<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p>Image<\/p>\n<\/td>\n<td>\n<p>Angezeigtes Bild, wenn Knoten nicht ausgew&auml;hlt ist<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p>SelectedImage<\/p>\n<\/td>\n<td>\n<p>Angezeigtes Bild, wenn Knoten ausgew&auml;hlt ist<\/p>\n<\/td>\n<\/tr>\n<\/table>\n<p><b>Tab. 1: Parameter der Add-Methode<\/b><\/p>\n<table border=1>\n<tr>\n<td>\n<p><b>Konstante<\/b><\/p>\n<\/td>\n<td>\n<p><b>Beschreibung<\/b><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p>tvwFirst<\/p>\n<\/td>\n<td>\n<p>Platzierung als erster Knoten in der Ebene des mit Relative angegebenen Knotens<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p>tvwLast<\/p>\n<\/td>\n<td>\n<p>Platzierung als letzter Knoten in der Ebene des mit Relative angegebenen Knotens<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p>tvwNext<\/p>\n<\/td>\n<td>\n<p>Platzierung hinter dem mit Relative angegebenen Knoten<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p>tvwPrevious<\/p>\n<\/td>\n<td>\n<p>Platzierung vor dem mit Relative angegebenen Knoten<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p>tvwChild<\/p>\n<\/td>\n<td>\n<p>Platzierung in der Ebene unterhalb des mit Relative angegebenen Knotens<\/p>\n<\/td>\n<\/tr>\n<\/table>\n<p><b>Tab. 2: Konstanten f&uuml;r den Parameter Relationship<\/b><\/p>\n<h3>Hinweis<\/h3>\n<p>Der Wert f&uuml;r den Parameter Text der Add-Methode muss als erstes Zeichen einen Buchstaben enthalten, also z. B. n0001 statt 0001. <\/p>\n<p>Damit die Prozedur aus Quellcode 1 auch ausgef&uuml;hrt wird, rufen Sie diese in einer Ereignisprozedur auf, die beim Laden des Formulars ausgel&ouml;st wird. Die Ereignisprozedur hat folgendes Aussehen:<\/p>\n<pre>Private Sub Form_Load()\r\n    BaumFuellen\r\nEnd Sub<\/pre>\n<h3>Hinweis<\/h3>\n<p>Weitere Informationen zum Anlegen einer Ereignisprozedur finden Sie im Beitrag &#8222;Anlegen von Ereignisprozeduren&#8220; in der Ausgabe 1\/2002 von &#8222;Access im Unternehmen&#8220;. <\/p>\n<p>Wenn Sie das Formular nun in der Formularansicht &ouml;ffnen, erscheint ein Baum mit nur einem einzigen Knoten wie in Bild 3.<\/p>\n<p><IMG height=\"204\" src=\"..\/fileadmin\/_temp_\/{110B2E0C-D43C-4B94-838D-6A28DA2BFAC9}\/pic004.png\" width=\"390\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 3:  Ein Treeview-Steuerelement mit einem einzigen Knoten<\/span><\/b><\/p>\n<h3>Anlegen weiterer Knoten<\/h3>\n<p>Wenn Sie nun einen weiteren Knoten in der gleichen Ebene hinzuf&uuml;gen m&ouml;chten, erledigen Sie dies mit der folgenden Anweisung:<\/p>\n<pre>Set Knoten = Baum.Nodes.Add(Key:=\"n0002\", Text:=\"Knoten2\")<\/pre>\n<h3>Hinzuf&uuml;gen untergeordneter Knoten<\/h3>\n<p>Auch das Hinzuf&uuml;gen eines untergeordneten Knotens ist nicht viel komplizierter:<\/p>\n<pre>Set Knoten = _    Baum.Nodes.Add(Relative:=\"n0001\", _    Relationship:=tvwChild, _    Text:=\"Knoten1-1\")<\/pre>\n<p>Zus&auml;tzlich zu der bekannten Anweisung sind hier die beiden Parameter Relative und Relationship erforderlich. Die Parameter geben den &uuml;bergeordneten Knoten und die Art der Zuordnung an.<\/p>\n<h3>Gleichzeitige Anzeige mehrerer Ebenen<\/h3>\n<p><!--30percent--><\/p>\n<p>Wenn Sie einige Haupt- und untergeordnete Knoten per VBA angelegt haben, zeigt das Treeview-Steuerelement  zun&auml;chst nur die oberste Ebene an. Wenn Sie einen Knoten direkt zu Beginn erweitert anzeigen m&ouml;chten, verwenden Sie die Expanded-Eigenschaft des Knotens:<\/p>\n<pre>Baum.Nodes(\"n0001\").Expanded = True<\/pre>\n<p>Das Treeview-Steuerelement zeigt nun direkt den erweiterten Knoten an (siehe Bild 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 &uuml;bergeordnete Knoten von dieser Eigenschaft betroffen. <\/p>\n<p><IMG height=\"317\" src=\"..\/fileadmin\/_temp_\/{110B2E0C-D43C-4B94-838D-6A28DA2BFAC9}\/pic005.png\" width=\"397\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 4:  Das Treeview-Steuerelement mit expandiertem Knoten<\/span><\/b><\/p>\n<h3>Entfernen von Knoten<\/h3>\n<p>Die Remove-Methode der Nodes-Auflistung dient zum Entfernen eines Knotens. Dabei gibt es unterschiedliche M&ouml;glichkeiten, den zu entfernenden Knoten festzulegen.<\/p>\n<p>Die erste M&ouml;glichkeit verwendet den Schl&uuml;ssel des Knotens, um auf diesen zu verweisen:<\/p>\n<pre>Baum.Nodes.Remove \"n0001\"<\/pre>\n<p>Sie k&ouml;nnen auch den Index des zu entfernenden Knotens verwenden:<\/p>\n<pre>Baum.Nodes.Remove 1<\/pre>\n<p>Der wichtigste Unterschied zwischen diesen beiden Methoden ist, dass beim Entfernen eines Knotens per Index der komplette Index aktualisiert wird, d. h. wenn Sie den Knoten mit dem Index 1 entfernen, enth&auml;lt der n&auml;chste Knoten die 1 als Index usw.<\/p>\n<p>Die Schl&uuml;ssel werden jedoch beibehalten. Eine weitere M&ouml;glichkeit zum Entfernen eines Knotens ist, den gew&uuml;nschten Knoten zu selektieren und anschlie&szlig;end den selektierten Knoten zu entfernen:<\/p>\n<pre>Baum.Nodes.Remove Baum.SelectedItem.Index<\/pre>\n<h3>Hinweis<\/h3>\n<p>Bei allen Aktionen zum Entfernen eines Knotens wird der komplette Zweig gel&ouml;scht, also auch alle untergeordneten Knoten. <\/p>\n<h3>Selektion von Knoten<\/h3>\n<p>Das letzte Beispiel verwendete bereits die Selected-Eigenschaft des Treeview-Steuerelementes, um den selektierten Knoten zu entfernen.<\/p>\n<p>Mit der Selected-Eigenschaft lassen sich nicht nur der Index des ausgew&auml;hlten Knotens ermitteln, sondern auch alle weiteren Eigenschaften eines Knotens.<\/p>\n<h3>Entfernen aller Knoten<\/h3>\n<p>Mit der Methode Clear k&ouml;nnen Sie alle Knoten eines Treeview-Steuerelements l&ouml;schen. Sie haben die Methode bereits weiter oben kennen gelernt &#8211; in Quellcode 1 werden vorsorglich alle Knoten mit der folgenden Anweisung gel&ouml;scht:<\/p>\n<pre>Baum.Nodes.Clear<\/pre>\n<p><b>Festlegen der Eigenschaften eines Knotens<\/b><\/p>\n<p>In der Prozedur BaumFuellen haben Sie den mit der Add-Methode neu erzeugten Knoten jeweils der Objektvariablen Knoten zugewiesen.<\/p>\n<p>Dies ist nicht unbedingt erforderlich. Sie k&ouml;nnen den Knoten auch auf folgende Weise erstellen:<\/p>\n<pre>Baum.Nodes.Add Key:=\"n0002\", Text:=\"Knoten2\"<\/pre>\n<p>Die Zuweisung an die Objektvariable ben&ouml;tigen Sie f&uuml;r den Fall, dass Sie dem Knoten noch weitere Eigenschaften zuweisen m&ouml;chten, die nicht durch die Verwendung der Parameter beim Hinzuf&uuml;gen des Knotens festgelegt wurden.<\/p>\n<p>Daher gibt es zwei Varianten beim Zuweisen von Eigenschaften. Bei der ersten Alternative verwenden Sie die aktuelle Objektvariable des Knotens:<\/p>\n<pre>Set Knoten = _    Baum.Nodes.Add(Key:=\"n0002\", _    Text:=\"Knoten2\")\r\nKnoten.Expanded = True<\/pre>\n<p>Die zweite Variante greift zur Bestimmung des zu bearbeitenden Knotens auf die Nodes-Auflistung zu und verwendet den Key des Knotens als Identifikationsmerkmal:<\/p>\n<pre>Baum.Nodes.Add Key:=\"n0002\", _    Text:=\"Knoten2\"\r\nBaum.Nodes(\"n0002\").Expanded = True<\/pre>\n<p>Genau genommen gibt es noch eine dritte Variante, die allerdings nur eine Abwandlung der zweiten ist. Hier verwenden Sie statt der Key-Eigenschaft die Index-Eigenschaft des Knotens. <\/p>\n<p>Wenn Sie einen neuen Knoten anlegen, wird automatisch ein Wert f&uuml;r die Eigenschaft Index vergeben. Der Index beginnt mit dem Wert 1 und wird f&uuml;r jeden neuen Knoten um den Wert 1 erh&ouml;ht.<\/p>\n<h3>Z&auml;hlen der Knoten<\/h3>\n<p>Wenn Sie die genaue Anzahl der vorhandenen Knoten ermitteln m&ouml;chten, verwenden Sie die Count-Eigenschaft der Nodes-Auflistung:<\/p>\n<pre>MsgBox \"Anzahl der Knoten: \" _    & Baum.Nodes.Count<\/pre>\n<p>Nachdem Sie nun mit den grundlegenden Informationen &uuml;ber das Treeview-Steuerelement  vertraut sind, setzen Sie es nun in der Praxis ein.<\/p>\n<p>Dazu verwenden Sie ein neues Formular, in das Sie wie im vorherigen Beispiel ein Treeview-Steuerelement platzieren &#8211; wenn Sie m&ouml;chten, k&ouml;nnen Sie auch das vorhandene Formular verwenden.<\/p>\n<p>Die Prozedur aus Quellcode 2 f&uuml;llt das Treeview-Steuerelement mit den Daten aus den Tabellen tblStandorte, tblGebaeude, tblRaeume und tblMitarbeiter.<\/p>\n<p>In der Prozedur werden zun&auml;chst die f&uuml;r die Verwendung des Treeview-Steuerelementes ben&ouml;tigten Objektvariablen deklariert und initiiert. Au&szlig;erdem ben&ouml;tigen Sie vier Datensatzgruppen &#8211; je eine f&uuml;r jede der vier Tabellen.<\/p>\n<p>Anschlie&szlig;end durchl&auml;uft die Prozedur jede der vier Datensatzgruppen und nimmt deren Elemente in das Treeview-Steuerelement auf.<\/p>\n<p>F&uuml;r die Standorte ist das noch recht einfach: Hier verwendet die Prozedur einfach das Feld Standort f&uuml;r die Eigenschaft Text und eine abgewandelte Version der Datensatznummer als Schl&uuml;ssel.<\/p>\n<p>Die abgewandelte Version besteht aus dem Buchstaben a sowie der Datensatznummer. Damit alle Schl&uuml;ssel das gleiche Format haben, wird die Datensatznummer auf vier Stellen erweitert. F&uuml;r Datensatznummern mit weniger als vier Stellen bedeutet das ein Auff&uuml;llen der fehlenden Stellen durch die entsprechende Anzahl vorangestellter Nullen (also z. B. 0002 statt 2).<\/p>\n<p>Im n&auml;chsten Schritt sollen nun alle Geb&auml;ude den Standorten zugewiesen werden. Die Eigenschaften Key und Text werden genau wie bei den Standorten zugeteilt &#8211; mit dem Unterschied, dass dem Schl&uuml;ssel statt eines a ein b voran-gestellt wird.<\/p>\n<p>Damit die Geb&auml;ude den richtigen Standorten zugeordnet werden, m&uuml;ssen mit den beiden Parametern Relative und Relationship die entsprechenden Werte &uuml;bergeben werden.<\/p>\n<p>F&uuml;r den Parameter Relationship verwenden Sie sinnvollerweise die Konstante tvwChild, da die Knoten den bestehenden Knoten untergeordnet werden sollen.<\/p>\n<p>Mit dem Parameter Relative m&uuml;ssen Sie den Schl&uuml;ssel des &uuml;bergeordneten Knotens &uuml;bergeben. Da die Tabellen tblStandorte und tblRaeume relational verkn&uuml;pft sind und referentielle Integrit&auml;t festgelegt ist, stellt diese Aufgabe keine allzu gro&szlig;e H&uuml;rde dar. Verwenden Sie einfach den folgenden Ausdruck:<\/p>\n<pre>Private Sub TreeviewFuellen()\r\n    Dim Baum As MSComctlLib.Treeview\r\n    Dim Knoten As MSComctlLib.Node\r\n    Dim cnn As ADODB.Connection\r\n    Dim rstStandorte As New ADODB.Recordset\r\n    Dim rstGebaeude As New ADODB.Recordset\r\n    Dim rstRaeume As New ADODB.Recordset\r\n    Dim rstMitarbeiter As New ADODB.Recordset\r\n    Set cnn = CurrentProject.Connection\r\n    Set Baum = Me.ocxTreeview.Object\r\n    rstStandorte.Open \"tblStandorte\", cnn, adOpenDynamic, adLockReadOnly\r\n    rstGebaeude.Open \"tblGebaeude\", cnn, adOpenDynamic, adLockReadOnly\r\n    rstRaeume.Open \"tblRaeume\", cnn, adOpenDynamic, adLockReadOnly\r\n    rstMitarbeiter.Open \"tblMitarbeiter\", cnn, adOpenDynamic, adLockReadOnly\r\n    Do While Not rstStandorte.EOF\r\n        Baum.Nodes.Add Key:=\"a\" & Format(rstStandorte!StandortID, \"0000\"), _            Text:=rstStandorte!Standort\r\n        rstStandorte.MoveNext\r\n    Loop\r\n    Do While Not rstGebaeude.EOF\r\n        Baum.Nodes.Add Relative:=\"a\" & Format(rstGebaeude!StandortID, \"0000\"), _            Relationship:=tvwChild, Key:=\"b\" & Format(rstGebaeude!GebaeudeID, _\r\n            \"0000\"), Text:=rstGebaeude!Gebaeude\r\n        rstGebaeude.MoveNext\r\n    Loop\r\n    Do While Not rstRaeume.EOF\r\n        Baum.Nodes.Add Relative:=\"b\" & Format(rstRaeume!GebaeudeID, \"0000\"), _        Relationship:=tvwChild, Key:=\"c\" & Format(rstRaeume!RaumID, \"0000\"), _\r\n        Text:=rstRaeume!RaumID\r\n        rstRaeume.MoveNext\r\n    Loop\r\n    Do While Not rstMitarbeiter.EOF\r\n        Baum.Nodes.Add Relative:=\"c\" & Format(rstMitarbeiter!RaumID, \"0000\"), _        Relationship:=tvwChild, Key:=\"d\" & Format(rstMitarbeiter!MitarbeiterID, _        \"0000\"), Text:=rstMitarbeiter!Mitarbeiter\r\n        rstMitarbeiter.MoveNext\r\n    Loop\r\nEnd Sub<\/pre>\n<p><b>Quellcode 2<\/b><\/p>\n<pre>\"a\" & Format(rstGebaeude!StandortID, _    \"0000\")<\/pre>\n<p>Sie ermitteln einfach den Wert des Feldes StandortID, &uuml;ber den die Tabellen tblStandorte und tblGebaeude miteinander verkn&uuml;pft sind. Mit der entsprechenden Formatierung ermitteln Sie daraus leicht den Schl&uuml;ssel des Knotens, der zu dem &uuml;bergeordneten Datensatz geh&ouml;rt. Die Vorgehensweise f&uuml;r die beiden weiteren Tabellen tblRaeume und tblMitarbeiter ist identisch. Hier wird lediglich der Zusatz c bzw. d f&uuml;r die Schl&uuml;ssel verwendet, um doppelte Schl&uuml;ssel zu verhindern.<\/p>\n<p>Sie m&uuml;ssen nun noch eine Prozedur anlegen, die durch die Ereigniseigenschaft Beim Laden des Formulars ausgel&ouml;st wird:<\/p>\n<pre>Private Sub Form_Load()\r\n    TreeviewFuellen\r\nEnd Sub<\/pre>\n<p>Diese Prozedur ruft lediglich die Prozedur zum F&uuml;llen des Treeview-Steuerelementes auf. Wenn Sie das Formular nun in der Formularansicht &ouml;ffnen, erscheint ein Bild wie in Bild 5.<\/p>\n<p><IMG height=\"370\" src=\"..\/fileadmin\/_temp_\/{110B2E0C-D43C-4B94-838D-6A28DA2BFAC9}\/pic006.png\" width=\"422\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 5:  Das gef&uuml;llte Treeview-Steuerelement<\/span><\/b><\/p>\n<p>Das Treeview-Steuerelement bietet einige Anpassungsm&ouml;glichkeiten. Diese k&ouml;nnen Sie einerseits zur Versch&ouml;nerung und andererseits zum Hinzuf&uuml;gen von Funktionalit&auml;ten nutzen.<\/p>\n<p><b>Einstellen der Eigenschaften<\/b><\/p>\n<p>Wenn Sie in der Entwurfsansicht des Formulars doppelt auf das Treeview-Steuerelement  klicken, erscheint sein Eigenschaftsfenster (siehe Bild 6).<\/p>\n<p>Hier k&ouml;nnen Sie unterschiedliche Einstellungen vornehmen, die in Tabelle 3 zusammengefasst sind.<\/p>\n<table border=1>\n<tr>\n<td>\n<p><b>Eigenschaft<\/b><\/p>\n<\/td>\n<td>\n<p><b>Bedeutung<\/b><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p>Style<\/p>\n<\/td>\n<td>\n<p>Legt fest, welche Kombination aus Text, Linien, Bildern und Plus-\/Minuszeichen verwendet wird<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p>MousePointers<\/p>\n<\/td>\n<td>\n<p>Aussehen des Mauszeigers bei &uuml;berfahren des Steuerelements<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p>LineStyle<\/p>\n<\/td>\n<td>\n<p>Art der Linien<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p>LabelEdit<\/p>\n<\/td>\n<td>\n<p>Legt fest, ob die Beschriftung per Mausklick ge&auml;ndert werden kann<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p>ImageList<\/p>\n<\/td>\n<td>\n<p>Name des ImageList-Steuerelements, falls verwendet<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p>BorderStyle<\/p>\n<\/td>\n<td>\n<p>Rahmenstil<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p>Appearance<\/p>\n<\/td>\n<td>\n<p>Flaches oder vertieftes Steuerelement <\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p>OLEDragMode<\/p>\n<\/td>\n<td>\n<p>Legt fest, ob Steuerelement oder Anwendung die Steuerung von Drag-Operationen &uuml;bernimmt.<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p>OLEDropMode<\/p>\n<\/td>\n<td>\n<p>s. o.<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p>Intendation<\/p>\n<\/td>\n<td>\n<p>Entfernung zweier Knotenebenen<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p>PathSeparator<\/p>\n<\/td>\n<td>\n<p>Zeichen f&uuml;r Pfadtrennungen<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p>HideSelection<\/p>\n<\/td>\n<td>\n<p>Soll der ausgew&auml;hlte Knoten markiert bleiben, wenn das Steuerelement den Fokus verliert<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p>Sorted<\/p>\n<\/td>\n<td>\n<p>Sortiert alle zu einer Gruppe geh&ouml;renden Knoten alphabetisch<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p>FullRowsSelected<\/p>\n<\/td>\n<td>\n<p>Gibt an, ob die ganze Zeile oder nur der Text des ausgew&auml;hlten Knotens markiert werden soll <\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p>Enabled<\/p>\n<\/td>\n<td>\n<p>Legt fest, ob das Steuerelement auf Benutzereingaben reagiert<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p>Checkboxes<\/p>\n<\/td>\n<td>\n<p>Legt fest, ob Kontrollk&auml;stchen angezeigt werden<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p>SingleSel<\/p>\n<\/td>\n<td>\n<p>Legt fest, ob nur der aktuell ausgew&auml;hlte Knoten erweitert werden soll<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p>Scroll<\/p>\n<\/td>\n<td>\n<p>Bildlaufleisten<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p>HotTracking<\/p>\n<\/td>\n<td>\n<p>Aktivierung der maussensitiven Markierung<\/p>\n<\/td>\n<\/tr>\n<\/table>\n<p><b>Tab. 3: Eigenschaften des Treeview-Steuerelements<\/b><\/p>\n<p><b>Hinzuf&uuml;gen von Icons<\/b><\/p>\n<p>Wenn Sie den einzelnen Knoten Symbole zuweisen m&ouml;chten, ben&ouml;tigen Sie ein weiteres Ac-tiveX-Steuerelement namens Microsoft Image List Control X.0.<\/p>\n<p>Weisen Sie dieses Steuerelement demjenigen Formular zu, in dem Sie es verwenden m&ouml;chten, und geben Sie ihm den Namen ocxImageList. Nach dem Einf&uuml;gen erscheint lediglich ein Icon wie in Bild 7.<\/p>\n<p><IMG height=\"237\" src=\"..\/fileadmin\/_temp_\/{110B2E0C-D43C-4B94-838D-6A28DA2BFAC9}\/pic007.png\" width=\"386\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 6:  Eigenschaften des Treeview-Steuerelements<\/span><\/b><\/p>\n<p><IMG height=\"315\" src=\"..\/fileadmin\/_temp_\/{110B2E0C-D43C-4B94-838D-6A28DA2BFAC9}\/pic008.png\" width=\"419\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 7:  Das ImageList-Steuerelement<\/span><\/b><\/p>\n<p>Das ImageList-Steuerelement funktioniert wie ein Container. Hier legen Sie die im Formular ben&ouml;tigten Grafikdateien ab.<\/p>\n<p><IMG height=\"317\" src=\"..\/fileadmin\/_temp_\/{110B2E0C-D43C-4B94-838D-6A28DA2BFAC9}\/pic009.png\" width=\"397\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 8:  Eigenschaften des ImageList-Steuerelements<\/span><\/b><\/p>\n<p>Sie brauchen dann f&uuml;r die einzelnen Knoten lediglich den im ImageList-Steuerelement verwendeten Namen des gew&uuml;nschten Bildes anzugeben, um es dem Knoten hinzuzuf&uuml;gen.<\/p>\n<p>Damit das Treeview-Steuerelement f&uuml;r die einzelnen Knoten Symbole anzeigt, sind die in den folgenden Abschnitten beschriebenen Schritte erforderlich.<\/p>\n<h3>F&uuml;llen des ImageList-Steuerelements mit Abbildungen<\/h3>\n<p>Nachdem Sie das Steuerelement eingebunden haben, k&ouml;nnen Sie direkt die gew&uuml;nschten Abbildungen einf&uuml;gen. Dazu klicken Sie in der Entwurfsansicht doppelt auf das Steuerelement.<\/p>\n<p>Es &ouml;ffnet sich das Eigenschaftsfenster des Steuerelements. Hier ist vor allem das Register Abbildungen interessant:<\/p>\n<p>Es dient dem Einlesen der Abbildungen und dem Zuweisen von Index und Schl&uuml;sselbezeichnung (siehe Bild 8).<\/p>\n<p>Vorausgesetzt, Sie haben bereits eine Bilddatei vorbereitet, k&ouml;nnen Sie mit der Schaltfl&auml;che Bild einf&uuml;gen den Dialog Bild ausw&auml;hlen &ouml;ffnen und das gew&uuml;nschte Bild ausw&auml;hlen.<\/p>\n<p>Anschlie&szlig;end m&uuml;ssen Sie dem Bild noch einen Wert f&uuml;r die Eigenschaft Key hinzuf&uuml;gen. Diese Bezeichnung verwenden Sie sp&auml;ter, um dem jeweiligen Knoten das entsprechende Bild zuzuweisen.<\/p>\n<p><IMG height=\"317\" src=\"..\/fileadmin\/_temp_\/{110B2E0C-D43C-4B94-838D-6A28DA2BFAC9}\/pic010.png\" width=\"397\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 9:  Das Treeview-Steuerelement mit neuen Icons<\/span><\/b><\/p>\n<h3>Initialisieren des ImageList-Steuerelements<\/h3>\n<p>Damit die Abbildungen auch im Treeview-Steuerelement  verwendet werden k&ouml;nnen, m&uuml;ssen Sie das ImageList-Steuerelement dort registrieren.<\/p>\n<p>Dazu stellen Sie einfach in der Prozedur aus Quellcode 2 die Eigenschaft ImageList des Treeview-Steuerelements auf das neue ImageList-Steuerelement  ein:<\/p>\n<pre>Baum.ImageList = ocxImageList.Object<\/pre>\n<p>Zus&auml;tzlich soll f&uuml;r jede Ebene ein eigenes Icon verwendet werden. Dazu m&uuml;ssen Sie jeweils einen weiteren Parameter f&uuml;r die vier Add-Anweisungen der Prozedur angeben.<\/p>\n<p>Der Parameter hei&szlig;t Image und soll den im ImageList-Steuerelement angegebenen Wert f&uuml;r die Eigenschaft Key erhalten.<\/p>\n<p>Erg&auml;nzen Sie also die Add-Anweisungen entsprechend dem folgenden Beispiel:<\/p>\n<pre>Baum.Nodes.Add Key:=\"a\" _  & Format(rstStandorte! _  StandortID, \"0000\"), _  Text:=rstStandorte! _  Standort, _  Image:=\"Location\"<\/pre>\n<p>Je nachdem, wie viel M&uuml;he Sie sich bei der Gestaltung der Icons geben, erhalten Sie ein mehr oder weniger gutes Ergebnis. Dieses k&ouml;nnte beispielsweise wie in Bild 9 aussehen.<\/p>\n<p><b>Hinzuf&uuml;gen von Funktionalit&auml;ten<\/b><\/p>\n<p>Das Treeview-Steuerelement bietet die technischen Grundlagen zum Hinzuf&uuml;gen unterschiedlicher Funktionalit&auml;ten.<\/p>\n<p>Eine sinnvolle Erweiterung des jetzigen Standes w&auml;re z. B. die M&ouml;glichkeit, zu den einzelnen Mitarbeitern per Doppelklick ein Formular mit Details zum jeweiligen Mitarbeiter anzuzeigen.<\/p>\n<p>Das Treeview-Steuerelement bietet wie andere  Steuerelemente auch entsprechende Ereigniseigenschaften an. Hier&uuml;ber k&ouml;nnen die gew&uuml;nschten Aktionen initiiert werden.<\/p>\n<p>Das Treeview-Steuerelement ist f&uuml;r die Anzeige hierarchischer Daten pr&auml;destiniert. Die vorgestellten M&ouml;glichkeiten decken aber l&auml;ngst nicht das komplette Spektrum der F&auml;higkeiten ab.<\/p>\n<p>So k&ouml;nnten Sie die im Beitrag vorgestellte Anwendung z. B. dahingehend erweitern, dass Sie Mitarbeiter von einem zum anderen Standort verschieben und die Datenherkunft automatisch angepasst wird. Oder Sie verwenden einfach die Kontrollk&auml;stchen, um aus den vorhandenen Mitarbeitern einige f&uuml;r ein Projekt auszuw&auml;hlen und in einer Liste auszudrucken. <\/p>\n<h3>Downloads zu diesem Beitrag<\/h3>\n<p>Enthaltene Beispieldateien:<\/p>\n<p>Treeview00.mdb<\/p>\n<p>Treeview97.mdb<\/p>\n<p><a href=\"..\/fileadmin\/beispiele\/15619334-0773-4D4D-8EE7-5441CBC3E308\/aiu_63.zip\">Download<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Das Treeview-Steuerelement dient zur hierarchischen Darstellung von Daten. Diese Daten k&ouml;nnen entweder aus mehreren miteinander verkn&uuml;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.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"om_disable_all_campaigns":false,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_uf_show_specific_survey":0,"_uf_disable_surveys":false,"footnotes":""},"categories":[662002,66032002,44000023],"tags":[],"class_list":["post-55000063","post","type-post","status-publish","format-standard","hentry","category-662002","category-66032002","category-Mit_Formularen_arbeiten"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v20.9 (Yoast SEO v27.4) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Das Treeview-Steuerelement - Basics - Access im Unternehmen<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/access-im-unternehmen.de\/Das_TreeviewSteuerelement__Basics\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Das Treeview-Steuerelement - Basics\" \/>\n<meta property=\"og:description\" content=\"Das Treeview-Steuerelement dient zur hierarchischen Darstellung von Daten. Diese Daten k&ouml;nnen entweder aus mehreren miteinander verkn&uuml;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.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/access-im-unternehmen.de\/Das_TreeviewSteuerelement__Basics\/\" \/>\n<meta property=\"og:site_name\" content=\"Access im Unternehmen\" \/>\n<meta property=\"article:published_time\" content=\"2021-02-10T20:09:27+00:00\" \/>\n<meta property=\"og:image\" content=\"http:\/\/vg09.met.vgwort.de\/na\/43562daf69214183b92d179009c1127c\" \/>\n<meta name=\"author\" content=\"Andr\u00e9 Minhorst\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Verfasst von\" \/>\n\t<meta name=\"twitter:data1\" content=\"Andr\u00e9 Minhorst\" \/>\n\t<meta name=\"twitter:label2\" content=\"Gesch\u00e4tzte Lesezeit\" \/>\n\t<meta name=\"twitter:data2\" content=\"16\u00a0Minuten\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Das_TreeviewSteuerelement__Basics\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Das_TreeviewSteuerelement__Basics\\\/\"},\"author\":{\"name\":\"Andr\u00e9 Minhorst\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#\\\/schema\\\/person\\\/13395c4bcd7d7963efe33be9c584d93f\"},\"headline\":\"Das Treeview-Steuerelement &#8211; Basics\",\"datePublished\":\"2021-02-10T20:09:27+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Das_TreeviewSteuerelement__Basics\\\/\"},\"wordCount\":2907,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Das_TreeviewSteuerelement__Basics\\\/#primaryimage\"},\"thumbnailUrl\":\"http:\\\/\\\/vg09.met.vgwort.de\\\/na\\\/43562daf69214183b92d179009c1127c\",\"articleSection\":[\"2002\",\"3\\\/2002\",\"Mit Formularen arbeiten\"],\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/access-im-unternehmen.de\\\/Das_TreeviewSteuerelement__Basics\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Das_TreeviewSteuerelement__Basics\\\/\",\"url\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Das_TreeviewSteuerelement__Basics\\\/\",\"name\":\"Das Treeview-Steuerelement - Basics - Access im Unternehmen\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Das_TreeviewSteuerelement__Basics\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Das_TreeviewSteuerelement__Basics\\\/#primaryimage\"},\"thumbnailUrl\":\"http:\\\/\\\/vg09.met.vgwort.de\\\/na\\\/43562daf69214183b92d179009c1127c\",\"datePublished\":\"2021-02-10T20:09:27+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Das_TreeviewSteuerelement__Basics\\\/#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/access-im-unternehmen.de\\\/Das_TreeviewSteuerelement__Basics\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Das_TreeviewSteuerelement__Basics\\\/#primaryimage\",\"url\":\"http:\\\/\\\/vg09.met.vgwort.de\\\/na\\\/43562daf69214183b92d179009c1127c\",\"contentUrl\":\"http:\\\/\\\/vg09.met.vgwort.de\\\/na\\\/43562daf69214183b92d179009c1127c\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Das_TreeviewSteuerelement__Basics\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/access-im-unternehmen.de\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Das Treeview-Steuerelement &#8211; Basics\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#website\",\"url\":\"https:\\\/\\\/access-im-unternehmen.de\\\/\",\"name\":\"Access im Unternehmen\",\"description\":\"Das Magazin f\u00fcr Datenbankentwickler auf Basis von Microsoft Access\",\"publisher\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/access-im-unternehmen.de\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"de\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#organization\",\"name\":\"Andr\u00e9 Minhorst Verlag\",\"url\":\"https:\\\/\\\/access-im-unternehmen.de\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/access-im-unternehmen.de\\\/wp-content\\\/uploads\\\/2019\\\/09\\\/aiu_wp.png\",\"contentUrl\":\"https:\\\/\\\/access-im-unternehmen.de\\\/wp-content\\\/uploads\\\/2019\\\/09\\\/aiu_wp.png\",\"width\":370,\"height\":111,\"caption\":\"Andr\u00e9 Minhorst Verlag\"},\"image\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#\\\/schema\\\/logo\\\/image\\\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#\\\/schema\\\/person\\\/13395c4bcd7d7963efe33be9c584d93f\",\"name\":\"Andr\u00e9 Minhorst\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g\",\"caption\":\"Andr\u00e9 Minhorst\"}}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Das Treeview-Steuerelement - Basics - Access im Unternehmen","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/access-im-unternehmen.de\/Das_TreeviewSteuerelement__Basics\/","og_locale":"de_DE","og_type":"article","og_title":"Das Treeview-Steuerelement - Basics","og_description":"Das Treeview-Steuerelement dient zur hierarchischen Darstellung von Daten. Diese Daten k&ouml;nnen entweder aus mehreren miteinander verkn&uuml;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.","og_url":"https:\/\/access-im-unternehmen.de\/Das_TreeviewSteuerelement__Basics\/","og_site_name":"Access im Unternehmen","article_published_time":"2021-02-10T20:09:27+00:00","og_image":[{"url":"http:\/\/vg09.met.vgwort.de\/na\/43562daf69214183b92d179009c1127c","type":"","width":"","height":""}],"author":"Andr\u00e9 Minhorst","twitter_card":"summary_large_image","twitter_misc":{"Verfasst von":"Andr\u00e9 Minhorst","Gesch\u00e4tzte Lesezeit":"16\u00a0Minuten"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/access-im-unternehmen.de\/Das_TreeviewSteuerelement__Basics\/#article","isPartOf":{"@id":"https:\/\/access-im-unternehmen.de\/Das_TreeviewSteuerelement__Basics\/"},"author":{"name":"Andr\u00e9 Minhorst","@id":"https:\/\/access-im-unternehmen.de\/#\/schema\/person\/13395c4bcd7d7963efe33be9c584d93f"},"headline":"Das Treeview-Steuerelement &#8211; Basics","datePublished":"2021-02-10T20:09:27+00:00","mainEntityOfPage":{"@id":"https:\/\/access-im-unternehmen.de\/Das_TreeviewSteuerelement__Basics\/"},"wordCount":2907,"commentCount":0,"publisher":{"@id":"https:\/\/access-im-unternehmen.de\/#organization"},"image":{"@id":"https:\/\/access-im-unternehmen.de\/Das_TreeviewSteuerelement__Basics\/#primaryimage"},"thumbnailUrl":"http:\/\/vg09.met.vgwort.de\/na\/43562daf69214183b92d179009c1127c","articleSection":["2002","3\/2002","Mit Formularen arbeiten"],"inLanguage":"de","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/access-im-unternehmen.de\/Das_TreeviewSteuerelement__Basics\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/access-im-unternehmen.de\/Das_TreeviewSteuerelement__Basics\/","url":"https:\/\/access-im-unternehmen.de\/Das_TreeviewSteuerelement__Basics\/","name":"Das Treeview-Steuerelement - Basics - Access im Unternehmen","isPartOf":{"@id":"https:\/\/access-im-unternehmen.de\/#website"},"primaryImageOfPage":{"@id":"https:\/\/access-im-unternehmen.de\/Das_TreeviewSteuerelement__Basics\/#primaryimage"},"image":{"@id":"https:\/\/access-im-unternehmen.de\/Das_TreeviewSteuerelement__Basics\/#primaryimage"},"thumbnailUrl":"http:\/\/vg09.met.vgwort.de\/na\/43562daf69214183b92d179009c1127c","datePublished":"2021-02-10T20:09:27+00:00","breadcrumb":{"@id":"https:\/\/access-im-unternehmen.de\/Das_TreeviewSteuerelement__Basics\/#breadcrumb"},"inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":["https:\/\/access-im-unternehmen.de\/Das_TreeviewSteuerelement__Basics\/"]}]},{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/access-im-unternehmen.de\/Das_TreeviewSteuerelement__Basics\/#primaryimage","url":"http:\/\/vg09.met.vgwort.de\/na\/43562daf69214183b92d179009c1127c","contentUrl":"http:\/\/vg09.met.vgwort.de\/na\/43562daf69214183b92d179009c1127c"},{"@type":"BreadcrumbList","@id":"https:\/\/access-im-unternehmen.de\/Das_TreeviewSteuerelement__Basics\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/access-im-unternehmen.de\/"},{"@type":"ListItem","position":2,"name":"Das Treeview-Steuerelement &#8211; Basics"}]},{"@type":"WebSite","@id":"https:\/\/access-im-unternehmen.de\/#website","url":"https:\/\/access-im-unternehmen.de\/","name":"Access im Unternehmen","description":"Das Magazin f\u00fcr Datenbankentwickler auf Basis von Microsoft Access","publisher":{"@id":"https:\/\/access-im-unternehmen.de\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/access-im-unternehmen.de\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"de"},{"@type":"Organization","@id":"https:\/\/access-im-unternehmen.de\/#organization","name":"Andr\u00e9 Minhorst Verlag","url":"https:\/\/access-im-unternehmen.de\/","logo":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/access-im-unternehmen.de\/#\/schema\/logo\/image\/","url":"https:\/\/access-im-unternehmen.de\/wp-content\/uploads\/2019\/09\/aiu_wp.png","contentUrl":"https:\/\/access-im-unternehmen.de\/wp-content\/uploads\/2019\/09\/aiu_wp.png","width":370,"height":111,"caption":"Andr\u00e9 Minhorst Verlag"},"image":{"@id":"https:\/\/access-im-unternehmen.de\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/access-im-unternehmen.de\/#\/schema\/person\/13395c4bcd7d7963efe33be9c584d93f","name":"Andr\u00e9 Minhorst","image":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/secure.gravatar.com\/avatar\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g","caption":"Andr\u00e9 Minhorst"}}]}},"_links":{"self":[{"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/posts\/55000063","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/comments?post=55000063"}],"version-history":[{"count":0,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/posts\/55000063\/revisions"}],"wp:attachment":[{"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/media?parent=55000063"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/categories?post=55000063"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/tags?post=55000063"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}