{"id":55000333,"date":"2006-04-01T00:00:00","date_gmt":"2020-05-06T15:18:17","guid":{"rendered":"http:\/\/access-im-unternehmen.aix-dev.de\/aiu\/?p=333"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-30T00:00:00","slug":"Das_ListViewSteuerelement","status":"publish","type":"post","link":"https:\/\/access-im-unternehmen.de\/Das_ListViewSteuerelement\/","title":{"rendered":"Das ListView-Steuerelement"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/vg07.met.vgwort.de\/na\/7ef70bdae4af4c5e835c48d4333ee202\" width=\"1\" height=\"1\" alt=\"\"><\/p>\n<h3>Zusammenfassung<\/h3>\n<p>Lernen Sie das ListView-Steuerelement kennen, das einige Vorteile gegen&uuml;ber dem Listenfeld hat, aber auch etwas mehr Programmieraufwand erfordert.<\/p>\n<h3>Techniken<\/h3>\n<p>ListView-Steuerelement, VBA<\/p>\n<h3>Voraussetzungen<\/h3>\n<p>Access 2000 und h&ouml;her<\/p>\n<h3>Beispieldateien<\/h3>\n<p><a href=''fileadmin\/files\/acc0206kh01.zip''>ListView.mdb, MSCOMCTL.msi<\/a><\/p>\n<h3><\/h3>\n<p><b>Andr&eacute; Minhorst, Duisburg<\/b><\/p>\n<p><b>Wer mit Access arbeitet, vermisst manchmal sicher etwas anspruchsvollere Steuerelemente. Beispiel Listenfeld: Dort w&auml;re es doch sch&ouml;n, wenn es eine einfache M&ouml;glichkeit zum Sortieren nach den enthaltenen Spalten anbieten w&uuml;rde oder wenn man auch Icons darin unterbringen k&ouml;nnte. Ab der Version 2002 kommt Office standardm&auml;&szlig;ig mit einigen zus&auml;tzlichen Steuerelementen, die Abhilfe schaffen. Ein gutes Beispiel ist das ListView-Steuerelement, das einiges kann, was das Listenfeld nicht bietet.<\/b><\/p>\n<p>Die eingebauten Steuerelemente von Access haben den gro&szlig;en Vorteil, dass sie gut auf ihr Einsatzgebiet abgestimmt sind.<\/p>\n<p>So kann man Textfelder, Kombinationsfelder, Listenfelder und andere etwa direkt an Tabellen oder Tabellenfelder binden.<\/p>\n<p>Steuerelemente wie das ListView-Steuerelement sind nicht speziell auf den Einsatz mit Access ausgelegt, aber dennoch f&uuml;r diesen Einsatz mit Access gut geeignet.<\/p>\n<p>Wenn auch beispielsweise das ListView-Steuerelement die M&ouml;glichkeit einer direkten Bindung an eine Tabelle oder Abfrage vermissen l&auml;sst, bietet es doch so viel mehr Features als das Listenfeld von Access, dass der Aufwand der programmatischen Zuweisung der anzuzeigenden Daten vertretbar erscheint.<\/p>\n<p>Im Vergleich zum Listenfeld k&ouml;nnen Sie mit dem ListView zum Beispiel Folgendes erledigen:<\/p>\n<li>per Mausklick nach einzelnen Spalten sortieren,<\/li>\n<li>Icons anzeigen,<\/li>\n<li>Bilder anzeigen,<\/li>\n<li>umfangreiche Anpassungen am Aussehen vornehmen,<\/li>\n<li>die Spaltenbreite manuell zur Laufzeit ver&auml;ndern,<\/li>\n<li>Drag and Drop verwenden<\/li>\n<li>und (zumindest) den Inhalt der ersten Spalte manuell &auml;ndern.<\/li>\n<p>In diesem Beitrag erwartet Sie eine Einf&uuml;hrung in das ListView-Steuerelement. In weiteren Beitr&auml;gen erfahren Sie, wie man dieses Steuerelement mit Daten aus einer Tabelle oder Abfrage f&uuml;ttert (ListView-Steuerelement mit Daten f&uuml;llen, Shortlink 336), Drag and Drop realisiert (Drag and Drop mit dem ListView-Steuerelement, Shortlink 334) und wie man damit Icons oder Bilder anzeigen kann (Images und Icons im ListView-Steuerelement, Shortlink 335).<\/p>\n<p>Das ListView-Steuerelement f&uuml;gen Sie standardm&auml;&szlig;ig mit dem Dialog ActiveX-Steuerelement einf&uuml;gen hinzu, den Sie &uuml;ber den Men&uuml;eintrag Einf&uuml;gen\/ActiveX-Steuerelement&#8230; &ouml;ffnen.<\/p>\n<p>Wenn Sie &ouml;fter mit diesem Steuerelement arbeiten m&ouml;chten, f&uuml;gen Sie einfach einen entsprechenden Eintrag zur Toolbox hinzu (siehe Bild 1).<\/p>\n<p>Nach dem Hinzuf&uuml;gen des Steuerelements geben Sie ihm direkt einen aussagekr&auml;ftigen Namen wie etwa lvwPersonen.<\/p>\n<p><IMG height=\"281\" src=\"..\/fileadmin\/_temp_\/{34CE6B98-66CE-403E-9F35-FD2012AE26D0}\/pic001.png\" width=\"338\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 1:  Einf&uuml;gen eines ListView-Steuerelements<\/span><\/b><\/p>\n<p>Wie bei anderen ActiveX-Steuerelementen stellt der VBA-Editor die Eigenschaften und Methoden nicht automatisch per IntelliSense zur Verf&uuml;gung. Sie m&uuml;ssen zun&auml;chst eine passende Objektvariable deklarieren. Damit diese im kompletten Klassenmodul des Formulars zur Verf&uuml;gung steht, erfolgt die Deklaration au&szlig;erhalb der Routinen:<\/p>\n<pre>Dim objListView As ListView<\/pre>\n<p>F&uuml;llen l&auml;sst sich das ListView-Steuerelement nur via VBA-Code. Zum F&uuml;llen des Steuerelements beim &ouml;ffnen des Formulars eignet sich am besten das Beim Laden-Ereignis. Hier legen Sie zun&auml;chst einen Verweis auf das Steuerelement an und weisen diesen der Objektvariablen zu. Anschlie&szlig;end k&ouml;nnen Sie direkt das erste Element einf&uuml;gen (s. Quellcode 1).<\/p>\n<h3>Hinweis<\/h3>\n<p>Wenn Sie nicht auf IntelliSense angewiesen sind, k&ouml;nnen Sie von vornherein direkt auf das Steuerelement zugreifen, anstatt eine Objektvariable mit einem Verweis auf dieses zu erstellen. Sie haben dann nicht das Problem, dass Sie entweder bei jeder Routine, die das ListView-Steuerelement verwendet, einen neuen Verweis darauf erstellen m&uuml;ssen, oder laufen &#8211; wenn Sie nur einmal beim &ouml;ffnen des Formulars die Zuweisung zu einer Objektvariablen vornehmen &#8211;  keine Gefahr, dass der Verweis einmal verloren geht. Mit Ausnahme des ersten Beispiels verweisen daher alle weiteren Listings direkt auf das Steuerelement und verwenden keine zus&auml;tzliche Objektvariable. <\/p>\n<p><b>Quellcode 1: Erzeugen eines Verweises auf das ListView-Steuerelement und Hinzuf&uuml;gen eines ersten Elements<\/b><\/p>\n<pre>Private Sub Form_Open(Cancel As Integer)\r\n    Dim objListItem As ListItem\r\n    Set objListView = Me.lvwPersonen.Object\r\n    With objListView\r\n        Set objListItem = _            .ListItems.Add(, \"a1\", \"Andr&eacute;\")\r\n    End With\r\nEnd Sub<\/pre>\n<p>Die Elemente eines ListViews werden in der ListItems-Auflistung des Steuerelements erfasst. Mit der Add-Methode dieser Auflistung f&uuml;gen Sie ein neues Element hinzu. Als Parameter dienen dabei ein Schl&uuml;ssel, der mit einem Buchstaben beginnen und eindeutig sein muss, sowie der anzuzeigende Inhalt des Elements. In der Objektvariablen objListItem speichern Sie einen Verweis auf das neue Listenelement &#8211; den Grund erfahren Sie weiter unten.<\/p>\n<p>Der erste Blick auf das Steuerelement samt erstem Eintrag in der Formularansicht ern&uuml;chtert: Besonders attraktiv ist das nicht geworden (siehe Bild 2).<\/p>\n<p><IMG height=\"233\" src=\"..\/fileadmin\/_temp_\/{34CE6B98-66CE-403E-9F35-FD2012AE26D0}\/pic002.png\" width=\"327\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 2:  Das ListView-Steuerelement im Mauerbl&uuml;mchen-Look<\/span><\/b><\/p>\n<p><IMG height=\"405\" src=\"..\/fileadmin\/_temp_\/{34CE6B98-66CE-403E-9F35-FD2012AE26D0}\/pic003.png\" width=\"419\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 3:  Eigenschaftsfenster des ListView-Steuerelements<\/span><\/b><\/p>\n<p>Nat&uuml;rlich gibt es ausreichend M&ouml;glichkeiten, das Aussehen anzupassen &#8211; dazu jedoch sp&auml;ter mehr. Erstmal f&uuml;gen Sie dem bestehenden Element weitere Zeilen hinzu. <\/p>\n<p>Und hier kommt die Objektvariable objListItem mit dem Verweis auf das erste Element zum Einsatz: Das ListView-Steuerelement ist n&auml;mlich nicht wie beispielsweise das Listenfeld aufgebaut, bei dem jeder Eintrag aus mehreren gleich zu behandelnden Spalten besteht.<\/p>\n<p>Beim ListView-Steuerelement entspricht eine Zeile einem ListItem-Objekt, das selbst nur den Wert f&uuml;r die erste Spalte speichert.<\/p>\n<p><!--30percent--><\/p>\n<p>Der Inhalt weiterer Spalten wird in Elementen der ListSubItems-Auflistung des Listenelements verwaltet.<\/p>\n<p>Daher ben&ouml;tigen Sie auch einen Verweis auf das Listenelement, um weitere Spalten hinzuzuf&uuml;gen. Die folgende Anweisung f&uuml;gt eine zweite Spalte hinzu (in einer Zeile):<\/p>\n<pre>objListItem.ListSubItems.Add , , \"Minhorst\"<\/pre>\n<p>Im Vergleich zu den &#8222;Hauptlistenelementen&#8220; ben&ouml;tigt ein ListSubItem nur die Angabe des enthaltenen Textes. Die anderen Parameter kann man zun&auml;chst au&szlig;er Acht lassen.<\/p>\n<p>M&ouml;chte man sich nun den neuen Eintrag in der Formularansicht ansehen, wird man entt&auml;uscht: Das ListView-Steuerelement zeigt nach wie vor nur eine einzige Spalte an.<\/p>\n<p>Nun wird es Zeit, sich um die Eigenschaften des ListView-Steuerelements zu k&uuml;mmern.<\/p>\n<p>ActiveX-Steuerelemente haben meist ein zus&auml;tzliches Eigenschaftsfenster, das sich &uuml;ber das Kontextmen&uuml; &ouml;ffnen l&auml;sst. Beim ListView-Steuerelement sieht das wie in Bild 3 aus. <\/p>\n<p>Hier &auml;ndern Sie den Wert der Eigenschaft View auf 0-lvwReport, damit die Daten wie etwa in der Dateiliste des Windows Explorers angezeigt werden. In der Formularansicht zeigt das ListView-Steuerelement nun gar keine Daten mehr an.<\/p>\n<p>Der Grund ist, dass auf der Registerseite Spaltenk&ouml;pfe noch keine Spalten angelegt sind (siehe Bild 4).<\/p>\n<p><IMG height=\"405\" src=\"..\/fileadmin\/_temp_\/{34CE6B98-66CE-403E-9F35-FD2012AE26D0}\/pic004.png\" width=\"419\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 4:  Ein frisch eingef&uuml;gtes ListView-Steuerelement zeigt nur die Basisspalte an. Weitere Spalten muss man erst sichtbar machen.<\/span><\/b><\/p>\n<p><IMG height=\"222\" src=\"..\/fileadmin\/_temp_\/{34CE6B98-66CE-403E-9F35-FD2012AE26D0}\/pic005.png\" width=\"310\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 5:  ListView-Steuerelement mit zwei Spalten inklusive Spaltenk&ouml;pfen<\/span><\/b><\/p>\n<p><IMG height=\"189\" src=\"..\/fileadmin\/_temp_\/{34CE6B98-66CE-403E-9F35-FD2012AE26D0}\/pic006.png\" width=\"500\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 6:  Einf&uuml;gen einer Ereignisprozedur f&uuml;r ein Steuerelement<\/span><\/b><\/p>\n<p>Klicken Sie also auf die Schaltfl&auml;che Spalte einf&uuml;gen. Von den nun aktivierten Textfeldern brauchen Sie nur zwei: Mit Text legen Sie die Spalten&uuml;berschrift fest und mit Width stellen Sie die gew&uuml;nschte Breite der zweiten Spalte ein. Legen Sie zwei Spalten f&uuml;r die Anzeige des Vornamens und des Nachnamens an und konfigurieren Sie die Breite entsprechend den vorhandenen Daten.<\/p>\n<p>Nun sieht das ListView-Steuerelement schon besser aus (siehe Bild 5).<\/p>\n<p>Ein sch&ouml;ner Vorteil von ListViews gegen&uuml;ber dem Access-Listenfeld ist die M&ouml;glichkeit, per Klick auf den Spaltenkopf nach dem Inhalt der Spalte zu sortieren.<\/p>\n<p>Um dies zu demonstrieren, erweitern Sie zun&auml;chst den Code so, dass er dem ListView einige weitere Eintr&auml;ge hinzuf&uuml;gt (s. Quellcode 2).<\/p>\n<h3>Hinweis<\/h3>\n<p>Im Beitrag ListView-Steuerelement mit Daten f&uuml;llen (Shortlink 336) erfahren Sie, wie Sie das ListView-Steuerelement mit Daten aus Tabellen der Datenbank f&uuml;llen. <\/p>\n<p>Das Sortieren nach dem Inhalt einer bestimmten Spalte soll durch einen Klick auf den entsprechenden Spaltenkopf ausgel&ouml;st werden.<\/p>\n<p>Das ListView-Steuerelement stellt dazu die Ereigniseigenschaft ColumnClick zur Verf&uuml;gung. Sie legen ein solches Ereignis an, indem Sie im Klassenmodul des Formulars mit dem ListView-Steuerelement zuerst das linke Kombinationsfeld auf den Namen des Steuerelements und dann das rechte Kombinationsfeld auf das gew&uuml;nschte Ereignis einstellen (siehe Bild 6). Access legt dann automatisch den Prozedurrumpf an.<\/p>\n<p>Bei einem Klick auf den Spaltenkopf sollen die enthaltenen Eintr&auml;ge immer aufsteigend sortiert werden. Einzige Ausnahme: Wenn die Spalte unmittelbar vorher schon aufsteigend sortiert wurde, soll nun eine absteigende Sortierung vorgenommen werden.<\/p>\n<p>Die dazu notwendigen Anweisungen sehen wie in Quellcode 3 aus. Die Routine hat zwei statische Variablen &#8211; das sind als Static deklarierte Variablen, deren G&uuml;ltigkeit auch nach Verlassen der Prozedur erhalten bleibt -, die sich sowohl die zuletzt sortierte Spalte als auch die verwendete Sortierreihenfolge merken.<\/p>\n<p><b>Quellcode 2: ListView mit mehreren Eintr&auml;gen f&uuml;llen<\/b><\/p>\n<pre>Private Sub Form_Open(Cancel As Integer)\r\n    Dim objListItem As ListItem\r\n    \r\n    Set objListItem = lvwPersonen.ListItems.Add(, \"a0\", \"Andr&eacute;\")\r\n    objListItem.ListSubItems.Add , , \"Minhorst\"\r\n    \r\n    Set objListItem = lvwPersonen.ListItems.Add(, \"a1\", \"Sascha\")\r\n    objListItem.ListSubItems.Add , , \"Trowitzsch\"\r\n    \r\n    Set objListItem = lvwPersonen.ListItems.Add(, \"a2\", \"Michael\")\r\n    objListItem.ListSubItems.Add , , \"Forster\"\r\n    \r\n    Set objListItem = lvwPersonen.ListItems.Add(, \"a3\", \"Frieda\")\r\n    objListItem.ListSubItems.Add , , \"Flechler\"\r\n    \r\n    Set objListItem = Nothing\r\n    \r\nEnd Sub<\/pre>\n<p><b>Quellcode 3: Sortieren der Spalten im ListView-Steuerelement<\/b><\/p>\n<pre>Private Sub lvwPersonen_ColumnClick(ByVal ColumnHeader As Object)\r\n    Static intAktuelleSortierspalte As Integer\r\n    Static bolAufsteigend As Boolean\r\n    lvwPersonen.SortKey = ColumnHeader.Index - 1\r\n    If intAktuelleSortierspalte = ColumnHeader.Index - 1 Then\r\n        bolAufsteigend = Not bolAufsteigend\r\n        lvwPersonen.SortOrder = Abs(bolAufsteigend)\r\n    Else\r\n        lvwPersonen.SortOrder = lvwAscending\r\n    End If\r\n    lvwPersonen.Sorted = True\r\n    intAktuelleSortierspalte = ColumnHeader.Index - 1\r\nEnd Sub<\/pre>\n<p>Das ListView-Steuerelement &uuml;bergibt der Ereignisprozedur beim Klicken auf einen der Spaltenk&ouml;pfe ein ColumnHeader-Objekt, das unter anderem die Eigenschaft Index enth&auml;lt. Diese gibt an, auf welche Spalte der Benutzer geklickt hat.<\/p>\n<p>Dies ist die erste Information, die Sie zum Sortieren nach einer Spalte ben&ouml;tigen. Die Routine weist den Spaltenindex der Eigenschaft SortKey des ListView-Steuerelements zu:<\/p>\n<pre>objListView.SortKey = ColumnHeader.Index - 1<\/pre>\n<p>Im n&auml;chsten Schritt pr&uuml;ft die Routine, ob die aktuell zu sortierende Spalte auch die zuletzt sortierte Spalte ist. Falls ja, wird die Sortierreihenfolge umgedreht, in der statischen Variablen bolAufsteigend gespeichert und die Spalte nach der neuen Sortierreihenfolge sortiert.<\/p>\n<p>Ist diese Spalte nicht als letzte Spalte sortiert worden, erfolgt auf jeden Fall eine aufsteigende Sortierung.<\/p>\n<p>Mit der folgenden Anweisung aktiviert die Routine schlie&szlig;lich die Sortierung:<\/p>\n<pre>objListView.Sorted = True<\/pre>\n<p>Damit die Routine bei der n&auml;chsten Sortierung noch wei&szlig;, welche Spalte in diesem Durchgang sortiert wurde, erfolgt eine entsprechende Zuweisung an die statische Variable intAktuelleSortierspalte.<\/p>\n<p><b>Quellcode 4: Mehrere markierte Eintr&auml;ge auslesen<\/b><\/p>\n<pre>Private Sub cmdMarkierteEintraegeAnzeigen_Click()\r\n    Dim objListItem As ListItem\r\n    For Each objListItem In lvwPersonen.ListItems\r\n        If objListItem.Selected Then\r\n            Debug.Print objListItem.Key, objListItem.Text, _                objListItem.ListSubItems(1).Text\r\n        End If\r\n    Next\r\nEnd Sub<\/pre>\n<p>Eine Liste wird nat&uuml;rlich nicht nur zum Ansehen und Sortieren von Daten verwendet, sondern auch zum Ausw&auml;hlen von Daten.<\/p>\n<h3>Markieren der kompletten Zeile<\/h3>\n<p>Standardm&auml;&szlig;ig l&auml;sst sich nur der erste Eintrag des ListViews markieren. Ein Klick auf die anderen Spalten wirkt sich nicht auf die Markierung aus.<\/p>\n<p>Wenn die komplette Zeile markiert werden und auch ein Klick auf andere als die erste Spalte eine Markierung bewirken soll, aktivieren Sie die Eigenschaft FullRowSelect.<\/p>\n<h3>Aktuell markierten Eintrag ermitteln<\/h3>\n<p>Den Schl&uuml;ssel des aktuell markierten Eintrags erhalten Sie &uuml;ber folgenden Ausdruck:<\/p>\n<pre>&lt;Verweis auf ListView&gt;.SelectedItem.Key<\/pre>\n<h3>Mehrere Eintr&auml;ge gleichzeitig markieren<\/h3>\n<p>Wenn Sie das gleichzeitige Markieren mehrerer Eintr&auml;ge zulassen m&ouml;chten, stellen Sie die Eigenschaft MultiSelect auf True ein (VBA) oder aktivieren den entsprechenden Eintrag im Eigenschaftsfenster.<\/p>\n<p>Das Steuerelement verf&uuml;gt dann &uuml;ber die gleiche Mimik wie etwa der Windows-Explorer: Bei gedr&uuml;ckter Umschalttaste k&ouml;nnen Sie mit zwei Mausklicks auf den ersten und den letzten Eintrag eine Gruppe zusammenh&auml;ngender Eintr&auml;ge markieren. Einzelne Eintr&auml;ge lassen sich bei gedr&uuml;ckter Strg-Taste aus- oder abw&auml;hlen.<\/p>\n<h3>Auslesen mehrerer markierter Eintr&auml;ge<\/h3>\n<p>Zum Auslesen der markierten Eintr&auml;ge in einem ListView mit aktivierter Mehrfachauswahl durchl&auml;uft man alle Elemente und pr&uuml;ft jeweils anhand einer Eigenschaft, ob das Element markiert ist. Im Code sieht das wie in Quellcode 4 aus.<\/p>\n<h3>Spalten eines bestimmten Eintrags lesen<\/h3>\n<p>In vielen F&auml;llen ist nicht der Schl&uuml;ssel eines ListView-Elements interessant, sondern einer der Spaltenwerte. Auf diese greifen Sie &uuml;ber die Text-Eigenschaft zu. Allerdings gibt es Unterschiede beim Zugriff auf die erste und die folgenden Spalten.<\/p>\n<p>Die erste Spalte enth&auml;lt das Standardelement, das bereits beim Anlegen des Eintrags mit Text gef&uuml;llt wird. Sie l&auml;sst sich direkt &uuml;ber die Eigenschaft Text des Eintrags auslesen. F&uuml;r alle weiteren Spalten m&uuml;ssen Sie die Auflistung ListSubItems mit dem entsprechenden Index bem&uuml;hen, wobei der Index bei 1 beginnt. Wenn Sie in der Routine aus Quellcode 4 nicht nur den Key, sondern auch den Inhalt der beiden Spalten ausgeben m&ouml;chten, ersetzen Sie die Anweisung in der For Each-Schleife durch die folgende (in einer Zeile):<\/p>\n<pre>Debug.Print objListItem.Key, objListItem.Text, objListItem.ListSubItems(1).Text<\/pre>\n<h3>Eintr&auml;ge zur Laufzeit hinzuf&uuml;gen<\/h3>\n<p>Der bisherige Beispielcode geht davon aus, dass die Eintr&auml;ge beim &ouml;ffnen des jeweiligen Formulars angelegt werden. Sie k&ouml;nnen nat&uuml;rlich auch neue Eintr&auml;ge zur Laufzeit hinzuf&uuml;gen. Dazu k&ouml;nnen Sie beispielsweise drei Textfelder wie in Bild 7 anlegen und f&uuml;r die entsprechende Schaltfl&auml;che die Ereignisprozedur aus Quellcode 5 hinterlegen.<\/p>\n<p><b>Quellcode 5: Hinzuf&uuml;gen eines neuen Eintrags per Code<\/b><\/p>\n<pre>Private Sub cmdNeuerEintrag_Click()\r\n    Dim objListItem As ListItem\r\n    Set objListItem = lvwPersonen.ListItems.Add(, Me.txtKey, Me.txtVorname)\r\n    objListItem.ListSubItems.Add , , Me.txtNachname\r\n    Set objListItem = Nothing\r\nEnd Sub<\/pre>\n<p><IMG height=\"335\" src=\"..\/fileadmin\/_temp_\/{34CE6B98-66CE-403E-9F35-FD2012AE26D0}\/pic007.png\" width=\"306\" border=\"0\"><\/p>\n<p><b><\/b><\/p>\n<p><b><span style=\"color:darkgrey\">Bild 7:  Hinzuf&uuml;gen neuer Eintr&auml;ge zum ListView<\/span><\/b><\/p>\n<h3>Werte im ListView &auml;ndern<\/h3>\n<p>Standardm&auml;&szlig;ig k&ouml;nnen Sie die erste Spalte eines Eintrags &auml;ndern, indem Sie wie im Windows Explorer erst die Zeile markieren und dann nach einer kurzen Wartezeit erneut darauf klicken.<\/p>\n<p>Die erste Spalte des Eintrags verwandelt sich daraufhin in ein Eingabefeld, in das Sie den neuen Wert eintragen k&ouml;nnen.<\/p>\n<p>F&uuml;r eventuelle Aktionen in Zusammenhang mit einer solchen &auml;nderung k&ouml;nnen Sie die BeforeLabelEdit und AfterLabelEdit verwenden. Eine Anwendung hierzu finden Sie im Beitrag ListView-Steuerelement mit Daten f&uuml;llen (Shortlink 336).<\/p>\n<p>Andere Spalten als die erste lassen sich leider nicht anpassen.<\/p>\n<p>Zum Anpassen des Layouts stellen die Eigenschaften eines ListView-Steuerelements einige M&ouml;glichkeiten zur Verf&uuml;gung.<\/p>\n<p>Experimentieren Sie einfach mit einzelnen Einstellungen des Eigenschaftsfensters herum &#8211; das Steuerelement l&auml;sst sich sehr flexibel anpassen.<\/p>\n<p>Als Starthilfe finden Sie hier eine Auflistung wichtiger Eigenschaften:<\/p>\n<li>BorderStyle (Registerseite Allgemein): legt fest, wie der Rand aussieht. Diese Eigenschaft ist nicht mit der im eigentlichen Eigenschaftsfenster identisch.<\/li>\n<li>Appearance (Registerseite Allgemein): legt fest, ob das Steuerelement vertieft oder eben angezeigt wird.<\/li>\n<li>Gridlines (Registerseite Allgemein): zeigt ein Gitterraster an, wenn aktiviert.<\/li>\n<li>Alignment (Registerseite Spaltenk&ouml;pfe): Legt die Ausrichtung des Spalteninhalts fest.<\/li>\n<li>Width (Registerseite Spaltenk&ouml;pfe): Legt die Breite der Spalten fest.<\/li>\n<li>Symbolindex (Registerseite Spaltenk&ouml;pfe): Legt fest, welches Symbol aus der unter Abbildungslisten\/Spaltenkopf angegebenen Imagelist der Spaltenkopf enth&auml;lt.<\/li>\n","protected":false},"excerpt":{"rendered":"<p>Wer mit Access arbeitet, vermisst manchmal sicher etwas anspruchsvollere Steuerelemente. Beispiel Listenfeld: Dort w&auml;re es doch sch&ouml;n, wenn es eine einfache M&ouml;glichkeit zum Sortieren nach den ent-haltenen Spalten anbieten w&uuml;rde oder wenn man auch Icons darin unterbringen k&ouml;nnte. Ab der Ver-sion 2002 kommt Office standardm&auml;&szlig;ig mit einigen zus&auml;tzlichen Steuerelementen, die Abhilfe schaffen. Ein gutes Beispiel ist das ListView-Steuerelement, das einiges kann, was das Listenfeld nicht bietet.<\/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":[66022006,662006,44000027,44000023],"tags":[],"class_list":["post-55000333","post","type-post","status-publish","format-standard","hentry","category-66022006","category-662006","category-Loesungen","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 ListView-Steuerelement - 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_ListViewSteuerelement\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Das ListView-Steuerelement\" \/>\n<meta property=\"og:description\" content=\"Wer mit Access arbeitet, vermisst manchmal sicher etwas anspruchsvollere Steuerelemente. Beispiel Listenfeld: Dort w&auml;re es doch sch&ouml;n, wenn es eine einfache M&ouml;glichkeit zum Sortieren nach den ent-haltenen Spalten anbieten w&uuml;rde oder wenn man auch Icons darin unterbringen k&ouml;nnte. Ab der Ver-sion 2002 kommt Office standardm&auml;&szlig;ig mit einigen zus&auml;tzlichen Steuerelementen, die Abhilfe schaffen. Ein gutes Beispiel ist das ListView-Steuerelement, das einiges kann, was das Listenfeld nicht bietet.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/access-im-unternehmen.de\/Das_ListViewSteuerelement\/\" \/>\n<meta property=\"og:site_name\" content=\"Access im Unternehmen\" \/>\n<meta property=\"article:published_time\" content=\"2020-05-06T15:18:17+00:00\" \/>\n<meta property=\"og:image\" content=\"http:\/\/vg07.met.vgwort.de\/na\/7ef70bdae4af4c5e835c48d4333ee202\" \/>\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=\"12\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_ListViewSteuerelement\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Das_ListViewSteuerelement\\\/\"},\"author\":{\"name\":\"Andr\u00e9 Minhorst\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#\\\/schema\\\/person\\\/13395c4bcd7d7963efe33be9c584d93f\"},\"headline\":\"Das ListView-Steuerelement\",\"datePublished\":\"2020-05-06T15:18:17+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Das_ListViewSteuerelement\\\/\"},\"wordCount\":2269,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Das_ListViewSteuerelement\\\/#primaryimage\"},\"thumbnailUrl\":\"http:\\\/\\\/vg07.met.vgwort.de\\\/na\\\/7ef70bdae4af4c5e835c48d4333ee202\",\"articleSection\":[\"2\\\/2006\",\"2006\",\"L\u00f6sungen\",\"Mit Formularen arbeiten\"],\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/access-im-unternehmen.de\\\/Das_ListViewSteuerelement\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Das_ListViewSteuerelement\\\/\",\"url\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Das_ListViewSteuerelement\\\/\",\"name\":\"Das ListView-Steuerelement - Access im Unternehmen\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Das_ListViewSteuerelement\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Das_ListViewSteuerelement\\\/#primaryimage\"},\"thumbnailUrl\":\"http:\\\/\\\/vg07.met.vgwort.de\\\/na\\\/7ef70bdae4af4c5e835c48d4333ee202\",\"datePublished\":\"2020-05-06T15:18:17+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Das_ListViewSteuerelement\\\/#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/access-im-unternehmen.de\\\/Das_ListViewSteuerelement\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Das_ListViewSteuerelement\\\/#primaryimage\",\"url\":\"http:\\\/\\\/vg07.met.vgwort.de\\\/na\\\/7ef70bdae4af4c5e835c48d4333ee202\",\"contentUrl\":\"http:\\\/\\\/vg07.met.vgwort.de\\\/na\\\/7ef70bdae4af4c5e835c48d4333ee202\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/access-im-unternehmen.de\\\/Das_ListViewSteuerelement\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/access-im-unternehmen.de\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Das ListView-Steuerelement\"}]},{\"@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 ListView-Steuerelement - 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_ListViewSteuerelement\/","og_locale":"de_DE","og_type":"article","og_title":"Das ListView-Steuerelement","og_description":"Wer mit Access arbeitet, vermisst manchmal sicher etwas anspruchsvollere Steuerelemente. Beispiel Listenfeld: Dort w&auml;re es doch sch&ouml;n, wenn es eine einfache M&ouml;glichkeit zum Sortieren nach den ent-haltenen Spalten anbieten w&uuml;rde oder wenn man auch Icons darin unterbringen k&ouml;nnte. Ab der Ver-sion 2002 kommt Office standardm&auml;&szlig;ig mit einigen zus&auml;tzlichen Steuerelementen, die Abhilfe schaffen. Ein gutes Beispiel ist das ListView-Steuerelement, das einiges kann, was das Listenfeld nicht bietet.","og_url":"https:\/\/access-im-unternehmen.de\/Das_ListViewSteuerelement\/","og_site_name":"Access im Unternehmen","article_published_time":"2020-05-06T15:18:17+00:00","og_image":[{"url":"http:\/\/vg07.met.vgwort.de\/na\/7ef70bdae4af4c5e835c48d4333ee202","type":"","width":"","height":""}],"author":"Andr\u00e9 Minhorst","twitter_card":"summary_large_image","twitter_misc":{"Verfasst von":"Andr\u00e9 Minhorst","Gesch\u00e4tzte Lesezeit":"12\u00a0Minuten"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/access-im-unternehmen.de\/Das_ListViewSteuerelement\/#article","isPartOf":{"@id":"https:\/\/access-im-unternehmen.de\/Das_ListViewSteuerelement\/"},"author":{"name":"Andr\u00e9 Minhorst","@id":"https:\/\/access-im-unternehmen.de\/#\/schema\/person\/13395c4bcd7d7963efe33be9c584d93f"},"headline":"Das ListView-Steuerelement","datePublished":"2020-05-06T15:18:17+00:00","mainEntityOfPage":{"@id":"https:\/\/access-im-unternehmen.de\/Das_ListViewSteuerelement\/"},"wordCount":2269,"commentCount":0,"publisher":{"@id":"https:\/\/access-im-unternehmen.de\/#organization"},"image":{"@id":"https:\/\/access-im-unternehmen.de\/Das_ListViewSteuerelement\/#primaryimage"},"thumbnailUrl":"http:\/\/vg07.met.vgwort.de\/na\/7ef70bdae4af4c5e835c48d4333ee202","articleSection":["2\/2006","2006","L\u00f6sungen","Mit Formularen arbeiten"],"inLanguage":"de","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/access-im-unternehmen.de\/Das_ListViewSteuerelement\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/access-im-unternehmen.de\/Das_ListViewSteuerelement\/","url":"https:\/\/access-im-unternehmen.de\/Das_ListViewSteuerelement\/","name":"Das ListView-Steuerelement - Access im Unternehmen","isPartOf":{"@id":"https:\/\/access-im-unternehmen.de\/#website"},"primaryImageOfPage":{"@id":"https:\/\/access-im-unternehmen.de\/Das_ListViewSteuerelement\/#primaryimage"},"image":{"@id":"https:\/\/access-im-unternehmen.de\/Das_ListViewSteuerelement\/#primaryimage"},"thumbnailUrl":"http:\/\/vg07.met.vgwort.de\/na\/7ef70bdae4af4c5e835c48d4333ee202","datePublished":"2020-05-06T15:18:17+00:00","breadcrumb":{"@id":"https:\/\/access-im-unternehmen.de\/Das_ListViewSteuerelement\/#breadcrumb"},"inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":["https:\/\/access-im-unternehmen.de\/Das_ListViewSteuerelement\/"]}]},{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/access-im-unternehmen.de\/Das_ListViewSteuerelement\/#primaryimage","url":"http:\/\/vg07.met.vgwort.de\/na\/7ef70bdae4af4c5e835c48d4333ee202","contentUrl":"http:\/\/vg07.met.vgwort.de\/na\/7ef70bdae4af4c5e835c48d4333ee202"},{"@type":"BreadcrumbList","@id":"https:\/\/access-im-unternehmen.de\/Das_ListViewSteuerelement\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/access-im-unternehmen.de\/"},{"@type":"ListItem","position":2,"name":"Das ListView-Steuerelement"}]},{"@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\/55000333","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=55000333"}],"version-history":[{"count":0,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/posts\/55000333\/revisions"}],"wp:attachment":[{"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/media?parent=55000333"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/categories?post=55000333"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/access-im-unternehmen.de\/data\/wp\/v2\/tags?post=55000333"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}