Hallo
ich habe eine größere Datenbank erstellt, sowie eine Abrage und ein Formularentwurf, über den ich mir die Datenbankeinträge anzeigen lassen kann und auch filtern kann. Was fehlt ist jetzt nur noch die Sortierung. Im Moment ist diese noch starr nach einem Tabelleneintrag.
Im groben sieht meine Abfrage so aus:
SELECT Eintrag1, Eintrag2, Eintrag3 FROM Tabelle WHERE xyz ORDER BY Eintrag1.
Ich möchte nun in meinem Formular nicht starr nach Eintrag1 sortieren sondern im Prinzip einen Alias einsetzen und diesen dann im Formular durch ein Listenfeld auswählen.
Also SELECT ... ORDER BY alias1.
Den Alias möchte ich dann im Formular über ein Listenfeld ausfählen - also nach Eintrag1, Eintrag2 Eintrag3 um so auswählen zu können, wo nach ich filter.
Wie schaffe ich dies, bisher gekomme ich nur Fehler wenn ich dies versuche...
❤️ Helfen Sie jetzt mit, unser LibreOffice Forum zu erhalten! ❤️
Mit Ihrer Spende sichern Sie den Fortbestand, den Ausbau und die laufenden Kosten dieses Forums. 🌱
🍀 Jeder Beitrag zählt – vielen Dank für Ihre Unterstützung!🍀
>> Dank Ihrer Unterstützung -> Keine Werbung für alle registrierten LibreOffice-Forum User! <<
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗
Abrage - Order by als dynamische Auswahl aus Formular
Re: Abrage - Order by als dynamische Auswahl aus Formular
... und hier ein kurzer Hinweis zur Sache:
Es ist nicht möglich, einen Feldbegriff variabel in eine Abfrage zu schreiben. Das Vorhaben kann nur mit Hilfe von Makros gelingen. Angenommen das Listenfeld befindet sich in dem gleichen Formular wie die Tabelle selbst:
Nicht weiter getestet, Deklaration der Variablen fehlt, vielleicht auch ein Fehler bei den Anführungszeichen.
Ob anschließend das Formular über oForm.reload neu eingelesen werden muss kann ich nicht sagen.
Gruß
Robert
Es ist nicht möglich, einen Feldbegriff variabel in eine Abfrage zu schreiben. Das Vorhaben kann nur mit Hilfe von Makros gelingen. Angenommen das Listenfeld befindet sich in dem gleichen Formular wie die Tabelle selbst:
Code: Alles auswählen
SUB Order(oEvent AS OBJECT)
oFeld = oEvent.Source.Model
oForm = oFeld.parent
stOrder = """"+oFeld.CurrentValue+""" ASC"
oForm.Order = stOrder
END SUB
Ob anschließend das Formular über oForm.reload neu eingelesen werden muss kann ich nicht sagen.
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
Re: Abrage - Order by als dynamische Auswahl aus Formular
Hallo Robert,
Anbei eine Beispieldatei.
Gruß R
Da hast du Recht. Was aber funktioniert, sofern die Sortierfelder vom gleichen Datentyp sind, also entweder alles Zahlen oder alles Texte sind, ist eine Fallunterscheidung:RobertG hat geschrieben:Es ist nicht möglich, einen Feldbegriff variabel in eine Abfrage zu schreiben...
Code: Alles auswählen
... ORDER BY
CASE
WHEN (SELECT "SORTIERSPALTE" FROM "Filter") = 'Nachname' THEN "Nachname"
WHEN (SELECT "SORTIERSPALTE" FROM "Filter") = 'Vorname' THEN "Vorname"
END
Gruß R
- Dateianhänge
-
- Adressen_Order_By.zip
- nur entpacken
- (68.6 KiB) 149-mal heruntergeladen
Windows 11: AOO, LO Linux Mint: AOO, LO
An alle, die das LibreOffice-Forum gern nutzen und unterstützen wollen:
Bitte helfen Sie uns mit 7 Euro pro Monat.
Durch Ihren Beitrag tragen Sie dazu bei, unsere laufenden Kosten für die kommenden Monate zu decken.
Unkompliziert per Kreditkarte oder PayPal.
Als ein kleines Dankeschön werden Sie im LO-Forum als SUPPORTER gekennzeichnet.