Suchen berListenfeld mit Sortierung

Datenbanklösungen mit AOO/LO

Moderator: Moderatoren

Benutzeravatar
TuoDesperado
**
Beiträge: 21
Registriert: Di, 21.12.2010 12:09
Wohnort: Beuren bei Nürtingen

Suchen berListenfeld mit Sortierung

Beitrag von TuoDesperado »

Hallo zusammen, habt ihr Weihnachten gut überstanden?

Also ich hab hier einige Beiträge nun gefunden, welche sich mit der Suche über Listenfeld oder Kombinationsfeld beschäftigen.

Hab mir das Listenfeld gewählt, in mein Formular rein gesetzt und mit folgendem Macro verbunden

Code: Alles auswählen

Sub SelectListbox
Dim oForm, oListbox As Object
Dim LB_Item as integer
    oForm = ThisComponent.drawpage.forms.getbyindex(0)   
    oListbox = oForm.getByName("Listenfeld 1")
    LB_Item = oListbox.SelectedItems(0)   
    oform.absolute (LB_Item)
End Sub
Das funktioniert alles auch ganz gut.

Jetzt bin ich nun mal ein kleiner "Pedant" und möchte gerne meine Einträge in dem Listenfeld sortiert haben. Die Tabelle (Kundenstamm) und somit das Feld (Name) sind leider nicht sortiert und komplett wirr angelegt.

Kein Thema hab ich mir gedacht, ich bearbeite mein Formular. Listenfeld angeklickt, dann Kontrollfeld ausgewählt, Reiter Daten gewählt und Listeninhalt aus die 3 Punkte geklickt, dort die Sortierung aufsteigend gewählt. (mal das erste Feld, dann beide und das letzte Feld auch mal)

Doch mit entsetzen hab ich fest gestellt, dass die Sortierung wunderbar funktioniert, jedoch die Auswahl dann nicht mehr passt.

Kleines Beispiel:

unsortiert hab ich beim Feld Name folgende Reihenfolge:

1. Müller
2. Albrecht
3. Bachmann
....

sortiert hab ich dann

1. Müller
2. Müller
3. Müller-Gutenberg
...

klick ich jetzt auf Müller-Gutenberg, so komm ich nicht bei Datensatz 131 (Müller-Gutenberg) heraus, sondern bei Datensatz 170 (Ruckmich)

Fakt ist, wenn ich die Sortierung drin habe, zeig er mir alles mögliche, nur nicht den von mir ausgewählten Name.

Wie kann ich das beheben? Gibt es da was, wo ich im Macro einbinden kann oder kann ich da irgend eine andere Sortiermöglichkeit anwenden?

Jetzt bin ich mal gespannt, ob das Problem gelöst werden kann.

Euch allen noch einen schönen Tag, bis bald

Frank
Schnittpunkt - Kopie.odb
das hier nicht funktionierende Menü am Anfang einfach weg klicken und dann das Formular "suchen" auswählen
(69.83 KiB) 48-mal heruntergeladen
Nur wo Lücken sind, kann Durchblick herrschen

Windows 7, OO3.2.1
DPunch
*******
Beiträge: 1112
Registriert: Mo, 02.11.2009 16:16
Wohnort: Marburg

Re: Suchen berListenfeld mit Sortierung

Beitrag von DPunch »

Aloha

Sortier Deine Formular-Daten genau so wie die Daten in Deinem Listenfeld.

Das Makro kümmert sich nicht darum, welchen Namen Du ausgewählt hast, sondern nur darum, an welcher Position dieser Name in der Listbox stand - und genau diese Position stellt er dann auch für die Formulardaten ein, dort sind die Daten aber in der Regel nach der ID sortiert.

Sprich:
Du hast in der Tabelle, auf der Dein Formular basiert, die Datensätze
0 X
1 A
2 B

In Deiner Listbox sortierst Du nach der 2. Spalte und bekommst
A
B
X

Selektierst Du jetzt den 3. Eintrag in Deiner Listbox (X), setzt das Makro den Zeiger des Formulars auf den 3. Eintrag Deiner Tabelle, also: B.
Benutzeravatar
TuoDesperado
**
Beiträge: 21
Registriert: Di, 21.12.2010 12:09
Wohnort: Beuren bei Nürtingen

Re: Suchen berListenfeld mit Sortierung

Beitrag von TuoDesperado »

Sortier Deine Formular-Daten genau so wie die Daten in Deinem Listenfeld.
Also ich hab jetzt mal die Tabelle "Kundenstamm" sortiert, bringt aber nicht wirklich den Erfolg.

Was meinst du mit Formular-Daten genau so wie die Daten in Deinem Listenfeld?
Nur wo Lücken sind, kann Durchblick herrschen

