Hallo
habe auch dieses mal ein Problem und hoffe, dass ihr mir wieder mal weiterhelfen könnt:
Ich habe ein Formular erstellt, aus dem der Anwender (eine einfache Suche oder) eine erweiterte Suche starten kann.
Bei der erweiterten Suche hat er die Möglichkeit „Verfasser“ „Datum“ „Kategorie1“ „Kategorie2“ „Kategorie3“ auszuwählen. Außerdem können noch zusätzlich Suchbegriffe eingegeben werden (die dann mit den Schlagwörtern der DB abgeglichen werden).
Ich frage mich gerade wie die einzelnen Kriterien miteinander verknüpft werden müssen, denn der Anwender kann beliebige felder der erweiterten Suche ausfüllen oder auch offen lassen…
Im Folgenden habe ich die SQL-Abfrage eingefügt, die nur nach den eingegebenen Suchbegriff sucht ( Werden mit der unten schreibweise mehrere eingegebene Suchbegriffe berücksichtigt oder nur einer???)
Der Suchbegriff wird mit dem Titel, Verfasser, mit den einzelnen Kategorien abgeglichen. Außerdem soll in den Schlagwörtern (SW1, SW2…) ein ähnlicher ausdruck gesucht werden.
SQL = "SELECT Tab_Datei.D_Titel, Tab_Datei.D_Verfasser, Tab_Datei.D_Datum, Tab_Datei.D_Ort, Kategorie.K_Dokb "
SQL = SQL + „FROM Tab_Datei, Tab_Kategorie“
SQL = SQL + „WHERE Tab_Datei.D_Titel LIKE '*“ & Me!Feld_Suchbegriff_erw.Value & „*’ ;“
SQL = SQL + „OR Tab_Datei.D_Verfasser LIKE '*“ & Me!Suchbegriff_erw.Value & „*’ ;“
SQL = SQL + „OR Tab_Kategorie.Kat_1 LIKE '*“ & Me!Suchbegriff_erw.Value & „*’ ;“
SQL = SQL + „OR Tab_Kategorie.Kat_2 LIKE '*“ & Me!Suchbegriff_erw.Value & „*’ ;“
SQL = SQL + „OR Tab_Kategorie.Kat_3 LIKE '*“ & Me!Suchbegriff_erw.Value & „*’ ;“
SQL = SQL + „OR Tab_Datei.D_SW1 LIKE '*“ & Me!Suchbegriff_erw.Value & "*’ ; " ‚ab hier werden die Schlagwörter mit dem Suchbegriff abgeglichen
SQL = SQL + „OR Tab_Datei.D_SW2 LIKE '*“ & Me!Suchbegriff_erw.Value & "*‘ ; "
Meine Frage: wie erweitere ich die o.stehende SQL-Abfrage (die ja nur den Suchbegriff betrachtet) so, dass alle Fälle, - d.h.sowohl die Möglichkeit, dass noch ein bestimmter Verfasser, eine bestimmte Kategorie, Dateityp… eingegeben wurden - gedeckt sind, dh. wenn der Anwender nun bspw. Kategorie1 und Kategorie2 und einen Suchbegriff eingibt? Oder wenn der Anwender nur einen Suchbegriff und einen gewüschten Datentyp eingbit?
Wie muss ich das hier einbauen? reicht es, wenn ich die obere Anfrage so erweitere, dass ich die nötigen Befehle einfach mit „OR“ dranhänge?
z.B.
SQL = SQL + "OR Tab_Kategorie.Kat_1 = Me.Kat_1.Value "
SQL = SQL + "OR Tab_Kategorie.Kat_2 = Me.Kat_2.Value "
SQL = SQL + "OR Tab_Kategorie.Kat_3 = Me.Kat_3.Value "
muss ich hier dann noch mögliche kategoriekombinationen berücksichtigen??? zb:
’ Anfrage nach Kategorie 1 & 2 oder 1 & 3 oder 2 & 3
SQL = SQL + „OR (Tab_Kategorie.Kat_1 = Me.Kat_1.Value AND Kategorie.Kat_2 = Me.Kat_2.Value)“
SQL = SQL + " OR (Tab_Kategorie.Kat_1 = Me.Kat_1.Value AND Kategorie.Kat_3 = Me.Kat_3.Value)"
SQL = SQL + " OR (Tab_Kategorie.Kat_2 = Me.Kat_2.Value AND Kategorie.Kat_3 = Me.Kat_3.Value)"
Wird eigentlich in den genannten anfragen jedes Kritierium (welches mit OR beginnt) welches den wert „true“ wiedergibt, in der ergebnisliste ausgegeben???
Wie müssen die Verknüpfungen sein, so dass alle Fälle abgedeckt sind? Auf was muss ich achten?
Danke im Voraus