Access-o-Mania

Access-Forum (Deutsch/German) => Tabelle/Abfrage => Thema gestartet von: Carl am Oktober 26, 2017, 10:04:18

Titel: Listenfeld soll nach zwei Feldern filtern
Beitrag von: Carl am Oktober 26, 2017, 10:04:18
Listenfeld

Kann man ein Listenfeld so mit VBA konfigurieren, dass es Datensätze so filtert, dass zwei Felder abgefragt werden.

Zum Beispiel, dass alle DS angezeigt werden, die in [Text1] oder in [Text2] den Wert zeigen, den das Listenfeld markiert hat?

Carl
Titel: Re: Listenfeld soll nach zwei Feldern filtern
Beitrag von: Lachtaube am Oktober 26, 2017, 11:20:00
Man kann.
Titel: Re: Listenfeld soll nach zwei Feldern filtern
Beitrag von: Carl am Oktober 27, 2017, 23:56:28
Also um nach einem Feld zu filtern mache ich es immer so:

Private Sub Einfeldfilter_AfterUpdate()
     With Me!UFfrmworkorderUFO.Form
         .Filter = "Erstesfeld = " & Me!Einfeldfilter & ""
         .FilterOn = True
     End With
End Sub


Das hingegen funktioniert nicht, weil der zweite Filter den ersten überschreibt.

Private Sub Zweifeldfilter_AfterUpdate()
     With Me!UFfrmworkorderUFO.Form
         .Filter = "Erstesfeld = " & Me!Zweifeldfilter & ""
         .Filter = "Zweitesfeld = " & Me!Zweifeldfilter & ""
.FilterOn = True
     End With
End Sub


Was muss man tun, um DS anzuzeigen, die den Wert im ersten ODER im zweiten haben?

Titel: Re: Listenfeld soll nach zwei Feldern filtern
Beitrag von: Carl am Oktober 28, 2017, 00:13:50
okay, ich habs hin bekommen mit:

Private Sub Zweifeldfilter_AfterUpdate()
     With Me!UFfrmworkorderUFO.Form
         .Filter = "Erstesfeld = " & Me!Zweifeldfilter & ""  & _
         "OR Zweitesfeld = " & Me!Me!Zweifeldfilter & ""
         .FilterOn = True
     End With


Ich verstehe nicht, was der Ausdruck  & _ bedeutet.

Carl


Titel: Re: Listenfeld soll nach zwei Feldern filtern
Beitrag von: MzKlMu am Oktober 28, 2017, 07:19:13
Hallo,
das &_ ist nur ein Zeilenumbruch im VBA Editor den man einfügt, wenn die Zeile zu lang wird. Ist bei dem gezeigten Code nicht unbedingt notwendig. Außerdem sind die beiden Leerstrings überflüssig.
     With Me!UFfrmworkorderUFO.Form
         .Filter = "Erstesfeld = " & Me!Zweifeldfilter & " OR Zweitesfeld = " &  Me!Zweifeldfilter
        .FilterOn = True
     End With

Das funktioniert aber nur bei Zahlen so, Texte erfordern zusätzliche Hochkomma.