Windows 7, OO3.2.1
Benutzeravatar
TuoDesperado
**
Beiträge: 21
Registriert: Di, 21.12.2010 12:09
Wohnort: Beuren bei Nürtingen

Re: Suchen berListenfeld mit Sortierung

Beitrag von TuoDesperado »

Aha, ja, jetzt, so, genau,...

also ich hab das Listenfeld in meinem Formular wie folgt bearbeitet:

1. rechte Maustaste auf dem Listenfeld
2. Formular ausgewählt
3. Sortierung -> erst Name, dann Vorname

danach hab ich erneut das Listenfeld mit der rechte Maustaste geöffnet und dabei wie ganz oben beschrieben Kontrollfeld, dann dort die Sortierung auch auf Name gesetzt.

Und was soll ich sagen, jetzt tut es plötzlich, wie genial.

@ DPunch, das war ja genial, danke.

Jetzt noch eine kleine Frage am Rande, kann ich beim öffnen des Listenfelds 2 Spalten Anzeigen lassen, mit Name und Vorname? Wenn es dann aber geschlossen wird, dass dann nur der Name dort steht?
Nur wo Lücken sind, kann Durchblick herrschen

Windows 7, OO3.2.1
DPunch
*******
Beiträge: 1112
Registriert: Mo, 02.11.2009 16:16
Wohnort: Marburg

Re: Suchen berListenfeld mit Sortierung

Beitrag von DPunch »

Aloha
TuoDesperado hat geschrieben:Jetzt noch eine kleine Frage am Rande, kann ich beim öffnen des Listenfelds 2 Spalten Anzeigen lassen, mit Name und Vorname? Wenn es dann aber geschlossen wird, dass dann nur der Name dort steht?
Das ist nicht möglich.
Du kannst allerdings die Listbox unabhängig vom Name-Textfeld integrieren, siehe Beispiel.
Nur wichtig dabei:
Die SQL-Abfrage für den Listbox-Inhalt
Lezte Zeile der Prozedur "SelectListbox"
Dateianhänge
Schnittpunkt - Kopie.odb
(53.51 KiB) 62-mal heruntergeladen
Benutzeravatar
TuoDesperado
**
Beiträge: 21
Registriert: Di, 21.12.2010 12:09
Wohnort: Beuren bei Nürtingen

Re: Suchen berListenfeld mit Sortierung

Beitrag von TuoDesperado »

ist ja genial mit dem Feld.

hab nur ne ganze Stunde gebraucht, bis ich gemerkt habe, dass ich erst das Rechteck weg schieben muss, um an das Feld zu gelangen. Hab dass dann so wie deines gemacht (dachte ich) und den Code eingebunden, doch mein Feld bleibt dunkel *lach* Ich tüftle mal weiter, wird schon irgend wie mal klappen.
Hab sogar das verzwickte SQL (weiß der Geier wie du das gemacht hast) rüber bekommen.
Nur wo Lücken sind, kann Durchblick herrschen

Windows 7, OO3.2.1
Benutzeravatar
TuoDesperado
**
Beiträge: 21
Registriert: Di, 21.12.2010 12:09
Wohnort: Beuren bei Nürtingen

Re: Suchen berListenfeld mit Sortierung

Beitrag von TuoDesperado »

komisch, sobald ich das

Code: Alles auswählen

SELECT "Name" || ', ' || "Vorname" AS "VollerName" FROM "Kundenstamm" ORDER BY "Vorname" ASC
einfüge ist alles wieder weg.
Nur wo Lücken sind, kann Durchblick herrschen

Windows 7, OO3.2.1
DPunch
*******
Beiträge: 1112
Registriert: Mo, 02.11.2009 16:16
Wohnort: Marburg

Re: Suchen berListenfeld mit Sortierung

Beitrag von DPunch »

Aloha
TuoDesperado hat geschrieben:komisch, sobald ich das (...) einfüge ist alles wieder weg.
Was ist weg?

Hast Du die Listbox haargenau so eingestellt, wie sie in der Beispieldatei ist?
Benutzeravatar
TuoDesperado
**
Beiträge: 21
Registriert: Di, 21.12.2010 12:09
Wohnort: Beuren bei Nürtingen

Re: Suchen berListenfeld mit Sortierung

Beitrag von TuoDesperado »

Ist halt wie immer, wenn man nicht weiß was man macht, dann...

... kopiert man einfach dein Feld und setzt es in meine Datenbank ein.

Jetzt tut es, wobei ich bis jetzt nicht weiß, was ich falsch gemacht habe. Aber im Zweifelsfall, kopieren *fg*

Danke
Nur wo Lücken sind, kann Durchblick herrschen

Windows 7, OO3.2.1
Antworten