Listenfeld alphabetisch sortieren ?

Datenbanklösungen mit AOO/LO

Moderator: Moderatoren

Muh
*
Beiträge: 10
Registriert: Fr, 29.09.2006 11:40

Listenfeld alphabetisch sortieren ?

Beitrag von Muh »

Hallo !

Ich habe ein kleines Problem und wäre für eine Hilfe sehr dankbar :

Ich habe in einem Formular ein Haupttabelle in der Daten eingegeben werden können. Eines der Datenfelder der Haupttabelle ist als Sekundärschlüssel mit einer anderen Tabelle über ein Listenfeldelement in diesem Formular verknüpft.
Es funktioniert so weit, das ich im Listenfeld einen Namen aus der Sekundärtabelle auswähle und der Wert des Primärschlüssels der Sekundärtabelle an den Wert des Sekundärschlüssels der Haupttabelle weitergegeben und gespeichert wird.

Mein Problem ist nur, das ich der Anschaulichkeit wegen das Listenfeld nicht anhand des Primärschlüssels der Sekundärtabelle sortiert haben will sondern alphabetisch nach dem Namen. Besteht somit eine Möglichkeit eine solche Liste irgendwie alphabetisch zu sortieren ??

ich möchte NICHT das gesamte Formular sortieren, sondern NUR das Listenfeld...
Muh
*
Beiträge: 10
Registriert: Fr, 29.09.2006 11:40

Beitrag von Muh »

öhh hab mir die frage inzwischen selbst beantwortet ^^

an die entsprechende SQL Anweisung : "Select xy" einfach ein "order by xy ASC" dranhängen....

vielleicht interessierts ja jemand ^^
mamo
****
Beiträge: 116
Registriert: Do, 25.10.2012 14:20

Re: Listenfeld alphabetisch sortieren ?

Beitrag von mamo »

Sorry, wenn ich das alte Thema noch einmal aufgreifen muss.

Kann es sein, dass die Sortierung nen Bug hat?
Bei mir funktioniert die oben genannte Lösung leider nicht. (AOO3.41 und Win7)

Code: Alles auswählen

SELECT "Straße" FROM "tbl_Adressen" ORDER BY "Straße" ASC
oder ist mein SQL Befehl fehlerhaft?

Danke für eine Rückmeldung
RobertG
********
Beiträge: 2067
Registriert: Fr, 13.04.2012 19:28
Kontaktdaten:

Re: Listenfeld alphabetisch sortieren ?

Beitrag von RobertG »

Hallo mamo,

ist etwas ungeschickt, einen Thread raus zu holen, der über 7 Jahr zurück liegt.
Was funktioniert denn Bei der genannten Abfrage nicht? Bekommst Du eine Fehlermeldung? Ist der Inhalt nicht richtig sortiert? Arbeitest Du vielleicht mit einer anderen als der internen HSQLDB-Datenbank?

Gruß

Robert
mamo
****
Beiträge: 116
Registriert: Do, 25.10.2012 14:20

Re: Listenfeld alphabetisch sortieren ?

Beitrag von mamo »

Du hast völlig recht. allerding ist das geneu mein Fehler.

Ich habe eine reine Base BD. Frisch erstellt im OO.

Wenn ich mein Listenfeld nun aufklappe, ist es alles andere als Alphabetisch geordnet. Es wird vielmehr nach dem Primärschlüssel (ID) sortiert.
pmoegenb
********
Beiträge: 4330
Registriert: Di, 22.06.2004 12:02
Wohnort: 71134 Aidlingen
Kontaktdaten:

Re: Listenfeld alphabetisch sortieren ?

Beitrag von pmoegenb »

mamo hat geschrieben: Wenn ich mein Listenfeld nun aufklappe, ist es alles andere als Alphabetisch geordnet. Es wird vielmehr nach dem Primärschlüssel (ID) sortiert.
Obwohl Du diese Abfrage statt der Tabelle mir dem Listenfeld verbunden hast ?
Gruß

Peter
---------------------------------------------------------------------------
Windows 7 Prof. 64-bit SP1, LibreOffice 4.3.6.2 und AOO 4.1.1
mamo
****
Beiträge: 116
Registriert: Do, 25.10.2012 14:20

Re: Listenfeld alphabetisch sortieren ?

Beitrag von mamo »

Nee. Das Listenfeld ist mittels SQL Befehl (s.o.) auf die Tabelle verbunden.
RobertG
********
Beiträge: 2067
Registriert: Fr, 13.04.2012 19:28
Kontaktdaten:

Re: Listenfeld alphabetisch sortieren ?

Beitrag von RobertG »

Hallo mamo,

das

Code: Alles auswählen

SELECT "Straße" FROM "tbl_Adressen" ORDER BY "Straße" ASC
ist eigentlich nicht der Code, mit dem ein Listenfeld sinnvoll mit einer Tabelle verknüpft wird. Das "normale" Vorgehen mit einem Listenfeld: Das Listenfeld enthält ein Namensfeld und ein Primärschlüsselfeld. In Deinem Fall also das Primärschlüsselfeld der Tabelle "tbl_Adressen" (Was sind da sonst für Felder drin? Wieso wird eine Tabelle mit einer anderen über "Straße" verbunden?). Der Primärschlüssel wird als Fremdschlüssel in eine andere Tabelle geschrieben. Für ein Listenfeld müsste also der Code vermutlich so aussehen:

Code: Alles auswählen

SELECT "Straße", "ID" FROM "tbl_Adressen" ORDER BY "Straße" ASC
wobei die Tabelle, in die vom Formular aus geschrieben wird, natürlich nicht "tbl_Adressen" ist.

Kannst Du eventuell eine DB mit Beispieldaten oder entsprechende Screenshots hier anhängen (Screenshots von der Datengrundlage des Formulars, der Datengrundlage des Listenfeldes und dem aufgeklappten Listenfeld)?

Gruß

Robert
Antworten