Frequently asked questions - Base
TDF LibreOffice Document Liberation Project Community Blogs Weblate Nextcloud Redmine Ask LibreOffice Spende
Wie kann ich ein Auswahl-Feld erstellen?
Bei der Eingabe sollen aus den bereits im Feld enthaltenen Werten für den nächsten Datensatz Werte ausgewählt werden. Dies ist in Calc mit einer Auswahlliste möglich: ALT + ↓.
In Base ist dies nicht in der Tabelleneingabe oder in einer Abfrage möglich. Stattdessen muss zuerst ein Formular erstellt werden.
In einem Formular wird ein Textfeld in ein Kombinationsfeld umgewandelt: Rechter Mausklick >
▸ .In dem Kombinationsfeld wird der Reiter Daten und dort die SQL-Eingabe aufgerufen: Rechter Mausklick >
▸ ▸ ▸ .Unter
wird eine Abfrage wie die folgende abgespeichert:The technique uses a combobox control whose content type will be Sql and the contents is the required selection.
SELECT DISTINCT "Name" FROM "Tabelle" ORDER BY "Name" ASC
Notes:
Das Schlüsselwort DISTINCT zwingt die Liste, Duplikate auszulassen.
Die Verwendung eines Kombinationsfeldes ermöglicht die Eingabe neuer Werte. Diese werden sofort in der Liste berücksichtigt, leider aber an das Ende der Liste angefügt. Erst bei einem erneuten Aufruf des Formulars oder bei einer Aktualisierung des Kombionationsfeldes werden die neuen Werte korrekt eingeordnet.
Mit Hilfe des folgenden Makros ist es möglich, die Aktualisierung direkt nach dem Verlassen des Kombinationsfeldes zu veranlassen:
SUB ListeAktualisieren(oEvent AS OBJECT)
oEvent.Source.Model.refresh
END SUB