Hallo, ich habe eine DBLookupCombobox in meinem Programm. Nun möchte ich aus der Listsource ein weiteres Feld auslesen (nicht anzeigen). Wie mache ich das? Bsp: Listsource:
OID (Integer KontaktArt (String) KontaktTyp (Integer)
Die Kontaktart wird angezeigt und übernommen (ist so OK), bei Auswahl soll aber ebenfalls der KontaktTyp übergeben werden. Der KontaktTyp ist nicht eindeutig, d.h. ein Typ kann mehrfach vorhanden sein!
Wenn in der DBLookUpCombobox die 'Kontaktart' gewählt wird, stehen automatisch die dazugehörigen Datenfelder des Datensatzes zur Verfügung. Du kannst also den zugehörigen 'Kontakttyp' ganz einfach abgreifen. Eventuell das dann im OnSelect oder OnCloseUp.
procedure TForm1.DBLookupComboBox1Select(Sender: TObject); begin if DBF1.Locate('MTH_NAME',DBLookUpComboBox1.Text,[])then showmessage(DBF1ID.AsString); end;
procedure TfrmEditKontakt.DBLookupComboBox1Select(Sender: TObject); begin if DBLookupComboBox1.ListSource.DataSet.Locate('kontaktart',DBLookUpComboBox1.Text,[])then ShowMessage(DBLookupComboBox1.ListSource.DataSet.FieldByName('kontakttyp').AsString); end;
Alle sagten, dass es unmöglich sei - bis einer kam und es einfach gemacht hat.