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. 
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 „Gefällt mir“
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