Bin gerade durch Zufall daraufgekommen wie es wirklich geht eine datenbank gebundene Combobox mit mehreren spalten zu realisieren wo es egal ist welche spalte dann wirklich in das Hauptdataset der
DB zurückgespeichert wird als Id sozusagen.
da ich diese informationen nirgends in der
DP gefunden habe obwohl ich wirklich lange gesucht hab
möchte ich meine erkenntnisse gerne hier zur verfügung stellen
Folgende eigenschaften bei der Combobox setzen:
Delphi-Quellcode:
with DBLookupComboBox1 do
begin
DataSource := DataSource1; // -> AdoTable1 -> DBGrid1
ListSource := DataSource2;
DataField := 'AuthorEmail'; // from AdoTable1
KeyField := 'Email';
ListFields := 'Name; Email'; // Wenn man mehrere Spalten möchte einfach in den Listfields mit
// Strichpunkt die dbFelder trennen (so einfach kanns gehen)
end;
DataSource2.DataSet := AdoQuery1;
AdoQuery1.Connection := AdoConnection1;
AdoQuery1.SQL.Text := 'SELECT Name, Email FROM Authors';
AdoQuery1.Open;
Anschliessend noch mit der Eigenschaft Listfieldindex die spalte einstellen nach der man durch drüberschreiben auswählen will bzw die im editbereich der combobox angezeigt werden soll.