Seite 1 von 1
[gelöst]Parameterabfrage - Groß- und Kleinschreibung ignorieren
Verfasst: Fr, 05.08.2016 11:30
von Comkra
Hallo,
ich möchte in einer Datenbank Mandanten (Kunden) per Nachname suchen um sämtliche Informationen über den jeweils Gesuchten zu erhalten.
Mit folgender Abfrage funktioniert das bisher recht gut, jedoch sind manche Nachnamen komplett klein geschrieben, bei Anderen der erste oder die ersten zwei Buchstaben groß. Gibt es eine Möglichkeit, Groß- und Kleinschreibung bei der Parameterabfrage komplett zu ignorieren? Bisher muss ich dieses Problem mit Platzhaltern bei der Eingabe lösen, da ich bei der Suche nach "Müller" kein Ergebnis zu "müller" erhalte.
Code: Alles auswählen
SELECT * FROM "Mandanten" WHERE "Nachname" LIKE :Nachname
Mandanten.Nachname ist als Feldtyp Text[VARCHAR] erstellt und bei jedem Mandanten vorhanden.
Re: Parameterabfrage - Groß- und Kleinschreibung ignorieren
Verfasst: Fr, 05.08.2016 12:31
von nikki
Hallo,
Code: Alles auswählen
SELECT * FROM "Mandanten" WHERE LOWER("Nachname") LIKE :Nachname OR "Nachname" LIKE :Nachname
Re: Parameterabfrage - Groß- und Kleinschreibung ignorieren
Verfasst: Fr, 05.08.2016 12:34
von Comkra
Danke, jetzt funktioniert es!

Re: Parameterabfrage - Groß- und Kleinschreibung ignorieren
Verfasst: Fr, 05.08.2016 17:07
von RobertG
Hallo *,
hier noch die Kurzvariante:
Code: Alles auswählen
SELECT * FROM "Mandanten" WHERE LOWER("Nachname") LIKE LOWER(:Nachname)
wobei da die Verbindung mit LIKE keinen Sinn ergibt. Der ergibt sich erst, wenn nur nach Wortteilen gesucht werden soll:
Code: Alles auswählen
SELECT * FROM "Mandanten" WHERE LOWER("Nachname") LIKE '%'||LOWER(:Nachname)||'%'
Dann braucht nur ein Buchstabe eingegeben zu werden und alle Nachnamen mit dem entsprechenden Buchstaben erscheinen.
Gruß
Robert
Re: Parameterabfrage - Groß- und Kleinschreibung ignorieren
Verfasst: Mo, 08.08.2016 18:09
von Comkra
Hubsi56 hat geschrieben:sämtliche Informationen über den jeweils Gesuchten
Ich kann dich soweit beunruhigen, dass wenn du dafür per "Volltext" über alle Tabellen deiner Datenbank bzw. über mehr als ein Feld einer Tabelle suchen musst, deine Datenbank nicht gut aufgebaut ist. Jede Information sollte nur einmal vorkommen und über Beziehungen mit anderen Informationen verknüpft sein.
Google doch mal den Begriff "Normalform"!
Ich habe neben der Suche nach Mandanteninformationen natürlich auch z.B. eine Suche nach offenen Rechnungen eines Mandanten durch Eingabe des Nachnamens.
Hier frage ich aus einer Ansicht aller offenen Rechnungen den jeweiligen Nachnamen ab.
Sollte ich hierfür den Aufbau verändern? Die Abfragen müssen anwenderfreundlich sein, da das Sekretariat die Informationen so schnell wie möglich ermitteln muss. Daher laufen alle Abfragen wenn möglich über den Nachnamen des jeweiligen Mandanten.
RobertG hat geschrieben:Hallo *,
hier noch die Kurzvariante:
Code: Alles auswählen
SELECT * FROM "Mandanten" WHERE LOWER("Nachname") LIKE LOWER(:Nachname)
wobei da die Verbindung mit LIKE keinen Sinn ergibt. Der ergibt sich erst, wenn nur nach Wortteilen gesucht werden soll:
Code: Alles auswählen
SELECT * FROM "Mandanten" WHERE LOWER("Nachname") LIKE '%'||LOWER(:Nachname)||'%'
Dann braucht nur ein Buchstabe eingegeben zu werden und alle Nachnamen mit dem entsprechenden Buchstaben erscheinen.
Gruß
Robert
VIelen Dank! Die zweite Abfrage ist genau das was ich gesucht habe.

Re: [gelöst]Parameterabfrage - Groß- und Kleinschreibung ignorieren
Verfasst: Mo, 08.08.2016 21:45
von RobertG
Hallo Hubsi56,
Parameterabfragen müssen doch nicht nur als Abfragen gebraucht werden. Sie können auch in einem Unterformular eingebaut werden.
Hauptformular: 1 Tabelle mit nur einem Datensatz, der immer wieder überschrieben wird.
Unterformular: Parameterabfrage, Parameter verbunden mit einem Feld der Tabelle aus dem Hauptformular.
Außerdem im Unterformular ein Button zum Aktualisieren der Abfrage.
Im Hauptformular wird etwas eingetragen. Der Button aus dem Unterformular wird betätigt. Dadurch wird der Datensatz abgespeichert (Wechsel des Formulars) und das Unterformular auf den Wert aus dem Hauptformular eingestellt.
So ein Formular mit Datenfilterung ist den meisten anderen Suchfunktionen von der Schnelligkeit her deutlich überlegen.
Gruß
Robert