Autor Beitrag
rob87
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 461

Win Me, Win XP Home, Win XP Prof
Delphi 2007 Enterprise
BeitragVerfasst: Di 02.12.08 09:24 
Hallo,

ich hab grad des seltsame Problem, dass meine ComboBox nur einen Wert enthält?? Den des ersten Datensatzes???

Meine ComboBox ist eine DBComboBox-Komponente und ich seh immer nur den Inhalt der im ersten Datensatz drinsteht. Kann die ComboBox aber ned aufmachen und den Wert ändern?

Ich mein, ich könnt die Daten auch mit ner Schleife aus der DB in ne normale ComboBox füllen, aber des muas ja ned sein, oder??

Ich will da was auswählen können, und dann soll er in einer DB den Zeiger auf den Datensatz setzen, wo er den Wert aus der CB in einem Attribut findet
delphiprogrammierer
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 53



BeitragVerfasst: Di 02.12.08 11:35 
Hoi,

was du benötigst ist nich die DBComboBox sonder die DBLookupComboBox.


Grusse

Delphiprogrammierer
rob87 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 461

Win Me, Win XP Home, Win XP Prof
Delphi 2007 Enterprise
BeitragVerfasst: Di 02.12.08 12:38 
user profile icondelphiprogrammierer hat folgendes geschrieben Zum zitierten Posting springen:
Hoi,

was du benötigst ist nich die DBComboBox sonder die DBLookupComboBox.

Grusse

Delphiprogrammierer

Hab ich geändert? DataSource und DataField eingebunden. Nun geht gar nix mehr :-(
rob87 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 461

Win Me, Win XP Home, Win XP Prof
Delphi 2007 Enterprise
BeitragVerfasst: Di 02.12.08 12:40 
user profile icondelphiprogrammierer hat folgendes geschrieben Zum zitierten Posting springen:
Hoi,

was du benötigst ist nich die DBComboBox sonder die DBLookupComboBox.

Grusse

Delphiprogrammierer

Hab ich geändert? DataSource und DataField eingebunden. Nun geht gar nix mehr. Nur noch eine ComboBox die ich behandeln kann, wie wenn sie enabled = true wär ??
delphiprogrammierer
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 53



BeitragVerfasst: Di 02.12.08 14:47 
Du must natürlich auch ListSource, ListField und KeyField angeben


Nehmen wir mal an du hast eine Tabelle mit Anreden "tbl_anrede" und eine Tabelle tbl_personen mit einem Feld refAnrede, dann sieht es so aus :

ListSource hat das SQL select internalid, bezeichnung from tbl_anrede
ListField ist auf bezeichnung gesetzt
Keyfield ist auf internalid gesetzt

DataSource ist die tabelle tbl_personen und das datafield ist refanrede. Sobald du die tabelle tbl_personen und tbl_anreden auf aktiv setzt und personen mit einer gültigen Anrede in der Tabelle stehen, wird in der ComboBox die Anrede in Textform geschrieben.



Falls noch was offen ist, einfach schreiben.
rob87 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 461

Win Me, Win XP Home, Win XP Prof
Delphi 2007 Enterprise
BeitragVerfasst: Mi 03.12.08 09:00 
user profile icondelphiprogrammierer hat folgendes geschrieben Zum zitierten Posting springen:
Du must natürlich auch ListSource, ListField und KeyField angeben


Nehmen wir mal an du hast eine Tabelle mit Anreden "tbl_anrede" und eine Tabelle tbl_personen mit einem Feld refAnrede, dann sieht es so aus :

ListSource hat das SQL select internalid, bezeichnung from tbl_anrede
ListField ist auf bezeichnung gesetzt
Keyfield ist auf internalid gesetzt

DataSource ist die tabelle tbl_personen und das datafield ist refanrede. Sobald du die tabelle tbl_personen und tbl_anreden auf aktiv setzt und personen mit einer gültigen Anrede in der Tabelle stehen, wird in der ComboBox die Anrede in Textform geschrieben.



Falls noch was offen ist, einfach schreiben.

Hm??? Versteh ich grad noch ned ganz. :?
Also ich hab eine Tabelle. "Tab01", und der Wert des Attributes "Textfeld0815" soll in meine ComboBox.

Ich hab ein AdoQuery -> DS -> DBGrid bzw. DBComboBox/DBLookupComboBox
delphiprogrammierer
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 53



BeitragVerfasst: Mi 03.12.08 10:23 
schreib doch einfach mal die tabellennamen dazu, damit ich mir vorstellen kann was du möchtest.
rob87 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 461

Win Me, Win XP Home, Win XP Prof
Delphi 2007 Enterprise
BeitragVerfasst: Mi 03.12.08 10:25 
user profile icondelphiprogrammierer hat folgendes geschrieben Zum zitierten Posting springen:
schreib doch einfach mal die tabellennamen dazu, damit ich mir vorstellen kann was du möchtest.


Darf ich leider ned. Datenschutz. Sind Firmendaten :-( Aber ich versuch das Ganze nochmal etwas zu erläutern:

Mein DBGrid bzw. das Query dahinter sucht mir aus zwei Tabellen versch. Spalten zusammen und listet diese auf (ganz einfacher select mit join und where).

nun soll die ComboBox beim Programmstart mit Werten aus einer Spalte aus einer anderen Tabelle gefüllt werden. Und diese ComboBox-Auswahl wird dann weiter verarbeitet... Die Verarbeitung klappt auch. Es wird auch ein richtiger Attributwert in die ComboBox eingetragen. Aber ich kann halt eben keinen anderen auswählen
------- Soweit so gut --------------------------------------------------------------

Und meine Frage ist nun, wie kann ich eine ComboBox mit den Werten aus einer Spalte füllen und diese dann auch auswählen
1.) DBComboBox einsetzen und DataField verknüpfen
2.) Normale ComboBox zu Beginn mit einer Schleife (welche durch die eine Tabelle geht, wo meine gewünschte Spalte drin ist) füllen. Beides hab ich schon getestet
rob87 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 461

Win Me, Win XP Home, Win XP Prof
Delphi 2007 Enterprise
BeitragVerfasst: Mi 03.12.08 11:49 
user profile iconrob87 hat folgendes geschrieben Zum zitierten Posting springen:

Und meine Frage ist nun, wie kann ich eine ComboBox mit den Werten aus einer Spalte füllen und diese dann auch auswählen
1.) DBComboBox einsetzen und DataField verknüpfen
2.) Normale ComboBox zu Beginn mit einer Schleife (welche durch die eine Tabelle geht, wo meine gewünschte Spalte drin ist) füllen. Beides hab ich schon getestet


So. Ich mach nun einfach folgendes beim FormShow:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
    CBxyz.Clear;
    repeat
      CBxyz.Items.Add(Tabelle4711.FieldByName('Spalte0815').Value);
      Tabelle4711.Next;
    until Tabelle4711.Eof;
    CBxyz.ItemIndex := 0;


Funktioniert. Passt. Fertig!!! Zwar seltsam mit der DBComboBox. Aber so gehts auch
DeddyH
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mi 03.12.08 12:49 
Ich würde allerdings statt der Fußschleife (repeat) eine Kopfschleife (while) verwenden, sonst knallt es bei leeren Datenmengen.