Ich möchte eine Listbox mit Spalten füllen?
Ich möchte eine Listbox mit Spalten füllen. Es können neue Daten hinzugefügt oder auch gelöscht werden. Habe lange im Internet gesucht. Es gibt bestimmt eine Möglichkeit die Listbox aus den obrigen Zeilen rauszulesen und sie in die listbox zu füllen. Diese Angaben will ich später in eine Datenbank Tabelle MSSQL füllen.
Wie mache ich das am besten/einfachsten? Ich habe mal eine Beispielsdatei hochgeladen. Sage schon jetzt mal "Vielen Dank" für eure Hilfe.
2 Antworten
Setze die Spaltenzahl der Listbox auf deine Bedürfnisse (hier im Beispiel 4 Spalten):
ListBox1.ColumnCount = 4
Dann kannst du die Breite der Spalten wie folgt verändern (hier im Beispiel 1. Spalte=40px, 2. Spalte=30px, 3. Spalte=20px und letze Spalte braucht einfach noch den restlichen Platz auf):
ListBox1.ColumnWidths = "40;30;20"
Jetzt kannst du die Tabelle mit folgendem Befehl befüllen (hier im Beispiel wird in der zweiten Zeile in der ersten Spalte "Test" eingefüllt):
ListBox1.AddItem
ListBox1.List(1, 0) = "Test"
Mit einem For Loop, kannst du dann mehre ganze Zeile befüllen (hier im Beispiel 2 neue Zeilen mit den Werten Name, Vorname, Alter, Grösse):
For i = 1 To 3
ListBox1.AddItem
ListBox1.List(i - 1, 0) = "Name"
ListBox1.List(i - 1, 1) = "Vorname"
ListBox1.List(i - 1, 2) = "Alter"
ListBox1.List(i - 1, 3) = "Grösse"
Next i
End Sub
Das kann ich dir sagen, wenn du mir sagst, wie deine Textboxen und DropDown Boxen + Übernehmen Button heissen ;)
Hier. Die Nummer zähle ich automatisch hoch. Das "Nr" Textfeld kannst du eigentlich somit weglassen (dann gibt es sicher keine Duplikate ;)):
Dim i As Integer
Private Sub ÜbernehmenButton_Click()
i = i + 1
ListBox1.ColumnCount = 4
ListBox1.ColumnWidths = "30;100;150"
ListBox1.AddItem
ListBox1.List(i - 1, 0) = i
ListBox1.List(i - 1, 1) = Aufgaben.Text
ListBox1.List(i - 1, 2) = Mitarbeiter.Text
ListBox1.List(i - 1, 3) = Zeitplan.Text
End Sub
Die "ColumnWidths" kannst du natürlich selber noch anpassen :)
Auch wird nicht geprüft, ob die Textfelder leer sind... Das kannst du nach belieben noch einbauen (if Abfrage).
Code Bsp für VB6:
Sofern deine ListBox immer die gleiche Anzahl an Spalten haben wird und die Spaltenreihenfolge nicht vertauscht wird, kannst du so "hardcoded" darauf zugreifen:
ListBoxObj.ListItems(AktuelleZeile).SubItems(AktuelleSpalte) = "test"
Neue Zeile einfügen (am Ende)
ListBoxObj.ListItems(ListBoxObj.ListItems.count + 1).ListSubItems.Add 1, , "test"
Entferne eine Zeile:
ListBoxObj.ListItems.Remove (Gewünschtezeile)
' z.B ListBoxObj.SelectedItem.Index
wie würde das mit einem "Übernehmen" - Button aussehen?