AW: Listbox per Reckordset füllen?
31.10.2004 19:45:27
andre
Hallo andreas,
z.b. direkt in der Schleife wo die Werte ausgelesen werden oder über ein array, mal aus einem code von mir:
Private Sub cmdOK_Click()
Dim feld As Field
ListBox1.Clear
ListBox1.ColumnWidths = ""
'ListBox1.AddItem (feld.Value)
If lsttab.Text <> "" Then 'ansonsten tabelle artikel aus sub dbopen
Set RS = DB.OpenRecordset(lsttab.Text, dbOpenSnapshot, dbReadOnly)
End If
RS.MoveLast ' sonst bringt rs.recordcount 1
RS.MoveFirst
' Dim arrTabelle(1 To 10, 1 To 10) hier nicht, da variable Array-Zahl
ReDim arrTabelle(1 To RS.Fields.Count, 1 To RS.RecordCount)
UserForm2.ListBox1.ColumnCount = RS.Fields.Count
For Each feld In RS.Fields ' Spaltengrösse der Listbox einstellen
If feld.Type = Date Then
FeldGroesse = 5 * feld.Size + 25 ' summand für rand, bei datum zzgl
Else ' Platz fuer Punkte
FeldGroesse = 5 * feld.Size + 15 ' Feldtyp Beschreibung DB-Size = 0!!
End If ' da Länge dieses Typ's variabel ist
If ListBox1.ColumnWidths = "" Then ' erste Groesse ohne Semikolon
ListBox1.ColumnWidths = FeldGroesse
Else
ListBox1.ColumnWidths = ListBox1.ColumnWidths & ";" & FeldGroesse
End If
Next
Dim intRow As Integer, intCol As Integer
For intRow = 1 To RS.RecordCount ' array füllen / Zeilen
intCol = 0 ' muss für jede neue Zeile auf null gesetzt werden
For Each feld In RS.Fields ' array füllen / Spalten
intCol = intCol + 1
arrTabelle(intCol, intRow) = feld
Next
RS.MoveNext
Next intRow
ListBox1.Column = arrTabelle ' Listbox füllen
RS.MoveFirst ' sonst klappt weiter / zurueck nicht
ListBox1.Selected(0) = True
counter = "Datensatz: 1 von: " & RS.RecordCount
End Sub