![]() |
Datenbank: Access • Zugriff über: ADO
ComboBoxen mit Daten füllen
Hallo
Ich bekomme es einfach nicht hin. Ich möchte gerne ein ComboBox mit Werten aus der DB füllen. Ich habe ein leeres Form mit einer ADOQuery drauf. Wie mache ich das am besten? |
Re: ComboBoxen mit Daten füllen
Delphi-Quellcode:
Sollte so gehen (ungetestet).
ComboBox.Items.Clear;
ADOQuery.First; while not ADOQuery.EOF do begin ComboBox.Items.Add(ADOQuery.FieldByName(Feldname).AsString); ADOQuery.Next; end; |
Re: ComboBoxen mit Daten füllen
Ok soweit habe ich das schon. Nur bekomme ich die Meldung TComboBox enthält kein Element namens Items
|
Re: ComboBoxen mit Daten füllen
genau:
Delphi-Quellcode:
so mach ichs mit 'ner Adress-Table ;)
Adressen.First;
for i:=0 to Adressen.RecordCount - 1 do begin s :=Adressen.FieldByName('NACHNAME').Value+', '+ Adressen.FieldByName('VORNAME').Value; ComboBox.Items.Add(s); Adressen.Next; end; Adressen.First; hmm... TComboBox hat aber Items... (??) |
Re: ComboBoxen mit Daten füllen
Hm es werden keine Daten eingefügt.
Ich habe die Procedure jetzt unter onSelect der ComboBox eingetragen. |
Re: ComboBoxen mit Daten füllen
Hallo,
wenn die Komponente mit dem Namen ComboBox keine Eigenschaft Items besitzt, dann ist der Name wohl etwas irreführend. Welchen Typ hat denn diese ominöse Komponente?
Delphi-Quellcode:
Grüße vom marabu
procedure LoadItems(items: TStrings; ds: TDataSet; const fieldName: string);
var bm: TBookmark; begin with ds do begin bm := GetBookmark; DisableControls; First; items.Clear; while not Eof do begin items.Add(FieldByName(fieldName).AsString); Next; end; GotoBookmark(bm); FreeBookmark(bm); EnableControls; end; end; |
Re: ComboBoxen mit Daten füllen
Oh es geht jetzt.
Ich hatte vergessen die Query zu aktivieren...Danke! :oops: |
Re: ComboBoxen mit Daten füllen
Schreib doch diese Füllgeschichte in eine eigene Proc:
Delphi-Quellcode:
die ruft man im FormShow oder irgendwann auf, wenn die Daten geladen sind.
procedure TfrmData.FillListe;
var i: Integer; s: String; begin CB.Clear; //Combobox erstmal löschen if Adressen.RecordCount > 0 then begin Adressen.First; for i:=0 to Adressen.RecordCount - 1 do begin s :=Adressen.FieldByName('NACHNAME').Value+', '+ Adressen.FieldByName('VORNAME').Value; CB.Items.Add(s); Adressen.Next; end; Adressen.First; end; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:17 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz