Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Filter mit drei Bedingungen per Button

Begonnen von Bollisan, Dezember 09, 2012, 20:54:40

⏪ vorheriges - nächstes ⏩

Bollisan

Hallo Helfer,
möchte einen Filter im Endlos-Formular mit folgenden Bedingungen per Button starten.
Die betreffende Spalte ist mit ,,PersonN" benannt.
In dieser Spalte sind zahlreiche Personen (Nachname) aufgeführt.
Nun möchte ich aus dieser Spalte drei Personen filtern; z.B. mit dem Nachname: Schluge, Orania und Steffen.
Kann mir jemand dafür einen VBA-Code aufzeigen.
Im Voraus besten Dank.
Gruß
Bollisan

Beaker s.a.

Hallo Bollisan,
Private Sub DeinButton_Click()
    Me.Filter = "PersonN IN ('Schluge', 'Orania', 'Steffen')"
    Me.FilterOn = True
End Sub

hth
gruss ekkehard
aus aktuellen Anlässen:
Das Hauptproblem - eines der Hauptprobleme, denn es gibt mehrere - eines der vielen Hauptprobleme beim Regieren von Leuten ist, von wem man sich das gefallen läßt; oder vielmehr, wer es schafft, die Leute soweit zu kriegen, dass sie sich's gefallen lassen.
Zusammenfassend: Es ist eine allseits bekannte Tatsache, dass die Leute, die sich am meisten wünschen, Leute zu regieren, gerade deshalb diejenigen sind, die am wenigsten dazu geeignet sind. Um die Zusammenfassung zusammenzufassen: Jeder, der imstande ist, sich zum Präsidenten wählen zu lassen, sollte um alles in der Welt daran gehindert werden, dass er seinen Job ausübt. Um die zusammengefasste Zusammenfassung zusammenzufassen: Leute sind ein Problem.
(Douglas Adams)

Halwin

also so statisch würd ich das nicht machen...

Angenommen in deinem Form hast du ein Listfeld mit Mehrfachselektions Möglichkeit, dann würde ich eher etwas in diese Richtung vorschlagen.

Sub deinButton_Click()
    For Each itm In Me!PersonenListfeld.ItemsSelected
        PersonenFilter = PersonenFilter & "," & Me!PersonenListfeld.Column(0, itm)
    Next

    If Len(PersonenFilter) > 0 Then
        PersonenFilter = Mid(PersonenFilter , 2)
        Me.Filter = "PersonN in (" & PersonenFilter & ")"
        Me.FilterOn = True
    Else
        MsgBox "Keine Person ausgewählt"
    End If
End Sub

DF6GL

Hallo,


wenn, denn:

PersonenFilter = PersonenFilter & ",'" & Me!PersonenListfeld.Column(0, itm) & "'"

Halwin

Franz, du hast natürlich vollkommen Recht.

Ich hatte keine Hochkommas verwendet, da bei mir die Tabellen Autowert Spalten haben und diese ja die Key's in den Listboxen sein sollten..

Beaker s.a.

Hallo,
@Franz
Stört da das Koma am Anfang nicht?
@all
Und es stellt sich die Frage ob Column(0)
die richtige Spalte ist. Ich würde da eher die KundenNr
als den Namen vermuten. Und dann, unter der Voraus-
setzung, dass diese K-Nummer auch eine Zahl ist, sollte
Halwins Code auch funzen.
gruss ekkehard
aus aktuellen Anlässen:
Das Hauptproblem - eines der Hauptprobleme, denn es gibt mehrere - eines der vielen Hauptprobleme beim Regieren von Leuten ist, von wem man sich das gefallen läßt; oder vielmehr, wer es schafft, die Leute soweit zu kriegen, dass sie sich's gefallen lassen.
Zusammenfassend: Es ist eine allseits bekannte Tatsache, dass die Leute, die sich am meisten wünschen, Leute zu regieren, gerade deshalb diejenigen sind, die am wenigsten dazu geeignet sind. Um die Zusammenfassung zusammenzufassen: Jeder, der imstande ist, sich zum Präsidenten wählen zu lassen, sollte um alles in der Welt daran gehindert werden, dass er seinen Job ausübt. Um die zusammengefasste Zusammenfassung zusammenzufassen: Leute sind ein Problem.
(Douglas Adams)

Halwin

Das führende komma nimmst du am Ende wieder weg mit der Funktion  Mid(PersonenFilter , 2).
Auch die Frage die Frage zur Column ist natürlich berechtigt. Ich habe einfach wieder nicht erklärt unter welchen Bedingungen das gilt *shame on me*
Der Codesnipsel geht natürlich davon aus, dass Spalte 0 der Primary key ist und in diesem Fall muss er nummerisch sein. Mit Franz's Hinweis gilt er dann für reine Text Felder.

Beaker s.a.

Hallo Hawin,
Zitat*shame on me*
Dito, die Zeile mit dem Komma hab' gar nicht gesehen,
war so auf die Schleife fixiert.
gruss ekkehard
aus aktuellen Anlässen:
Das Hauptproblem - eines der Hauptprobleme, denn es gibt mehrere - eines der vielen Hauptprobleme beim Regieren von Leuten ist, von wem man sich das gefallen läßt; oder vielmehr, wer es schafft, die Leute soweit zu kriegen, dass sie sich's gefallen lassen.
Zusammenfassend: Es ist eine allseits bekannte Tatsache, dass die Leute, die sich am meisten wünschen, Leute zu regieren, gerade deshalb diejenigen sind, die am wenigsten dazu geeignet sind. Um die Zusammenfassung zusammenzufassen: Jeder, der imstande ist, sich zum Präsidenten wählen zu lassen, sollte um alles in der Welt daran gehindert werden, dass er seinen Job ausübt. Um die zusammengefasste Zusammenfassung zusammenzufassen: Leute sind ein Problem.
(Douglas Adams)