Hallo Jungs (und Mädels),
Ihr kennt alle den BASIC-Befehl INPUT, bei dem der Benutzer aufgefordert wird, den Inhalt für eine Variable einzugeben:
INPUT Name$;
Ich arbeite mit AOO 3.4.1 und dort mit Base und dort mit Abfragen in der Entwurfsansicht.
Für ein Feld namens Mitgliedsnummer mit Feldtyp [INTEGER] habe ich das hinbekommen: Einfach in die Zeile „Kriterium“ reinschreiben:
:Welche_Mitgliedsnummer
Dann öffnet sich beim Ausführen der Abfrage ein kleines Fenster, in dem der Benutzer eine Zahl reinschreiben muss. Danach erscheint eine Ergebnistabelle mit den Mitgliedern der entspr. Mitgliedsnummer.
Soweit so gut:
Das brauche ich jetzt für meine Abfrage mit Feldern vom Feldtyp TEXT [Varchar]. Außerdem soll die Abfrage nach LIKE filtern. Der Benutzer soll also ein Stichwort eingeben, z. B. „be“ und dann soll die Abfrage alle Mitglieder filtern, bei denen in Vorname „be“ enthalten ist, also auch "Bernd". Dabei soll Groß- und Kleischreibung keine Rolle spielen.
Ansatz 1:
WIE '*Be*'
Filtert zwar alle Mitglieder, in denen „Be“ vorkommt aber 1. abhängig von Groß- und Kleinschreibung und 2. muss ich „Be“ in der Abfrage vorgeben und kann nicht eine Benutzereingabe anfordern.
Ansatz 2:
:Welcher_Vorname
Fordert zwar eine Benutzereingabe an, jedoch muss der Benutzer 1. den kompletten Vornamen eingeben und 2. dabei auch noch die Groß- und Kleinschreibung beachten.
Ansatz 3:
WIE :Welcher_Name
Ergebnis wie Ansatz 2.
Einer ne Idee oder brauche ich ein Makro?
Gruß Bernd!
Suchabfrage mit Benutzereingabe, Filterabfrage, INPUT-Variab
Moderator: Moderatoren
Re: Suchabfrage mit Benutzereingabe, Filterabfrage, INPUT-Va
Hallo,
gem. Hilfe von LO ist folgedes :
Leider 
[Edit]
Also wird es wohl auf ein Makro hinauslaufen.
[/EDIT]
gem. Hilfe von LO ist folgedes :
Code: Alles auswählen
Parameterabfragen mit Platzhaltern (*, _) oder Sonderzeichen (z. B. ?) sind nicht möglich.

[Edit]
Also wird es wohl auf ein Makro hinauslaufen.
[/EDIT]
mfg
boser
linux suse 11.4 / 12.2 ; LibreOffice 3.4.2
boser
linux suse 11.4 / 12.2 ; LibreOffice 3.4.2
Re: Suchabfrage mit Benutzereingabe, Filterabfrage, INPUT-Va
Sieht so aus, was?
Wie würdet Ihr das angehen? Eingabeaufforderung krieg ich mit BASIC hin. Dann SQL-Befehl generieren, Abfrage ausführen ... Evtl. als Tabellenerstellungsabfrage um die Werte in einer Tabelle zwischen zu speichern?
Ich probier mal was und meld mich wieder, es sei denn es hat noch jemand ne Lösung ...
Bernd!
Wie würdet Ihr das angehen? Eingabeaufforderung krieg ich mit BASIC hin. Dann SQL-Befehl generieren, Abfrage ausführen ... Evtl. als Tabellenerstellungsabfrage um die Werte in einer Tabelle zwischen zu speichern?
Ich probier mal was und meld mich wieder, es sei denn es hat noch jemand ne Lösung ...
Bernd!
-
- ********
- Beiträge: 4330
- Registriert: Di, 22.06.2004 12:02
- Wohnort: 71134 Aidlingen
- Kontaktdaten:
Re: Suchabfrage mit Benutzereingabe, Filterabfrage, INPUT-Va
Hallo Bernd,
schau Dir diese Lösung viewtopic.php?f=8&t=60605 an. Dort findest Du das was Du benötigst.
Hinweis:
Der Platzhalter für SQL-Variablen ist das Prozentzeichen (%).
LOWER wandelt den Feldinhalt bei der Auswertung in Kleinbuchstaben um.
schau Dir diese Lösung viewtopic.php?f=8&t=60605 an. Dort findest Du das was Du benötigst.
Hinweis:
Der Platzhalter für SQL-Variablen ist das Prozentzeichen (%).
LOWER wandelt den Feldinhalt bei der Auswertung in Kleinbuchstaben um.
Gruß
Peter
---------------------------------------------------------------------------
Windows 7 Prof. 64-bit SP1, LibreOffice 4.3.6.2 und AOO 4.1.1
Peter
---------------------------------------------------------------------------
Windows 7 Prof. 64-bit SP1, LibreOffice 4.3.6.2 und AOO 4.1.1
Re: Suchabfrage mit Benutzereingabe, Filterabfrage, INPUT-Va
Damit keine Missverständnisse auftreten:
Ich hoffe, ich habe mich jetzt mit den vielfachen Anführungszeichen nicht vertan. Sicherer ist deshalb die Variante mit prepareStatement, siehe z.B. Hinweis von DPunch. Er schreibt dort:
Gruß Jürgen
Das Prozentzeichen ist der Platzhalter für variable Werte bei LIKE (Peter meint mit Sicherheit nichts anderes, ich wollte es nur betonen):pmoegenb hat geschrieben:Hinweis:
Der Platzhalter für SQL-Variablen ist das Prozentzeichen (%).
Code: Alles auswählen
... WHERE LOWER("Name") LIKE """ & InputFeld.Text & "%"""
Auch die Formatierung mit Anführungszeichen sollte man dem Datenbanktreiber überlassen.Anstatt sich selber mit Datumsformaten rumzuschlagen, überlasst man sowas lieber dem Datenbanktreiber.
Gruß Jürgen
Situation: LibO 3.6 auf Win 7 Home Premium (64-bit) mit MySQL (localhost) über JDBC