Access 2010 mehrspaltige Listbox

Hallo,

ich beschäftige mich gerade mit Access 2010 VBA und möchte in eine mehrspaltige Listbox Daten eintragen.

Als erster Versuch mit Access-VBA zu arbeiten, möchte ich erst mal einen Verzeichnisbaum mit den Informationen:
Dateiname, Pfad, Dateigröße und Letzte Änderung auflisten.
Die mehrspaltige Liste schien sich dafür anzubieten.

Mit Google habe ich dafür für andere Versionen Code gefunden, mit dem die Daten in die Spalten 1 bis n über die Eigenschaft .List eingefügt werden.

Meine Liste in Access 2010 hat keine .List-Eigenschft.

Was ich auch nicht gefunden habe ist .Clear
Wie kann ich ohne Schleife den Inhalt der Liste löschen?
Mit Schleife hab’ ich’s hin bekommen, gefällt mir aber nicht. :smile:

Hat Jemand eine Beispielcode für mich?

In VB6 könnte ein Beispiel so aussehen:

Option Explicit

Private Sub Command1\_Click()
Dim r As Integer, c As Integer, txt As String
List1.Columns = 5
For r = 0 To 4
 txt = ""
 For c = 0 To 4
 txt = txt & CStr(r) & CStr(c) & Chr(9)
 Next
 List1.AddItem txt
Next
End Sub

In der Tabelle steht dann:

00 01 02 03 04
10 11 12 13 14
20 21 22 23 24
30 31 32 33 34
40 41 42 43 44

Mit Access 2010 funktioniert das so nicht.
Wie bekomme ich das mit Access 2010 VBA hin?

Gruß Rainer

Mit Probieren gefunden
lstTestliste.Additem „a;b“

Das Semikolon im String ist das Trennzeichen.

Gruß Rainer

lstTestliste.Additem „a;b“
Das Semikolon im String ist das Trennzeichen.

Hallo Rainer,

ich fand in Access 2000 etwas wo wohl auch die Spalteneinträge einer
Liste durch Semikolon getrennt werden wenn ich das richtig sehen würde.

Überfliegs mal, vielleicht ist da was verwertbares dabei für dich.
.RowSource=""
klingt ja nach .Clear

Gruß
Reinhard

Selected-Eigenschaft - Beispiel

Das folgende Beispiel verwendet die Eigenschaft Selected, um
ausgewählte Elemente des Listenfelds lstQuelle zum Listenfeld lstZiel
zu übertragen. Die Eigenschaft RowSourceType des Listenfelds lstZiel
ist auf Wertliste eingestellt, und die Eigenschaft RowSource des
Steuerelements wird aus allen im Steuerelement lstQuelle ausgewählten
Elementen gebildet. Die Eigenschaft MultiSelect des Listenfelds
lstQuelle ist auf Erweitert eingestellt. Die Funktion CopySelected( )
wird durch die Befehlsschaltfläche cmdElementeKopieren aufgerufen.

Sub cmdElementeKopieren\_Click()
 CopySelected Me
End Sub

Function CopySelected(frm As Form) As Integer
 Dim ctlQuelle As Control
 Dim ctlZiel As Control
 Dim strElemente As String
 Dim intAktuelleZeile As Integer
 Set ctlQuelle = frm!lstQuelle
 Set ctlZiel = frm!lstZiel
 For intAktuelleZeile = 0 To ctlQuelle.Listcount - 1
 If ctlQuelle.Selected(intAktuelleZeile) Then
 strElemente = strElemente & ctlQuelle.Column(0, intAktuelleZeile) & ";"
 End If
 Next intAktuelleZeile
 ' Eigenschaft RowSource des Zielsteuerelements
 ' zurücksetzen.
 ctlZiel.RowSource = ""
 ctlZiel.RowSource = strElemente
End Function
1 Like

Hallo Reinhard,

sorry, ich bin nicht zum Testen gekommen.

ich fand in Access 2000 etwas wo wohl auch die Spalteneinträge
einer
Liste durch Semikolon getrennt werden wenn ich das richtig
sehen würde.

Überfliegs mal, vielleicht ist da was verwertbares dabei für
dich.
.RowSource=""
klingt ja nach .Clear

Danke, funktioniert! Ich hätte mir unter dem Begriff etwas anderes vorgestellt, nicht erwartet, daß da Daten stehen. Ich hätte da eher einen Pfad oder einen Verweis auf eine Datenbank vermutet.

Gruß Rainer