Kombinationsfeld Tabellenabfrage nicht alphabetisch ordnen

Datenbanklösungen mit AOO/LO

Moderator: Moderatoren

Keicho
Beiträge: 3
Registriert: Mi, 09.08.2006 20:46

Kombinationsfeld Tabellenabfrage nicht alphabetisch ordnen

Beitrag von Keicho »

Hallo, der Inhalt von Kombinationsfeldern wird ja aus Tabellen bezogen.
Ich würde gerne wissen ob es eine Möglichkeit gibt, bei der das Kombinationsfeld die Daten nicht Alphabetisch sondern sondern z.B nach der ID sortiert.

Vielen Dank im Vorraus

Tobias
Toxitom
********
Beiträge: 3769
Registriert: Di, 12.08.2003 18:07
Wohnort: Wiesbaden
Kontaktdaten:

Beitrag von Toxitom »

Hey Tobias,
bei der das Kombinationsfeld die Daten nicht Alphabetisch sondern sondern z.B nach der ID sortiert.
Direkt nicht. Da wird wohl immer alphabetisch geordnet.

Reicht dir das nicht, so bleibt dann nur noch die manuelle Zuweisung der Auswahlliste zu dem Kombinationsfeld - per Makroscript. Da kannst du natürlich die Arrayliste vorher sortiern und manipulieren wie du willst.

Gruss
Thomas
Unterstützer LibreOffice, zertifizierter Trainer und Berater
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
Keicho
Beiträge: 3
Registriert: Mi, 09.08.2006 20:46

Beitrag von Keicho »

Schade, kann man nichts machen.

Aber danke für die Schnelle Antwort
ejomi
***
Beiträge: 84
Registriert: Mi, 06.09.2006 15:20

Klar geht das !

Beitrag von ejomi »

Als erstes: verwende dazu nicht das Steuerelemet "Kombinationsfeld" sondern "Listenfeld"!

Das Listenfeld bezieht sich im Formular z.B. auf das numerische ID-Feld in Deiner Haupt-Datenbank. Es muß natürlich auch noch eine zweite Tabelle mit den gewünschten Text-Einträgen und den zugehörigen ID-Nummern vorhanden sein!

Im Beispiel nenne ich diese zweite Tabelle "MeineTextliste", das Index-Feld "ID_Text" und das Feld mit den Text-Einträgen "AuswahlText".

Wichtig dabei ist, daß das ID-Feld "ID_Text" das gleiche Zahlenformat hat wie das der Hapt-Tabelle (bitte nicht die IDs der Haupt-Datensätze mit den IDs der Textliste verwechseln - verwende immer gut unterscheidbare Feld-Namen!).

In den "Eigenschaften" des Listenfeldes muß demnach unter "Daten" das Feld "ID_Text" eingetragen sein während die Listen-Inhalte selbst nicht aus der Haupt-Datenbank, sondern aus der zweiten Tabelle mit den Text-Einträgen eingespeist werden - dazu folgender SQL-String in die Eigenschaft "Listeninhalt" eintragen:

SELECT `AuwahlText`, `ID_Text` FROM `MeineTextliste` ORDER BY `ID_Text`

That's it !

Wass passiert nun?
Zunächst werden Deine Auswahl-Texte nicht mehr alphabetisch sondern nach ID-Nummern sortiert angezeigt - das war ja der eigentliche Sinn der Sache.

Ausserdem ändert sich die Anzeige Deines Listenfeldes automatisch, wenn es in der Haupt-Tabelle eine gültige ID-Nummer findet:
wenn Du mit der Datensatz-Navigation des Formulars durch DeineDatenbestände klickerst, wird im Listenfeld jeweils der betreffende Text sofort angezeigt - perfekt!

Wenn Du den Eintrag ändern möchtest: einfach das Listenfeld aufklappen, einen anderen Eintrag wählen und RETURN drücken = der Eintrag (genaugenommen nur die ID-Nummer) in der Haupt-Datenbank wird sofort geändert. Solltest Du das Formular danach direkt verlassen, wirst Du u.U. noch einmal gefragt, ob diese Änderung gespeichert werden soll - sobald Du aber den Datensatz wechselst wird die Änderung sofort und endgültig eingetragen!

Gruß aus Dresden: ejomi
Antworten