Entwickler-Ecke

Datenbanken - Aus DBComboBox Datenzeiger festlegen


rob87 - Di 02.09.08 14:31
Titel: Aus DBComboBox Datenzeiger festlegen
Ich hab noch ne zweite Frage.

Szenario:
DBComboBox und eine Tabelle vorhanden.
-----
Ich will, das meine Anwendung aus der ComboBox den Inhalt liest und dann in meiner Tabelle den Datensatzzeiger auf genau den Datensatz psoitioniert, der diesen Wert auch hat.

Also z.B.: In DBComboBox steht: "Maier"

Tabelle:
---------
1 | Müller | Hans
2 | Maier | Georg
3 | Bauer | Josef

Dann soll der Datensatzzeiger auf dem 2. Datensatz stehen.


mkinzler - Di 02.09.08 15:01

Verwende eine DBLookupComoboBox


rob87 - Di 02.09.08 15:13

user profile iconmkinzler hat folgendes geschrieben:
Verwende eine DBLookupComoboBox


Hab mir mal in der Hilfe des von der DBLookupComboBox durchgelesen, weil ich des ned kenn.
Aber nun bin ich endgültig verwirrt. :?: :?: :oops:

In der ComboBox sollen die Inhalte einer Spalte aus einer DB stehen. Soweit ned weiter tragisch. Tabelle über DS mit DBComboBox verbinden.

Und nun kann ich doch folgendes machen:

Delphi-Quelltext
1:
2:
3:
    
if (Table1.Locate('Nachname',DBCB1.Text,[loPartialKey])=true) then
  //...

Eine Frage ist auch noch. Wenn ich die ComboBox mit einerm einfachen Query verbinde, zeigt er mir nur den Wert des ersten Datensatzes. Sonst ist in der ComboBox kein Wert drin. Und wenn ich ne einfache CB verwende und Items.Add(Table1.FieldByName('Nachname').Value); mach, dann bringt er mir zum Schluss (da bei dem Locate krallt er sich dann immer auf dem einen Wert der in der ComboBox steht fest.)

Verzweifle gerade. :shock:


rob87 - Di 02.09.08 15:26

Ich versuch das Ganze nochmal kurz von vorne aufzuziehen (blick nämlich jetzt selbst auch nicht mehr durch) :shock: :shock:

Beispiel-Szenario:
------------------
Ich habe in etwa folgende Tabelle (Tabelle1):
1 | Müller | Hans
2 | Maier | Georg
3 | Bauer | Josef

Ich will in der ComboBox einen Nachnamen aus den dreien auswählen.

Anschließend soll in eine andere Tabelle(Tabelle2) geschrieben werden ( ich wähle mal: Maier aus)
Maier | Abteilung3 | .... | ....
Bauer | Abteilung2 | .... | ....
Müller | Abteilung23 | .... | ....
Maier ............ usw.
(Wobei Abteilung und der Rest von einer anderen Seite kommen)
_________________________________________________________________________

Herangehensweise:
-----------------

- ComboBox so mit einer ADOTable/ADOQuery verbinden, damit angezeigt werden kann: Müller, Maier, Bauer, => :?: Er zeigt mir immer nur den ersten positionierten Wert in der CB an. Mehr kann ich ned auswählen

- Datensatzzeiger beim nächsten Schritt auf den entsprechenden Datensatz aus Tabelle1 positionieren => :?: :?:
- Anschließend dass Ganze wegschreiben => Klar :lol:


mkinzler - Di 02.09.08 15:50

Das anzuzeigende DataSet als .LookupSource eintragen .LookupDisplay das in der Liste anzuzeigende Feld, .LookupField der Schlüsselwert


rob87 - Di 02.09.08 15:52

user profile iconmkinzler hat folgendes geschrieben:
Das anzuzeigende DataSet als .LookupSource eintragen .LookupDisplay das in der Liste anzuzeigende Feld, .LookupField der Schlüsselwert


Tut mir Leid, aber das versteh ich (momentan) ned. Ich hab bei der DBLookUpComboBox keine Eigenschaften oder Methoden die mit LookUp etwas zu tun haben.

Und warum wird mir in einer einfachen DBComboBox nur ein Wert zur Verfügung gestellt?? Ich krieg hier noch die Krise!!! :? :cry: