AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi ComboBoxen mit Daten füllen
Thema durchsuchen
Ansicht
Themen-Optionen

ComboBoxen mit Daten füllen

Ein Thema von Jack23 · begonnen am 19. Okt 2007 · letzter Beitrag vom 19. Okt 2007
Antwort Antwort
Jack23

Registriert seit: 20. Sep 2007
215 Beiträge
 
#1

ComboBoxen mit Daten füllen

  Alt 19. Okt 2007, 14:42
Datenbank: Access • Zugriff über: ADO
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?
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.542 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: ComboBoxen mit Daten füllen

  Alt 19. Okt 2007, 14:48
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).
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Jack23

Registriert seit: 20. Sep 2007
215 Beiträge
 
#3

Re: ComboBoxen mit Daten füllen

  Alt 19. Okt 2007, 14:55
Ok soweit habe ich das schon. Nur bekomme ich die Meldung TComboBox enthält kein Element namens Items
  Mit Zitat antworten Zitat
Progman

Registriert seit: 31. Aug 2007
Ort: 99974 MHL
695 Beiträge
 
Delphi 10.1 Berlin Starter
 
#4

Re: ComboBoxen mit Daten füllen

  Alt 19. Okt 2007, 14:56
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... (??)
Karl-Heinz
Populanten von Domizilen mit fragiler, transparenter Aussenstruktur sollten sich von der Translation von gegen Deformierung resistenter Materie distanzieren!
(Wer im Glashaus sitzt sollte nicht mit Steinen werfen)
  Mit Zitat antworten Zitat
Jack23

Registriert seit: 20. Sep 2007
215 Beiträge
 
#5

Re: ComboBoxen mit Daten füllen

  Alt 19. Okt 2007, 15:01
Hm es werden keine Daten eingefügt.

Ich habe die Procedure jetzt unter onSelect der ComboBox eingetragen.
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#6

Re: ComboBoxen mit Daten füllen

  Alt 19. Okt 2007, 15:02
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
  Mit Zitat antworten Zitat
Jack23

Registriert seit: 20. Sep 2007
215 Beiträge
 
#7

Re: ComboBoxen mit Daten füllen

  Alt 19. Okt 2007, 15:03
Oh es geht jetzt.

Ich hatte vergessen die Query zu aktivieren...Danke!
  Mit Zitat antworten Zitat
Progman

Registriert seit: 31. Aug 2007
Ort: 99974 MHL
695 Beiträge
 
Delphi 10.1 Berlin Starter
 
#8

Re: ComboBoxen mit Daten füllen

  Alt 19. Okt 2007, 15:06
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.
Karl-Heinz
Populanten von Domizilen mit fragiler, transparenter Aussenstruktur sollten sich von der Translation von gegen Deformierung resistenter Materie distanzieren!
(Wer im Glashaus sitzt sollte nicht mit Steinen werfen)
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:25 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz