Filter auf gefilterte Datensätze

Hallo,

ich habe ein Makro, das einen Filter anwendet (über 30 in einem bestimmten Feld).

Ich möchte aber, daß dieser Filter nur auf die aktuellen Datensätze angewendet wird, also alle bisherigen und die neue Bedingung vom Makro erfüllt werden. Wie mache ich das?

Danke,
Angela

Hallo, Angela!

ich habe ein Makro, das einen Filter anwendet (über 30 in
einem bestimmten Feld).
Ich möchte aber, daß dieser Filter nur auf die aktuellen
Datensätze angewendet wird, also alle bisherigen und die neue
Bedingung vom Makro erfüllt werden. Wie mache ich das?

Nicht über ein Makro; Du benötigst ein wenig Code dazu. Du schreibst Dir eine Funktion, die den Filter ergänzt, ungefähr so:

Sub ErgaenzeFilter(pfrmForm as Form, pstrKrit as String)
 if pfrmForm.FilterOn then
 pfrmForm.Filter=pfrmForm.Filter & Iif(pfrmForm.Filter="",""," AND ") \_
 & pstrKrit
 else
 pfrmForm.Filter=pstrKrit
 endif
 pfrmForm.FilterOn = True
 pfrmForm.Requery
End Sub

Diese kannst Du dann aufrufen, um zusätzliche Kriterien mit AND hinzuzufügen, also z. B.

Call ErgaenzeFilter(Forms("DeinFormular"),"DeinWert\>30")

Das ganze mal wieder ungetestet/uncompiliert…

Gruß, Manfred

Hallo,

erstmal danke für die Antwort. Es funktioniert soweit auch, aber wenn ich statt 30 eine Variable verwenden will, wird nichts mehr gefiltert.

Ich habe bei der Call-Anweisung statt „DeinWert>30“ y geschrieben und y wie folgt definiert:

y = „“"" & „Length>“ & „30“ & „“""

wobei ich die „30“ danach eben auch noch ersetzen wollte (sonst würde es ja keinen Sinn machen).

Weißt Du, was da das Problem sein könnte?

Danke vielmals,
Angela

y = „“"" & „Length>“ & „30“ & „“""

statt Length natürlich DeinWert, wenn ich schon bei Deinem Code bleibe. :smile:

Hallo, Angela!

erstmal danke für die Antwort. Es funktioniert soweit auch,
aber wenn ich statt 30 eine Variable verwenden will, wird
nichts mehr gefiltert.
Ich habe bei der Call-Anweisung statt „DeinWert>30“ y
geschrieben und y wie folgt definiert:
y = „“"" & „Length>“ & „30“ & „“""

Die umschließenden " sind falsch. Wenn Du schreibst:

y="Length\>" & CStr(meineVariable)
Call ErgaenzeFilter(Forms("DeinFormular"),y)

wird es klappen, denke ich. (Der Compiler fehlt immer noch im Forum:wink: Außerdem ist natürlich „meineVariable“ falsch; es müsste eigentlich „deineVariable“ heißen…

Gruß, Manfred

AAAAAAAAAAAAAAA! Ist ja klar, daß ich da die Anführungszeichen nicht brauche. :smile:) Sorry, irgendwie war ich total blind.

Liebe Grüße,
Angela

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]