Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   dblookupcombobox (https://www.delphipraxis.net/173668-dblookupcombobox.html)

jangbu 9. Mär 2013 20:03

dblookupcombobox
 
In einer DBlookupcombobox biete ich via AdoQuery die Daten einer SQL-Server Tabelle in der Listsource/DropdownListe (name,vorname) zur Auswahl an. Listfiled ist name;vorname. Die Selektion klappt solange der Name in der Tabelle nur einmal vorkommt. Da der Name "Meier" aber mehrfach vorkommt, werden bei Eingabe von "M", gleich alle "Meier" markiert. In diesem Fall ist eine weitere Selektion z.B. des 2. "Meier" per Tastatur überhaupt nicht möglich. Auch durch Mausklick auf den 2. Meier gibt Query.FieldByName immer den ersten Meier zurück!? Wie und wo kann ich abfragen, welchen Datensatz genau ich per Maus angeklickt habe? Eine genaue Auswahl per Tastatur geht wohl nicht?

jangbu 10. Mär 2013 11:28

AW: dblookupcombobox
 
Liste der Anhänge anzeigen (Anzahl: 1)
keiner ne Idee?

Sieht so aus, als würde das Problem nur bei der Ersten Auswahl auftreten. Also bei klick auf Meier Horst (3.Meier) gibt Query.FieldByName Meier Willi (1.Meier) zurück!?
Ab dem zweiten Auswahlversuch scheint scheint die Zuweisung sicher zu klappen. Was mach ich da falsch, fehlt da eine Initialisierung? Ich kann doch nicht immer den Maier Horst zweimal auswählen, weil beim ertsen Versuch immer der Meier Willi erkannt wird?
Wie kann ich sicher abfragen, welchen Datensatz genau ich per Maus angeklickt habe?

Siehe Anlage

Bummi 10. Mär 2013 12:12

AW: dblookupcombobox
 
Crosspost http://www.entwickler-ecke.de/viewtopic.php?t=111268

jangbu 10. Mär 2013 16:39

AW: dblookupcombobox
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo Bummi,

ja habe ich nochmal eingestellt. Komme aber leider nicht recht weiter!?

Furtbichler 10. Mär 2013 16:58

AW: dblookupcombobox
 
Hat die Tabelle einen PK? Wie ist KeyField gesetzt?

Ich habe das bei mir eben mit einem DevExpress MemData ausprobiert. Weiterhin habe ich ein TDBGRid auf die Form geklatscht und das mit dem Lookup-Dataset verknüpft, damit ich den Datensatzzeiger sehe.

Es ist ja schon mal klar, das alle drei Meier selektiert ist, denn das ist nun einmal der selektierte Eintrag. Ich gehe mal davon aus, das das KeyField='Name' ist. Dann ist das nämlich zwingend.

Wenn die Lookup-Tabelle einen PK hat, dann sollte in der Original-Tabelle ein FK definiert sein. Dann wäre die Selektion eindeutig. So aber nicht.

Bummi 10. Mär 2013 17:03

AW: dblookupcombobox
 
Liste der Anhänge anzeigen (Anzahl: 2)
Je nachdem welches das Keyfield ist wird passend dargestellt.
Sel1='ID', Sel2='Name'.

EDIT
Furtbichler war schneller ;-(

Uwe Raabe 10. Mär 2013 17:04

AW: dblookupcombobox
 
Ich glaube, du erwartest von dem Control ein Verhalten, für das es nicht gemacht ist. Du möchtest in der DBLookupCombobox offenbar den aktuellen Datensatz auswählen. Das ist aber nicht das, wofür es gemacht ist (dazu siehe Doku). Das musst du anders lösen.

Bummi 10. Mär 2013 17:08

AW: dblookupcombobox
 
@Uwe Raabe durch das "unsaubere" Verhalten einer DBLookup-Combobox kann sich ein Anfänger IMHO dazu verleiten lassen sich auf die Auswahl des Satzes in der Lookupmenge zu verlassen.

Uwe Raabe 10. Mär 2013 17:13

AW: dblookupcombobox
 
Zitat:

Zitat von Bummi (Beitrag 1206738)
@Uwe Raabe durch das "unsaubere" Verhalten einer DBLookup-Combobox kann sich ein Anfänger IMHO dazu verleiten lassen sich auf die Auswahl des Satzes in der Lookupmenge zu verlassen.

Was ja hier offensichtlich auch passiert ist. Man sollte schon stutzig werden, wenn es erst beim zweiten Versuch klappt.

jangbu 10. Mär 2013 17:46

AW: dblookupcombobox
 
Hallo Uwe Raabe, genau das hatte ich gehofft, dass ich mit der dblookupcombobox den ausgewählten Satz zurück bekomme. Wie ich dich verstanden habe, geht das wohl damit nicht?


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:00 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz