Neuigkeiten:

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

Mobiles Hauptmenü

Me.Filter für mehrere Kriterien / Wo ist der Fehler?

Begonnen von tbg, November 08, 2012, 20:00:12

⏪ vorheriges - nächstes ⏩

tbg

Hallo an alle,

mit der Erstellung eines Formularfilters für zwei Suchkriterien komme ich einfach nicht weiter. Und zwar soll der Filter mit dem Wort aus dem ungebundenen Feld Begriff2 das Feld Name durchsuchen. Dabei soll die Suche tolerant sein, also ausdrücklich mit Like gesucht werden. Bei der ABR_NR hingegen, soll exakt nach der im ungebundenen Feld Begriff4 vorgegebenen Zahl gesucht werden. Ich habe schon sämtliche Varianten ausprobiert und bin jetzt bei folgendem Stand:

Me.Filter = "[NAME] Like '" & [Begriff2] & "*'" & " and " & "[ABR_NR]='" & [Begriff4] & "'
Me.FilterOn = True

Führe ich das Makro aus, kommt Laufzeitfehler '2001'; Sie haben die vorherige Operation abgebrochen.

Kann mir jemand schreiben, wo der Fehler in meinem Makro ist?

Vielen Dank!  :)

MzKlMu

Hallo,
welcher Datentyp hat das Feld ABR_NR, Zahl oder Text?

PS:
Name als Feldname ist absolut tabu. Das ist kein Rat, sondern ein muss. Name als Feldname führt zu großen Problemen, da Name auch eine Eigenschaft von fast allen Objekten ist.
Du kannst es probieren, gib in einem Formularfeld als Steuerelementname =[Name] ein und Du erhältst nicht den Namen den Du willst, sondern den Namen des Formulars.
Ändere in Nachname oder so.
Gruß Klaus

tbg

Hallo MzKlMu,

Vielen Dank für die Antwort.  :)

der Datentyp des Feldes ABR_NR ist Zahl.

Den Feldnamen NAME werde ich ändern.

Viele Grüße

tbg

MzKlMu

Hallo,
wenn Zahl, dann ohne Hochkomma:
Me.Filter = "[NAME] Like '" & [Begriff2] & "*'" & " and " & "[ABR_NR]=" & [Begriff4]
Gruß Klaus

Stefan71

Hallo ,

funktioniert das hier denn:

Me.Filter = "[NAMENSFELD] Like '" & Nz([Begriff2], "") & "*' and [ABR_NR] Like '" & Nz([Begriff4], "*") & "'"

Das sollte Nullwerte in den Suchkriteriumsfeldern [Begriff2] und [Begriff4] korrekt behandeln: Sind sie ggf. nicht gefüllt (d.h. NULL), dann wird nach beliebigen Ausprägungen in [NAMENSFELD] bzw. [ABR_NR] gesucht.

Habe es jetzt nicht direkt ausprobiert, käme also auf einen Versuch an :-)

Viele Grüße

Beaker s.a.

#5
Hallo Stefan,
ZitatMe.Filter = "[NAMENSFELD] Like '" & Nz([Begriff2], "") & "*' and [ABR_NR] Like '" & Nz([Begriff4], "*") & "'"
Nz könnte hilfreich sein, ich denke aber, dass man die
Controls auch als zum Formular gehörig ansprechen sollte
Me.Filter = "[NAMENSFELD] Like '*" & Nz(Me!Begriff2, "") & "*' And [ABR_NR] = " & Nz(Me!Begriff4,0)
Er will im Namensfeld nach Vorkommen suchen, und
in der Nummer nach Übereinstimmung, wobei das
Namensfeld Text ist und die Nummer Zahl.
gruss ekkehard
Alles, was geschieht, geschieht. - Alles, was während seines Geschehens etwas anderes geschehen lässt, lässt etwas anderes geschehen. - Alles, was sich selbst im Zuge seines Geschehens erneut geschehen lässt, geschieht erneut. - Allerdings tut es das nicht unbedingt in chronologischer Reihenfolge.
(Douglas Adams, Mostly Harmless)

DF6GL

Hallo,

in diesem Ausdruck (Filterbedingung)

"... Like '*" & Nz(Me!Begriff2, "") & "*' ...

ist die NZ-Funktion überflüssig.. Auch wenn das Textfeld "leer" (NULL) ist, ergibt der Ausdruck lediglich zwei aufeinanderfolgende Sternchen ohne expliziten "Nullstring" dazwischen

...  Like '**' ...