Access-o-Mania

Access-Forum (Deutsch/German) => Access Programmierung => Thema gestartet von: AndiHo am Mai 25, 2016, 09:24:35

Titel: Formularfilter nach Zeitraum und weiteren Kriterien
Beitrag von: AndiHo am Mai 25, 2016, 09:24:35
Guten Morgen Zusammen,
hoffe jemand kann mir helfen wo der Fehler liegt, ich bin langsam am verzweifeln.

Ich habe ein Endlosformular mit Daten wie Datum, Lieferant (Textfeld), Produktname (Textfeld), Menge usw.
Nun möchte ich Filtermöglichkeiten einbauen, bei denen ich dann nach Zeitraum, Lieferant und Produktname filtern kann - natürlich auch die Möglichkeit, dass man z. b. nur nach Zeitraum und Lieferant filtert und der Prokutname offen bleibt.
Einzeln und unabhängig voneinander funktionieren die Filtermöglichkeiten sehr gut, aber wenn ich diese dann zusammen in einem Code unterbringe, kommt ständig Laufzeitfehler 3075 - Syntaxfehler (fehlender Operator)....

hier mal mein Code im Vba, der mir ständig den Fehler auslöst:
Me.Filter = "[Datum] between " & Format(Nz(Me!txtVON, Date), "\#yyyy-mm-dd\#") & " and " & Format(Nz(Me!txtBIS, Date), "\#yyyy-mm-dd\#") & " and " & "lieferant like'" & Nz(Me!cboLieferant, "*")  & "'" & " AND Produktname Like '" & Nz(Me!cboProduktname, "*")  & "'"

ich hoffe mir kann jemand helfen.

vielen dank im voraus
Titel: Re: Formularfilter nach Zeitraum und weiteren Kriterien
Beitrag von: MzKlMu am Mai 25, 2016, 09:45:13
Hallo,
das hängt möglicherweise an dem Kombi (cboLieferant).
Wie lautet die Datenherkunft (Abfrage) dieses Kombis?
Zeigt das Kombi mehrere Spalten an ?
Titel: Re: Formularfilter nach Zeitraum und weiteren Kriterien
Beitrag von: AndiHo am Mai 25, 2016, 09:54:11
Hallo,
hab hier mal die Herkunft des Kombifeldes:

SELECT tblWiegeprotokolle.Lieferant FROM tblWiegeprotokolle GROUP BY tblWiegeprotokolle.Lieferant;
Titel: Re: Formularfilter nach Zeitraum und weiteren Kriterien
Beitrag von: MaggieMay am Mai 25, 2016, 10:29:25
Hallo,

da fehlt ein Leerzeichen nach dem ersten LIKE.

Und dann lass dir doch den generierten Filter erstmal per MsgBox oder Debug.Print anzeigen ehe du ihn einsetzt.
Titel: Re: Formularfilter nach Zeitraum und weiteren Kriterien
Beitrag von: AndiHo am Mai 25, 2016, 11:28:58
Hallo MaggieMay,
danke für deine Antwort, das Leerzeichen nach dem Like hab ich eingefügt.
und bei der Anzeige bei im VBA Direktbereich versteh ich nur Bahnhof. Hab mal Ergebnis hier angefügt.
Ist es das was du mit dem Debug.Print meintest?
Titel: Re: Formularfilter nach Zeitraum und weiteren Kriterien
Beitrag von: MaggieMay am Mai 25, 2016, 12:08:30
Wo hast du etwas angefügt??
Titel: Re: Formularfilter nach Zeitraum und weiteren Kriterien
Beitrag von: AndiHo am Mai 25, 2016, 12:15:51
ups, entschuldigung.

hier das Ergebnis, des Direktbereichs.

Debug.Print Me.Filter
[Datum] between and and lieferant like 'HCH Agrarservice GmbH' AND Produktname Like 'Gras'
Titel: Re: Formularfilter nach Zeitraum und weiteren Kriterien
Beitrag von: MaggieMay am Mai 25, 2016, 13:39:09
Das sieht so aus als wären die Datumsfelder leer, aber nicht NULL.
Wie kommt es dazu? Leerst du sie evtl. per VBA? Oder wie/wodurch werden sie gefüllt?

BTW:
Die Suche mit LIKE macht nur Sinn, wenn Suchmuster zum Einsatz kommen.
Andernfalls sollte der Vergleich mit "=" verwendet werden.
Titel: Re: Formularfilter nach Zeitraum und weiteren Kriterien
Beitrag von: MaggieMay am Mai 25, 2016, 14:24:10
Hallo,

es macht wenig Sinn zwei Foren gleichzeitig damit zu beschäftigen:
Formularfilter nach Zeitraum und weiteren Kriterien (http://www.office-loesung.de/p/viewtopic.php?f=167&t=718147&start=0#p2975348)
daher stelle ich meinen Support an dieser Stelle ein.