Autor Beitrag
bruder jonas
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 76



BeitragVerfasst: So 27.04.03 19:27 
hallo,

ich lese die werte einer tabelle in eine combox ein. jeder einzelne wert hat in der tabelle eine id.

nun wählt der nutzer aus der combobox einen eintrag.

es soll die TabllenenID des gewählten eintrags in eine andere tabelle gespeichert werden.

wie kann ich sicherstellen, das die id der tabelle und nicht die id es selektierten eintrags (itemindex) gespeichert wird?

danke für die hilfe
grayfox
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 800

win98, winXP
D4 Standard; D6 Personal
BeitragVerfasst: So 27.04.03 20:32 
hallo bruder jonas!
Zitat:
wie kann ich sicherstellen, das die id der tabelle und nicht die id es selektierten eintrags (itemindex) gespeichert wird?

indem du den richtigen eintrag in die tabelle einträgst? ;)

ausblenden Quelltext
1:
einzutragender_wert:= StrToInt(ComboBox.Items[ComboBox.ItemIndex])					


so bekommst du den inhalte des ausgewählten eintrages aus deiner combobox.

mfg, stefan
ps: richtig heisst es: dass die id...
bruder jonas Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 76



BeitragVerfasst: So 27.04.03 20:49 
Titel: aber nicht aus der tabelle der originaldaten
hi grayfox,

die id der combobox ist eine andere als die id der tabelle, aus der die werte für die combobox kommen.

aber genau diese id will ich wieder wegspeichern. nicht die id der combobox, da diese eine andere sein kann

hast du noch nen tipp?

danke
grayfox
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 800

win98, winXP
D4 Standard; D6 Personal
BeitragVerfasst: So 27.04.03 21:37 
jetzt weiss ich net, ist es schon so spät, oder brauch ich eine brille? ;)

Zitat:

ich lese die werte einer tabelle in eine combox ein. jeder einzelne wert hat in der tabelle eine id.

so weit, so gut...

ausblenden Quelltext
1:
nun wählt der nutzer aus der combobox einen eintrag.					

das heisst, der benutzer klickt auf eine beliebige zeile in der combobox und bekommt über itemindex(= zeilennr in der combobox) die tabellenID
geliefert. richtig?
zb in der zeile nr 3 steht ID 1000

wo ist nun das problem bei der sache?
wie du siehst, habe ich noch eine ganze menge ideen *gg*

mfg, stefan
bruder jonas Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 76



BeitragVerfasst: Mo 28.04.03 18:28 
Titel: problembeschreibung
hi grayfox,

hier die beschreibung meines problems mit beispiel.

in der datenbanktabelle steht für den namen "klaus" die ID 10.

da ich die werte der comboxbox (diverse namen inkl. Klaus) sortiere, hat "Klaus" da den den combobox-index z.B. 5.

ich will aber in eine save-datentabelle, wenn der nutzer "klaus" aus der combobox gewählt hat, nicht die 5 (index der combobox), sondern die 10 (id aus der datenbanktabelle) speichern.

das kriege ich nicht realisiert. kannst du mir da helfen?

danke dir
grayfox
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 800

win98, winXP
D4 Standard; D6 Personal
BeitragVerfasst: Mo 28.04.03 18:56 
jetzt hab ich auch verstanden, was du meinst :lol:
kannst die ID der datentabelle nicht beim namen dabeilassen? sonst bekommst nie wieder einen konnex zum richtigen klaus in der tabelle, denn dort wirds ja mehr kläuse geben, richtig?

du solltest vielleicht deinen lösungsansatz überdenken, wenn du deine daten so wild herumschaufelst :wink:

mfg, stefan
bruder jonas Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 76



BeitragVerfasst: Di 29.04.03 10:54 
Titel: kennst du eine lösung
hallo grayfox,

kannst du mir nen lösungsansatz geben?
zweck soll sein, das ich auf einem formular 3 daten (verschiede tabellen, genauso wie bsp. "klaus") auswähle.

das ergebnis will ich in einer neuen tabelle wegspeichern, wo dann jeweils die id's der 3 tabellendaten stehen sollen.

danke
grayfox
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 800

win98, winXP
D4 Standard; D6 Personal
BeitragVerfasst: Di 29.04.03 21:04 
hallo bruder jonas!

