Listenfeld in Access bei Filter aktualisieren

Habe eine kleine Datenbank für EDV-Inventar erstellt.
Zur schnelleren, direkten Anwahl der einzelnen Datensätze habe ich ein Listenfeld aufgenommen.

Private Sub Liste511_AfterUpdate()
’ Den mit dem Steuerelement übereinstimmenden Datensatz suchen.
Dim rs As Object

Set rs = Me.Recordset.Clone
rs.FindFirst "[lfd Nr] = " & Str(Nz(Me![Liste511], 0))
If Not rs.EOF Then Me.Bookmark = rs.Bookmark
End Sub

Problem für mich, wenn ich im Formular einen Filter setze, bleiben im Listenfeld trotzdem alle Datensätze sichtbar, wenn auch nicht anwählber.

Wie ist es möglich die Listbox mit dem jeweils gefilterten Datensätzen zu synchronisieren?

Bin für jeden Lösungsansatz dankbar.

Hallo Hans,

Habe eine kleine Datenbank für EDV-Inventar erstellt.
Zur schnelleren, direkten Anwahl der einzelnen Datensätze habe
ich ein Listenfeld aufgenommen.

Private Sub Liste511_AfterUpdate()
’ Den mit dem Steuerelement übereinstimmenden Datensatz
suchen.
Dim rs As Object

Set rs = Me.Recordset.Clone
rs.FindFirst "[lfd Nr] = " & Str(Nz(Me![Liste511], 0))
If Not rs.EOF Then Me.Bookmark = rs.Bookmark
End Sub

Problem für mich, wenn ich im Formular einen Filter setze,
bleiben im Listenfeld trotzdem alle Datensätze sichtbar, wenn
auch nicht anwählber.

Wie ist es möglich die Listbox mit dem jeweils gefilterten
Datensätzen zu synchronisieren?

Wenn das Frmular geöffnet wird, werden auch die Daten aus der Abfrage für das Listfeld geladen.

Dann setzt Du irgendwann einen Filter…

Nur das Listfeld enthält immer noch die alte Abfrage (Datenquelle).
Du mußt nun nur noch die Filterbedingung in diese Abfrage übernehmen.

Die Frage ist: Wie definierst Du den Filter?

Normaler Weise kannst du über Me.Filter den Filter für das aktuelle Formular abfragen… Den mußt Du dann per VBA in die Datenquelle des Listfeldes übergeben und mit Liste511.requery erneut abfragen.

Mir ist aufgefallen: Lfd-Nr ist bei Dir als Text definiert! Solltest Du auf Zahl ändern, bzw. Autowert.

Gruß Wolfgang