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. 
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.
) Sorry, irgendwie war ich total blind.
Liebe Grüße,
Angela
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]