Access-o-Mania

Access-Forum (Deutsch/German) => Tabelle/Abfrage => Thema gestartet von: ernie55 am Mai 22, 2019, 17:16:34

Titel: Listbox mit Suche nach mehreren ungeordneten Kriterien
Beitrag von: ernie55 am Mai 22, 2019, 17:16:34
      Grüezi mitenand

In Verschiedenen verknüpften Tabellen möchte ich nach mehreren Kriterien filtern und dem Anwender in einer Listbox zur Endauswahl vorschlagen. Dazu fülle ich mittels Tastatureingabe ein erstes Textfeld im Formular. Aus diesem generiere den Suchstring im Textfeld << txtSuchString >>. Zur Trennung der Begriffe verwende ich Trennzeichen. Anstelle dieser entstht dann der Suchbegriff wie z.B. <<Like "*zür*" And Like "*berg*">>
Aber ich bringe das nicht einmal mit den folgenden stark vereinfachten Datensätzen hin.


Meine Modell-Tabelle (bzw in Realität eine Abfrage)




Meier   Steiner   Spitzenwiesstr. 1   8717   Willisau
Müller   Max   Im Chlausacher   8307   Basel
Huber   Fritz   Wald   9534   Zürich
Zürcher   Willi   Rietstuck 7   8733   Berg
Müller   Emil   Niederbauen 12   9600   Zürichberg
Frei   Norbert   Langwies 1595   8722   Bergdietikon
(sorry irgendwie bringe ich hier die Tabelle nicht richtig hin)


Mein Ziel:
Ich möchte die Datensätze auch mit Bruchstücken von Suchbegriffen filtern
Mein Suchbegriff: <<Like "*zür*" And Like "*berg*">>

Erwartete Ausgabe:
Zürcher   Willi   Rietstuck 7   8733   Berg
Müller   Emil   Niederbauen 12   9600   Zürichberg

Dazu erstelle ich folgende Abfrage:
SELECT T_Käufer.K_Name, T_Käufer.K_Vorname
FROM T_Käufer
WHERE ((([K_Name] & [K_Vorname] & [K_Adresse1] & [K_Strasse] & [K_plz] & [K_Ort] & [K_Bemerkungen]) Like "*zür*" And ([K_Name] & [K_Vorname] & [K_Adresse1] & [K_Strasse] & [K_plz] & [K_Ort] & [K_Bemerkungen]) Like "*berg*" And ([K_Name] & [K_Vorname] & [K_Adresse1] & [K_Strasse] & [K_plz] & [K_Ort] & [K_Bemerkungen]) Like "*versuch*"));

Nehme ich obige Abfrage als Datenquelle für die Listbox ist alles i.O.

Versuche ich jedoch in obiger Abfrage das WHERE Kriterium mit dem Textfeld << txtSuchString >> im Formular zu füllen so erhalte ich als Resultat nichts. Der Inhalt des Textfeldes << txtSuchString >> lautet:  << Like '*zür*' AND like '*berg*'>>

Die Abfrage lautet folglich:
SELECT T_Käufer.K_Name, T_Käufer.K_Vorname
FROM T_Käufer
WHERE ((([K_Name] & [K_Vorname] & [K_Adresse1] & [K_Strasse] & [K_plz] & [K_Ort] & [K_Bemerkungen])=[Forms]![F_Such_Versuche]![txtSuchString]));

Wo steckt der Bock?

Schöne Grüsse aus dem (jetzt gerade nicht) sonnigen Appenzellerland

Titel: Re: Listbox mit Suche nach mehreren ungeordneten Kriterien
Beitrag von: DF6GL am Mai 22, 2019, 17:39:47
Hallo,

das geht so nicht.

Es ist nicht möglich,  Operatoren  ("Like") und Werte ( "*zür*") in einem einzigen Kriterien-String zu mischen und diesen String mit "=" als Kriterienausdruck zu verwenden.


Es müsste der komplette Kriterien-String  (Where-Condition) mit VBA zu einem SQl-Staement zusammengebaut werden.