fang bitte nicht in der mitte zu erklären an, sonst steig ich nicht durch...
du hast also 3 tabellen..
in der ersten gibt es die felder:
in der zweiten:
in der dritten:
auf dem formular soll folgendes geschehen:
als resultat soll eine tabelle entstehen, in der steht:

dann kann ich dir vielleicht folgen.

mfg, stefan
bruder jonas Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 76



BeitragVerfasst: Mi 30.04.03 07:14 
Titel: hab dir ne pm geschickt.
hi Stefan,

ich hoffe das ich es verständlich aufgeschrieben habe.

danke dir.

bJ
Kalli
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 26



BeitragVerfasst: Mi 30.04.03 09:21 
Titel: ID aus Tabelle
Entschuldige, dass ich mich einmische.

Willst Du die "DBLookupComboBox" nachbauen?

Diese Combobox erledigt eigentlich diese Aufgabe.

Gruß
Kalli
bruder jonas Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 76



BeitragVerfasst: Mi 30.04.03 17:31 
Titel: wie denn?
hallo kalli,

kannst du mir mal erklären, wie die komponente DBLookupComboBox das macht?

vielleicht hast du ja ein beispiel parat, dass ich auf mein anliegen anwenden kann.

danke dir vielmals
Kalli
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 26



BeitragVerfasst: Do 01.05.03 07:40 
Titel: ID in Combobox
Hallo,

fangen wir mit einem Auszug aus der Delphi-Hilfe an:

TDBLookupComboBox repräsentiert ein Kombinationsfeld, in dem Lookup-Werte aus einer anderen Datenmenge angezeigt werden können.

d.h. Ich schaue in einer Liste nach und trage das Suchergebnis in einer anderen Liste ein.

Beispiel bezogen auf Paradox-Tabellen.

Ich schreibe eine Materialverwaltung für unsere Firma. Wir haben Zulieferer, Kunden, verschiedene Lagerplätze u.s.w.

Wenn z.B. eine Bestellung aufgenommen wird, möchte ich nicht die Kundendaten eingeben. Also merke ich mir bei den Bestelldaten nur die ID des Kunden. Wenn ich die Bestellunterlagen drucken will, suche ich mir die Daten mit einer SQL-Abfrage zusammen, oder verbinde die Tabellen, was mir die Erstellung einer SQL-Abfrage erspart.

Voraussetzungen:

In der Bestelldatei ist ein Integer-Feld Für den Kunden

Best.db --> Source: BE_S

Feld: KdNr vom Typ Integer

Kundentabelle:

Knd.db --> Source: KD_S

Feld: Name vom Typ String
ID vom Typ Autoinc

Setzt Du nun eine TDBLookupComboBox auf dein Formular, werden folgende Eigenschaften eingetragen.

Aus der Delphi-Hilfe:

property ListSource: TDataSource;

Die Eigenschaft ListSource gibt die Datenquelle für die im Lookup-Steuerelement angezeigten Daten an.

property ListField: String;

Die Eigenschaft ListField bezeichnet das Feld oder die Felder, deren Werte im Lookup-Steuerelement angezeigt werden.

property ListFieldIndex: Integer;

Die Eigenschaft ListFieldIndex gibt an, welches Feld in der Eigenschaft ListField für die inkrementelle Suche verwendet wird.

property DataSource: TDataSource;

Die Eigenschaft DataSource verbindet das Lookup-Steuerelement mit der Datenmenge, die das Datenfeld enthät.

property DataField: String;

Die Eigenschaft DataField gibt das Feld an, dessen Daten im Lookup-Steuerelement angezeigt werden.


ListSource: KD_S
ListField: Name
ListFieldIndex: ID

DataSource: BE_S
DataField: KdNr


In der Combobox werden nun die Namen der Kunden angezeigt. Ist bereits ein Kunde im Bestelldatensatz vorhanden, wird dieser angezeigt. Wird ein neuer Name aus der Kundenliste ausgewählt, wird dessen ID in die Bestelltabelle übernommen.

Bei einer Sache muss man aufpassen:
Ist die Eigenschaft 'AutoEdit' der Datasource der Bestelltabelle (BE_S) True, kann der Kundeneintrag immer geändert, sobald ein anderer Name gewählt wird. Aus diesem Grund setzte ich diesen Wert immer auf 'False'. Die Daten können dann nur geändert werden, wenn die Tabelle auf 'EDIT' gesetzt ist.

So, dies war jetzt viel zu lesen, aber ich hoffe, dass Du damit Dein Problem lösen kannst.

Kalli