BITTE helfen Sie uns HEUTE mit einer SPENDE
Helfen Sie das LibreOffice Forum zu erhalten!
> KEINE WERBUNG FÜR REGISTRIERTE BENUTZER!<
Ihre Spende wird für die Deckung der laufenden Kosten sowie den Erhalt und Ausbau 🌱 des LibreOffice Forums verwendet.
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗
[gelöst] Formular mit ungefährem Filterfeld?
-
- Beiträge: 2674
- Registriert: Mo 12. Nov 2012, 16:59
[gelöst] Formular mit ungefährem Filterfeld?
Hallo Experten,
Ich habe ein funktionierendes (!) Formular, welches aus einer sortierten Abfrage einer Tabelle gespeist wird.
Dieses Formular enthält mehrere Textfalder und ein grafisches Feld, welches Fotografien zeigt, deren Name (in der Abfrage bzw. Tabelle) verlinkt sind.
Da ich nunmehr alle Datensätze (sortiert nach Name) angeboten bekomme und durchschalten muß, wäre es schön und sinnvoll, wenn man mit einem Suchfeld, in das man einen Teil des Namens eintippt, filterartig auf die Datensätze einschränkt, deren Namen zutreffend sind.
1. Geht so etwas ohne großen Aufwand, ohne Makro usw. ?
2. Was für ein Feld muß ich im Formular einfügen (mir macht das Unwissen über die Terminologie Schwierigkeiten)?
3. Wo wird der eingetippte Text zwischen- oder endgültig gespeichert (in derselben Tabelle oder Abfrage oder vielleicht gar nicht) ?
Danke für Antwort!
Ich habe ein funktionierendes (!) Formular, welches aus einer sortierten Abfrage einer Tabelle gespeist wird.
Dieses Formular enthält mehrere Textfalder und ein grafisches Feld, welches Fotografien zeigt, deren Name (in der Abfrage bzw. Tabelle) verlinkt sind.
Da ich nunmehr alle Datensätze (sortiert nach Name) angeboten bekomme und durchschalten muß, wäre es schön und sinnvoll, wenn man mit einem Suchfeld, in das man einen Teil des Namens eintippt, filterartig auf die Datensätze einschränkt, deren Namen zutreffend sind.
1. Geht so etwas ohne großen Aufwand, ohne Makro usw. ?
2. Was für ein Feld muß ich im Formular einfügen (mir macht das Unwissen über die Terminologie Schwierigkeiten)?
3. Wo wird der eingetippte Text zwischen- oder endgültig gespeichert (in derselben Tabelle oder Abfrage oder vielleicht gar nicht) ?
Danke für Antwort!
Zuletzt geändert von Pit Zyclade am Fr 1. Jul 2022, 18:29, insgesamt 1-mal geändert.
LO 7.5.8.2 (X86_64) / AOO 4.1.14 / Windows 11 64bit
Problem gelöst? Dann bitte im Betreff der ersten Nachricht [gelöst] voranstellen.
Problem gelöst? Dann bitte im Betreff der ersten Nachricht [gelöst] voranstellen.
Re: Formular mit ungefährem Filterfeld?
Hallo Pit,
zuerst einmal: Es geht ohne Makros.
Erstelle eine Tabelle "Filter", die aus 2 Feldern besteht: "ID" → Ja/Nein-Feld (als Primärschlüssel) und "Suche" → Varchar(50)
Öffne die Tabelle und Klicke einmal in "ID". Damit ist der erste Datensatz erstellt.
Dein Formular basiert bereits auf einer Abfrage. Hier müssen jetzt die Verbindungen zur Tabelle "Filter" rein. Jetzt gehe ich einmal von einem Feld "Beschreibung" in Deiner Abfrage aus:
Für jedes Feld sollte dieser Code entsprechend drin stehen. Die einzelnen Felder sind über OR miteinander zu verbinden, damit der Treffer nicht in allen Feldern mit Text liegen muss.
Jetzt baust Du in Dein Formulardokument noch ein zusätzliches Formular "Filter" neben dem anderen Formular für Deine Abfrage ein. Das bezieht sich auf die Tabelle "Filter" und soll nur das Feld "Suche" enthalten. Das Formular soll immer nur den Datensatz mit "ID"=True überschreiben - also nicht löschen, keinen neuen Datensatz, nur ändern.
In Dein Formular für die Abfrage baust Du einen Button, der "Formular aktualisieren" erfüllt. Den schiebst Du direkt neben das Feld, das Du für "Suche" erstellt hast.
Trägst Du jetzt einen neuen Suchbegriff ein und drückst auf den Button, dann wird der Suchbegriff gespeichert und das Formular mit der Abfrage darauf neu eingestellt.
Gruß
Robert
zuerst einmal: Es geht ohne Makros.
Erstelle eine Tabelle "Filter", die aus 2 Feldern besteht: "ID" → Ja/Nein-Feld (als Primärschlüssel) und "Suche" → Varchar(50)
Öffne die Tabelle und Klicke einmal in "ID". Damit ist der erste Datensatz erstellt.
Dein Formular basiert bereits auf einer Abfrage. Hier müssen jetzt die Verbindungen zur Tabelle "Filter" rein. Jetzt gehe ich einmal von einem Feld "Beschreibung" in Deiner Abfrage aus:
Code: Alles auswählen
SELECT … FROM … WHERE … AND (LOWER("Beschreibung") LIKE '%'||COALESCE((SELECT LOWER("Suche") FROM "Filter" WHERE "ID" = True),'')||'%' OR …) ORDER BY …
Jetzt baust Du in Dein Formulardokument noch ein zusätzliches Formular "Filter" neben dem anderen Formular für Deine Abfrage ein. Das bezieht sich auf die Tabelle "Filter" und soll nur das Feld "Suche" enthalten. Das Formular soll immer nur den Datensatz mit "ID"=True überschreiben - also nicht löschen, keinen neuen Datensatz, nur ändern.
In Dein Formular für die Abfrage baust Du einen Button, der "Formular aktualisieren" erfüllt. Den schiebst Du direkt neben das Feld, das Du für "Suche" erstellt hast.
Trägst Du jetzt einen neuen Suchbegriff ein und drückst auf den Button, dann wird der Suchbegriff gespeichert und das Formular mit der Abfrage darauf neu eingestellt.
Gruß
Robert
https://de.libreoffice.org/get-help/documentation/
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=base_handbuch
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=xml_formulare
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=base_handbuch
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=xml_formulare
-
- Beiträge: 2674
- Registriert: Mo 12. Nov 2012, 16:59
Re: Formular mit ungefährem Filterfeld?
Hallo Robert,
Du bist wie immer der Schnellste. Ich bin, so hoffe ich, sofort bis in die Nacht Deinen Vorschlägen gefolgt, aber war schrecklich müde und nicht so erfolgreich.
Die Tabelle "Filter" konnte ich erstellen. ID mit Ja/Nein-Feld war für mich ungewöhnlich. Wusste bis heute nicht, dass das geht.
Auch die Ännderung in der Abfrage war möglich, obwohl ich kein WHERE vorher hatte und folglich kein AND brauchte:
SELECT "ID" AS "ID", "erworben am" AS "erworben am", "Name der Pflanze" AS "Name der Pflanze", "deutscher Name", "Fotografie" AS "Fotografie", "Anmerkung" AS "Anmerkung" FROM "Tabelle1" WHERE ( LOWER ( "Name der Pflanze" ) LIKE '%' || COALESCE ( ( SELECT LOWER ( "Suche" ) FROM "Filter" WHERE "ID" = TRUE ), '' ) || '%' ) OR ( LOWER ( "deutscher Name" ) LIKE '%' || COALESCE ( ( SELECT LOWER ( "Suche" ) FROM "Filter" WHERE "ID" = TRUE ), '' ) || '%' ) ORDER BY "Name der Pflanze" ASC
Es kam kein Protest!
Leider war nach Fertigstellung die Hierarchie futsch und statt Zahlen unter ID erschienen "WAHR" oder "FALSCH" (für die zwei Datensätze) und die Fotos werden nicht mehr gewechselt. Ich habe das Formular korrigiert, so dass die ursprüngliche Funktionalität da ist.
Aber das Ziel mit der Filtersuche geht gar nicht.
Du bist wie immer der Schnellste. Ich bin, so hoffe ich, sofort bis in die Nacht Deinen Vorschlägen gefolgt, aber war schrecklich müde und nicht so erfolgreich.
Die Tabelle "Filter" konnte ich erstellen. ID mit Ja/Nein-Feld war für mich ungewöhnlich. Wusste bis heute nicht, dass das geht.
Auch die Ännderung in der Abfrage war möglich, obwohl ich kein WHERE vorher hatte und folglich kein AND brauchte:
SELECT "ID" AS "ID", "erworben am" AS "erworben am", "Name der Pflanze" AS "Name der Pflanze", "deutscher Name", "Fotografie" AS "Fotografie", "Anmerkung" AS "Anmerkung" FROM "Tabelle1" WHERE ( LOWER ( "Name der Pflanze" ) LIKE '%' || COALESCE ( ( SELECT LOWER ( "Suche" ) FROM "Filter" WHERE "ID" = TRUE ), '' ) || '%' ) OR ( LOWER ( "deutscher Name" ) LIKE '%' || COALESCE ( ( SELECT LOWER ( "Suche" ) FROM "Filter" WHERE "ID" = TRUE ), '' ) || '%' ) ORDER BY "Name der Pflanze" ASC
Es kam kein Protest!
War nicht so trivial. Habe zum ersten Mal den Formularnavigator benutzt. Im Gegensatz zum Handbuchbeispiel erzielte ich erst auf der Stufe "MainForm" , auf der alle meine bisherigen Felder verankert waren, unterhalb "Formulare", Erfolg, bevor ich dann mit "Feld einfügen" die beiden neuen Felder "Suche" und "Optionsfeld" (anstelle Button ?) "aktualisieren" einfügen konnte. (Auf dem oberen Niveau Formulare kommt man mit "neu" nicht zum Einfügen der Felder!)... Jetzt baust Du in Dein Formulardokument noch ein zusätzliches Formular "Filter" neben dem anderen Formular für Deine Abfrage ein. Das bezieht sich auf die Tabelle "Filter" und soll nur das Feld "Suche" enthalten. Das Formular soll immer nur den Datensatz mit "ID"=True überschreiben - also nicht löschen, keinen neuen Datensatz, nur ändern.
Leider war nach Fertigstellung die Hierarchie futsch und statt Zahlen unter ID erschienen "WAHR" oder "FALSCH" (für die zwei Datensätze) und die Fotos werden nicht mehr gewechselt. Ich habe das Formular korrigiert, so dass die ursprüngliche Funktionalität da ist.
Aber das Ziel mit der Filtersuche geht gar nicht.
LO 7.5.8.2 (X86_64) / AOO 4.1.14 / Windows 11 64bit
Problem gelöst? Dann bitte im Betreff der ersten Nachricht [gelöst] voranstellen.
Problem gelöst? Dann bitte im Betreff der ersten Nachricht [gelöst] voranstellen.
-
- Beiträge: 2674
- Registriert: Mo 12. Nov 2012, 16:59
Re: Formular mit ungefährem Filterfeld?
@RobertG
Kannst du mir helfen und meinen Fehler sehen?
Kannst du mir helfen und meinen Fehler sehen?
LO 7.5.8.2 (X86_64) / AOO 4.1.14 / Windows 11 64bit
Problem gelöst? Dann bitte im Betreff der ersten Nachricht [gelöst] voranstellen.
Problem gelöst? Dann bitte im Betreff der ersten Nachricht [gelöst] voranstellen.
Re: Formular mit ungefährem Filterfeld?
Hallo Pit,
nach dem Erstellen der Abfrage: Erst einmal etwas in die Filtertabelle unter "Suche" eintragen und testen. - Das passt bei Dir
Dann das neue Formular neben dem Formular "MainForm" erstellen. Das passte nicht, konnte ich aber verschieben.
Jetzt brauchst Du kein Optionsfeld, sondern eine Schaltfläche. Und die im "MainForm". Die soll "MainForm" aktualisieren.
Ich habe das einmal bei dem vorliegenden Formular getestet. Ich erreiche aus irgendwelchen Gründen nicht einmal das Feld für die Suche mit einem Cursor… Da muss ich noch etwas schauen, was da wohl schief geht. Gefunden: Das Beschriftungsfeld für "Suche" war zu breit und ragte damit über das Eingabefeld. So konnte ich den Cursor nicht an den Anfang des Feldes positionieren.
Schau auch einmal die Einstellung des Formulars "Suche" an. Da ist jetzt alles ausgeschaltet, was die Eingabe eines neuen Datensatzes oder das Löschen des alten Datensatzes ermöglichen könnte. Du kannst lediglich ein leeres Feld oder eben Inhalt in dem Datensatz mit ID = WAHR speichern.
Gruß
Robert
nach dem Erstellen der Abfrage: Erst einmal etwas in die Filtertabelle unter "Suche" eintragen und testen. - Das passt bei Dir
Dann das neue Formular neben dem Formular "MainForm" erstellen. Das passte nicht, konnte ich aber verschieben.
Jetzt brauchst Du kein Optionsfeld, sondern eine Schaltfläche. Und die im "MainForm". Die soll "MainForm" aktualisieren.
Ich habe das einmal bei dem vorliegenden Formular getestet. Ich erreiche aus irgendwelchen Gründen nicht einmal das Feld für die Suche mit einem Cursor… Da muss ich noch etwas schauen, was da wohl schief geht. Gefunden: Das Beschriftungsfeld für "Suche" war zu breit und ragte damit über das Eingabefeld. So konnte ich den Cursor nicht an den Anfang des Feldes positionieren.
Schau auch einmal die Einstellung des Formulars "Suche" an. Da ist jetzt alles ausgeschaltet, was die Eingabe eines neuen Datensatzes oder das Löschen des alten Datensatzes ermöglichen könnte. Du kannst lediglich ein leeres Feld oder eben Inhalt in dem Datensatz mit ID = WAHR speichern.
Gruß
Robert
- Dateianhänge
-
- MeinePflanzen2.zip
- (2.49 MiB) 68-mal heruntergeladen
https://de.libreoffice.org/get-help/documentation/
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=base_handbuch
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=xml_formulare
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=base_handbuch
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=xml_formulare
-
- Beiträge: 2674
- Registriert: Mo 12. Nov 2012, 16:59
Re: Formular mit ungefährem Filterfeld?
SQL -> ja
Filter -> ("Filter"."ID" = TRUE )
Daten hinzu -> nein
Daten ändern -> ja
Daten löschen -> nein
Nur Daten hinzufügen -> nein
Symbolleiste Navigation -> nein
Zyklus -> Aktueller Datensatz
Ja, das funktioniert bestens. Du bist genial und ich habe, um die Erfahrung nicht zu vergessen, hier noch einmal alles aufgeschrieben. Vielleicht lernt auch jemand anderes davon.
Danke
LO 7.5.8.2 (X86_64) / AOO 4.1.14 / Windows 11 64bit
Problem gelöst? Dann bitte im Betreff der ersten Nachricht [gelöst] voranstellen.
Problem gelöst? Dann bitte im Betreff der ersten Nachricht [gelöst] voranstellen.
-
- Beiträge: 2674
- Registriert: Mo 12. Nov 2012, 16:59
Re: [gelöst] Formular mit ungefährem Filterfeld?
Ja, ich bin mit deiner Lösung SEHR zufrieden und habe auch ein zweites "Projekt" erfolgreich damit "frisiert".
Aber heute bin ich auf eine eigenartige Situation gestoßen, die mich verwunderte, andererseits habe ich auf die Schnelle einen Ausweg gefunden:
Wir (meine Frau & ich) hatten in dieser Pflanzendatei im Formular (wo sich ja auch der Suchen-Knopf befindet) die neuen Bilder (je ein Bild je neuen Datensatz) verlinkt eingetragen und gesichert. Dabei hatten wir noch keinen Pflanzennamen, weder den lateinischen noch den deutschen eingetragen, also in diese beiden Felder, auf die ja die Suche zugreift, noch gar nichts eingeschrieben.
Im Resultat ist alles richtig in der Tabelle. Aber in der Abfrage und im Formular hingegen tauchen die neuen Datensätze überhaupt nicht auf!
Der Ausweg ist, provisorisch in eines der beiden Namens-Felder gleich während des Bild-Verlinkens im Formular oder nachträglich in der Tabelle Ziffern (1...n) einzutragen. Die kann man dann im Formular nachträglich editieren.
Das Arbeiten und Editieren im Formular ist wegen des Pflanzen-Fotos nur dort komfortabel.
Habe die Lösung selber gefunden:
Zu den funktionierenden Suchbedingungen musste ich nur die (SQL-)Zeile zufügen:
OR ("Name der Pflanze" IS NULL AND "deutscher Name" IS NULL)
Aber heute bin ich auf eine eigenartige Situation gestoßen, die mich verwunderte, andererseits habe ich auf die Schnelle einen Ausweg gefunden:
Wir (meine Frau & ich) hatten in dieser Pflanzendatei im Formular (wo sich ja auch der Suchen-Knopf befindet) die neuen Bilder (je ein Bild je neuen Datensatz) verlinkt eingetragen und gesichert. Dabei hatten wir noch keinen Pflanzennamen, weder den lateinischen noch den deutschen eingetragen, also in diese beiden Felder, auf die ja die Suche zugreift, noch gar nichts eingeschrieben.
Im Resultat ist alles richtig in der Tabelle. Aber in der Abfrage und im Formular hingegen tauchen die neuen Datensätze überhaupt nicht auf!
Der Ausweg ist, provisorisch in eines der beiden Namens-Felder gleich während des Bild-Verlinkens im Formular oder nachträglich in der Tabelle Ziffern (1...n) einzutragen. Die kann man dann im Formular nachträglich editieren.
Das Arbeiten und Editieren im Formular ist wegen des Pflanzen-Fotos nur dort komfortabel.
Habe die Lösung selber gefunden:
Zu den funktionierenden Suchbedingungen musste ich nur die (SQL-)Zeile zufügen:
OR ("Name der Pflanze" IS NULL AND "deutscher Name" IS NULL)
LO 7.5.8.2 (X86_64) / AOO 4.1.14 / Windows 11 64bit
Problem gelöst? Dann bitte im Betreff der ersten Nachricht [gelöst] voranstellen.
Problem gelöst? Dann bitte im Betreff der ersten Nachricht [gelöst] voranstellen.
-
- Beiträge: 2674
- Registriert: Mo 12. Nov 2012, 16:59
Re: [gelöst] Formular mit ungefährem Filterfeld?
Ich habe mir eine mehrfach überarbeitete Kurzanleitung für Nachnutzer abgerungen:
LO 7.5.8.2 (X86_64) / AOO 4.1.14 / Windows 11 64bit
Problem gelöst? Dann bitte im Betreff der ersten Nachricht [gelöst] voranstellen.
Problem gelöst? Dann bitte im Betreff der ersten Nachricht [gelöst] voranstellen.
Re: [gelöst] Formular mit ungefährem Filterfeld?
Ich fand damals dieses Video extrem hilfreich,
da ich damit die Hierarchie im Navigator und die Möglichkeit komplette (Unter-)Formulare zu verschieben begriffen habe.
https://youtu.be/Jy9CV1yD7ew
Autor Lucky Müller/ Base Tutorial Serie
da ich damit die Hierarchie im Navigator und die Möglichkeit komplette (Unter-)Formulare zu verschieben begriffen habe.
https://youtu.be/Jy9CV1yD7ew
Autor Lucky Müller/ Base Tutorial Serie
LO 6.0.7 (32Bit) Win8.1 Pro 32 Bit/ LO 6.3.2 Win10 64Bit / LO 6.0.7 Win7 Pro 64 Bit
-
- Beiträge: 2674
- Registriert: Mo 12. Nov 2012, 16:59
Re: [gelöst] Formular mit ungefährem Filterfeld?
Danke für den Link. Ich habe mir dieses Video angeschaut, obwohl ich gar kein Youtuber bin.
Im Resultat hat er aber keineswegs einen wesentlichen Schritt mehr erreicht als ich. Ob der Unterschied nötig war, kann ich noch nicht begreifen. Wahrscheinlich ist es nur eine Alternative.
Videodarstellungen oder Bildersammlungen können manche Lücke im Verständnis füllen, aber schriftliche Beschreibungen sind nach meiner Erfahrung notwendig. Das einzige Hauptproblem bleibt das menschliche Fassungsvermögen. Der eine liebt das ausführlichste Handbuch, der andere (wozu ich wohl gehöre) die prägnantere Kurzfassung, die auf das anstehende Problem zugeschnitten ist. So stümpert man sich durchs Leben. Jeder nach seiner Fasson.
Im Resultat hat er aber keineswegs einen wesentlichen Schritt mehr erreicht als ich. Ob der Unterschied nötig war, kann ich noch nicht begreifen. Wahrscheinlich ist es nur eine Alternative.
Videodarstellungen oder Bildersammlungen können manche Lücke im Verständnis füllen, aber schriftliche Beschreibungen sind nach meiner Erfahrung notwendig. Das einzige Hauptproblem bleibt das menschliche Fassungsvermögen. Der eine liebt das ausführlichste Handbuch, der andere (wozu ich wohl gehöre) die prägnantere Kurzfassung, die auf das anstehende Problem zugeschnitten ist. So stümpert man sich durchs Leben. Jeder nach seiner Fasson.
LO 7.5.8.2 (X86_64) / AOO 4.1.14 / Windows 11 64bit
Problem gelöst? Dann bitte im Betreff der ersten Nachricht [gelöst] voranstellen.
Problem gelöst? Dann bitte im Betreff der ersten Nachricht [gelöst] voranstellen.
An alle, die das LibreOffice-Forum nutzen:
Bitte beteiligen Sie sich mit 7 Euro pro Monat und helfen uns bei unserem Budget für das Jahr 2024.
Einfach per Kreditkarte oder PayPal.
Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet.
❤️ Vielen lieben Dank für Ihre Unterstützung ❤️