Inhalt leeren eines Listenfeld / Listbox @ VBA Access

Blaubmania

Erfahrenes Mitglied
Hi,

kurz und bündig, wie leere ich ein Listenfeld bzw. wie lösche ich den Inhalt?! Das ganze soll unter VBA Access funktionieren! und dann nochn bischen Code der zum füllen des Listenfeldes dient.

Visual Basic:
Private Sub txtsucher_GotFocus()
Dim db As Database
Dim r As Recordset
Dim i As Integer
Dim j As Integer

If Len(Me.txtsucher) > 2 Then
    Set db = CurrentDb
    Set r = db.OpenRecordset("Kunde", dbOpenDynaset)
    Me.lstkunden.ColumnCount = 4
    r.FindFirst "Nachname Like '" & Me.txtsucher & "*'"
    Do While r.NoMatch = False
        Me.lstkunden.AddItem r![Kunde-ID] & ";" & r![Nachname] & ";" & r![Vorname] & ";" & r![Gebaeude] & ";"
        r.FindNext "Nachname Like '" & Me.txtsucher & "*'"
    Loop
End If
End Sub
 
Aus der VBA Hilfe von Excel

Entfernt eine Zeile aus der Liste eines Listenfeldes oder Kombinationsfeldes.

Syntax

Boolean = object.RemoveItem index

Die Syntax für die RemoveItem-Methode besteht aus folgenden Teilen:

Teil Beschreibung
object Erforderlich. Ein gültiges Objekt.
index Erforderlich. Gibt die zu löschende Zeile an. Die Nummer der ersten Zeile ist 0, die Nummer der zweiten Zeile ist 1 usw.


Diese Methode entfernt keine Zeile aus der Liste, wenn das Listenfeld-Steuerelement (ListBox) an eine Datenbank gebunden ist (dies ist dann der Fall, wenn die RowSource-Eigenschaft eine Datenquelle für das Listenfeld-Steuerelement angibt).
 
Thx nach ein bischen rumprobieren ahb iche s nun auch endlich hingekriegt der Abschluss sieht nun so aus

Visual Basic:
Private Sub txtsucher_GotFocus()
Dim db As Database
Dim r As Recordset
Dim i As Integer
Dim j As Integer

If Me.lstkunden.ListCount > 0 Then
    i = 0
    j = Me.lstkunden.ListCount - 1
    Do Until i > j
        Me.lstkunden.RemoveItem (j - i)
        i = i + 1
    Loop
End If

If Len(Me.txtsucher) > 2 Then
    Set db = CurrentDb
    Set r = db.OpenRecordset("Kunde", dbOpenDynaset)
    Me.lstkunden.ColumnCount = 4
    r.FindFirst "Nachname Like '" & Me.txtsucher & "*'"
    Do While r.NoMatch = False
        Me.lstkunden.AddItem r![Kunde-ID] & ";" & r![Nachname] & ";" & r![Vorname] & ";" & r![Gebaeude] & ";"
        r.FindNext "Nachname Like '" & Me.txtsucher & "*'"
    Loop
End If
End Sub
 
Hi.

Ich weiß nicht ob das auch für VBA gilt, aber in VB kann man die Methode Clear auf eine ListBox bzw. ComboBox anwenden:
Visual Basic:
listbox1.Clear
Gruß
 
deepthroat hat gesagt.:
Hi.


Ich weiß nicht ob das auch für VBA gilt, aber in VB kann man die Methode Clear auf eine ListBox bzw. ComboBox anwenden:vb Code:
  1. listbox1.Clear


Gruß

Geht in VBA leider nicht oder zumindest ned bei Access habs auch in nem VBA Buch gelesen das man so alles löschen kann aber konnte Clear ned ansprechen.
 
Die leichtesten Sachen überseh/vergesse ich immer :)

Klar gibts clear.
Ich sollte mehr mit Listboxen arbeiten.
 
Nirraven hat gesagt.:
Die leichtesten Sachen überseh/vergesse ich immer :)

Klar gibts clear.
Ich sollte mehr mit Listboxen arbeiten.

Ja geben schon aba wie kriegen?! wenn ich "Me.lstkunden." eingebe dann bietet er mir in de rListe aber kein Clear an sonst hätte ich es ja schon längst angewendet
 
Ich korrigiere mich:

cler ist eine Methode vom ListBox Steuerelement in VBA Excel.
In VBA Access nicht.
Also bleibt wohl nur RemoveItem
 
Anscheinend wurde die Clear Methode aus VBA Access entfernt (in Access97 war sie wohl noch drin). Man kann's aber auch so machen:
Visual Basic:
Listbox1.RowSource = vbEmptyString

Gruß
 
Zuletzt bearbeitet:
Zurück