Access-o-Mania

Access-Forum (Deutsch/German) => Access Programmierung => Thema gestartet von: tbg am November 08, 2012, 20:00:12

Titel: Me.Filter für mehrere Kriterien / Wo ist der Fehler?
Beitrag von: tbg am November 08, 2012, 20:00:12
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!  :)
Titel: Re: Me.Filter für mehrere Kriterien / Wo ist der Fehler?
Beitrag von: MzKlMu am November 08, 2012, 20:10:30
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.
Titel: Re: Me.Filter für mehrere Kriterien / Wo ist der Fehler?
Beitrag von: tbg am November 08, 2012, 20:47:49
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
Titel: Re: Me.Filter für mehrere Kriterien / Wo ist der Fehler?
Beitrag von: MzKlMu am November 08, 2012, 20:59:53
Hallo,
wenn Zahl, dann ohne Hochkomma:
Me.Filter = "[NAME] Like '" & [Begriff2] & "*'" & " and " & "[ABR_NR]=" & [Begriff4]
Titel: Re: Me.Filter für mehrere Kriterien / Wo ist der Fehler?
Beitrag von: Stefan71 am November 08, 2012, 21:12:15
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
Titel: Re: Me.Filter für mehrere Kriterien / Wo ist der Fehler?
Beitrag von: Beaker s.a. am November 08, 2012, 21:31:37
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
Titel: Re: Me.Filter für mehrere Kriterien / Wo ist der Fehler?
Beitrag von: DF6GL am November 12, 2012, 13:40:05
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 '**' ...