Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi ComboBoxen mit Daten füllen (https://www.delphipraxis.net/101878-comboboxen-mit-daten-fuellen.html)

Jack23 19. Okt 2007 15:42

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?

DeddyH 19. Okt 2007 15:48

Re: ComboBoxen mit Daten füllen
 
Delphi-Quellcode:
ComboBox.Items.Clear;
ADOQuery.First;
while not ADOQuery.EOF do
  begin
    ComboBox.Items.Add(ADOQuery.FieldByName(Feldname).AsString);
    ADOQuery.Next;
  end;
Sollte so gehen (ungetestet).

Jack23 19. Okt 2007 15:55

Re: ComboBoxen mit Daten füllen
 
Ok soweit habe ich das schon. Nur bekomme ich die Meldung TComboBox enthält kein Element namens Items

Progman 19. Okt 2007 15:56

Re: ComboBoxen mit Daten füllen
 
genau:
Delphi-Quellcode:
    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;
so mach ichs mit 'ner Adress-Table ;)
hmm... TComboBox hat aber Items... (??)

Jack23 19. Okt 2007 16:01

Re: ComboBoxen mit Daten füllen
 
Hm es werden keine Daten eingefügt.

Ich habe die Procedure jetzt unter onSelect der ComboBox eingetragen.

marabu 19. Okt 2007 16:02

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:
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;
Grüße vom marabu

Jack23 19. Okt 2007 16:03

Re: ComboBoxen mit Daten füllen
 
Oh es geht jetzt.

Ich hatte vergessen die Query zu aktivieren...Danke! :oops:

Progman 19. Okt 2007 16:06

Re: ComboBoxen mit Daten füllen
 
Schreib doch diese Füllgeschichte in eine eigene Proc:
Delphi-Quellcode:
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;
die ruft man im FormShow oder irgendwann auf, wenn die Daten geladen sind.


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