Moin,
pmoegenb hat geschrieben:Was soll der Blödsinn mit Parameter Is Null ?
na, mal immer langsam. Das SQL-Statement lautete mit ziemlicher Sicherheit einmal so:
Code: Alles auswählen
SELECT
"Id",
"Nachname",
"Vorname",
"Studiengang",
"Ort"
FROM
"SE-Datenbank"
WHERE
( LOWER ( "Nachname" ) LIKE LOWER ( :qNachname || '%' ) OR :qNachname IS NULL)
AND
(LOWER ( "Vorname" ) LIKE LOWER ( :qVorname || '%' ) OR :qVorname IS NULL)
AND
(LOWER ( "Studiengang" ) LIKE LOWER ( :qStudiengang || '%' ) OR :qStudiengang IS NULL)
AND
(LOWER ("Ort") LIKE LOWER (:qOrt || '%' ) OR :qOrt IS NULL)
und wurde einmal
mit der grafischen Benutzeroberfläche zur Abfrageerstellung
geöffnet.
Dadurch wurde es
zerschossen, und ist kaum noch zu verstehen.
Es dient der Filterung eines Unterformulares, wenn die Parameter z.B. aus einer Filtertabelle übergeben werden.
In diesem Fall wären an die Filtertabelle vier Kontrollfelder gebunden, die die vier Filterkriterien in die Filtertabelle eintragen, das Unterformular ist über die Parameter mit den Filterfeldern verknüpft und bleibt voll beschreibbar. Dabei hat
die Funktion, dass leere Filterkriterien nicht berücksichtigt werden, d.h.
keine Eingabe im Filterfeld
Ort führt zur Anzeige aller gefilterten Datensätze, ohne Filterung nach Ort, weil in der Filtertabelle wirklich NULL steht, wenn in das Kontrollfeld nichts eingegeben wird.
Es handelt sich hierbei um eine im
englischen Forum unter anderen, vom USER VILLEROY, ein Genie in meinen Augen, und inzwischen auch von mir, propagierte Methode zum Filtern in Formularen.
Du kannst dir die Methode gerne im Videotutorial 3-5 (s.u.) ansehen.
Das es Probleme gibt, wenn man eine solche Abfrage nicht im Formular benutzt, sondern per Doppelklick öffnet, weil der Parametereingabedialog bei Nichteingabe eines Parameters, wie Robert schreibt, nicht NULL sondern einen leeren String übergibt, ist unglücklich.
Gruß Rik