SQL MS Access Suchmaske

Lost_Byte

Admiral
Registriert
Mai 2007
Beiträge
8.094
Hallo,
ich versuche unter Access eine Suchmaske für eine Literaturdatenbank zu erstellen und stehe noch vor ein paar kleinen Problemen.
Die Datenbank enthält unter anderem die Spalten
Thema
Thema 2
Titel

Die Suchmaske enthält derzeit die Eingabefelder
Suchthema
Suchtitel

Ich möchte entweder bei beiden etwas eingeben können und beide Felder als Restriktion gelten lassen oder wenn eins leer ist, dieses einfach ignorieren.

Meine Überlegung war, dass ich einfach pauschal sage, dass nach dem eingegebenen Begriff gesucht wird und durch die Sternchen davor und dahinter sicher gestellt wird, dass wenn nichts eingegeben ist dort nach allem gesucht wird. Leider bleibt dann aber mein Ergebnisfeld leer, obwohl es nicht leer sein dürfte. Welchen Fehler mache ich bei der Überlegung?

Code:
SELECT *
FROM Suchquery
WHERE ([Suchquery]![Thema] LIKE  "*"+[Forms]![Suchmaske]![Suchthema] +"*" OR [Suchquery]![Thema 2] LIKE  "*"+[Forms]![Suchmaske]![Suchthema] +"*")
AND [Suchquery]![Titel] LIKE "*"+[Forms]![Suchmaske]![Suchtitel]+"*";

Mein 2. Problem ist, dass der Query nuraktualisiert wird, wenn ich den Query öffne und dann ausführe. Wenn ich hingegen "OpenQuery" als Makro hinterlege für den Suchbutton, dann werden die Suchbegriffe nicht für die Querrysuche übernommen. (Ist ja klar. Ich öffne den nur). Aber welches ist dann der richtige Makrobefehl um die Suche zu aktualisieren?

Danke schon einmal für eure Hilfe
 
Hallo Lost_Byte,

Ich würde das mit VBA lösen, da Makros kaum brauchbare Krücken sind. Wenn Du gewillt bist mir die Access DB mit evtl. anonymisierten Daten gezippt per E-Mail zuzusenden, kann ich versuchen eine Lösung zu finden.

Weiterhin viel Freude mit Access - ich verwende Access seit Office 4.n.
 
Das Problem mit den leeren Suchfeldern habe ich jetzt gelöst.
Fehlt nur noch das Ausführen des SQL Codes bevor der Query angezeigt wird
Code:
SELECT *
FROM Literatur
WHERE IIf(Forms!Suchmaske!Suchthema Is Not Null,Forms!Suchmaske!Suchthema In (Literatur!Thema,Literatur![Thema 2]),"*")
And IIf(Forms!Suchmaske!Suchtitel Is Not Null,(Literatur!Titel Like "*"+Forms!Suchmaske!Suchtitel+"*"),"*")
ORDER BY Literatur.Jahrgang DESC;
 
Zurück
Oben