Access-o-Mania

Access-Forum (Deutsch/German) => Formular => Thema gestartet von: Umbauwfb am Januar 31, 2022, 11:55:53

Titel: Unterformular Filter mit Listenfeld
Beitrag von: Umbauwfb am Januar 31, 2022, 11:55:53
Hallo,
ich möchte in einem Unterformular mit einem Listenfeld mit Mehrfachauswahl die Datensätze des Unterformulars filtern.
Das Unterformular ist selbst auch schon im Hauptformular gefiltert.
Den Befehl stoße ich über einen Button an. (Eigentlich möchte ich es lieber über das Listenfeld selbst beim Clicken machen...)

Der nachfolgende Code bewirkt: nichts...

Vielen Dank für jede Unterstützung :)

 Private Sub cmdFilterProtokollTyp_Click()

Dim Element As Variant

For Each Element In Me.lstFilterProtokollTyp.ItemsSelected

    Me.Filter = Me.Filter & Element
   
Next

End Sub
Titel: Re: Unterformular Filter mit Listenfeld
Beitrag von: ebs17 am Januar 31, 2022, 17:44:30
Me.Filter = "irgendetwas"

' entspricht
Me.Filter = True
Was soll da passieren? Abgesehen davon, dass man einen Filter auch anwenden muss a la Me.FilterOn = True.

Damit etwas passiert im Sinne von Filtern, müsste das Ergebnis des Tuns etwa so etwas hervorbringen:
Me.Filter = "FeldX IN (2, 4, 99)"        ' bei Ganzzahlen
Me.Filter = "FeldY IN ('Eva', 'Susi')"   ' bei Strings
Me.FilterOn = True
In Deiner Schleife wäre also insbesondere der Ausdruck in der Klammer zu erzeugen.

Weiterführende Infos:
Grundlagen - SQL ist leicht (15) - Mehrfachauswahl zum Filtern umsetzen (https://www.ms-office-forum.net/forum/showthread.php?t=373473)