Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Inhalte eines Fields in eine ComboBox Laden (https://www.delphipraxis.net/205971-inhalte-eines-fields-eine-combobox-laden.html)

Juergen2020 5. Nov 2020 13:40

Datenbank: ADO • Version: ? • Zugriff über: ADOQuery

Inhalte eines Fields in eine ComboBox Laden
 
Hallo zusammen,
gibt es eine Möglichkeit analog:

Code:
StringGrid.Cols[i]
oder
Code:
grd.Cols[i].CommaText
die Daten eines Fields an eine ComboBox zu übergeben? Ich stehe gerade auf dem Schlauch...

Oder muß ich mit First + Next hantieren ? (das dauert mir zu lange im OnDropDown)

mkinzler 5. Nov 2020 13:53

AW: Inhalte eines Fields in eine ComboBox Laden
 
Warum in onDropDown?
Warum keine TDBLookupComboBox?
Welche Datenbank?

Juergen2020 5. Nov 2020 15:30

AW: Inhalte eines Fields in eine ComboBox Laden
 
Es ist eine bereits bestehende ältere Datenbank der Firma wo verschiedene Inhalte in einer Tabelle sind:
ID Themas Werte
1 Auto Nummer
2 Auto Tür
3 Mofa Sitz
4 Mofa Auspuff

Ich möchte z.B. alle Wert des Themas "Auto" in ein Auswahlfeld zaubern. (MS SQL Server)

mkinzler 5. Nov 2020 15:52

AW: Inhalte eines Fields in eine ComboBox Laden
 
Am einfachsten mit TDBLookupComoBox

Abfrage:

SQL-Code:
select
  ID, Werte
from
  <Tabelle>
where
  Themas = 'Autos';
DBLookupComoBox:

ListField: Werte
KeyField: ID
ListSource: DataSource, die mit der Abfrage verknüpft ist.

Juergen2020 6. Nov 2020 12:32

AW: Inhalte eines Fields in eine ComboBox Laden
 
Leider bin ich damit noch erfolglos. Die Box öffnet sich keinen Millimeter:
Code:
procedure TForm1.DBLookupComboBox2DropDown(Sender: TObject);
begin with ADOQuery8 do
        begin SQL.Text := 'Select ID, Wert from Sammler where (Thema = ''AG'');';
              Open;
              with DBLookupComboBox2 do
                begin ListField := 'Wert';
                      KeyField := 'ID';
                      ListSource := DataSource8;
                end;
        end;
end;
Ich wüßte jetzt auch nicht wirklich, wie ich die Box dann befülle im "Offline-Modus" Es werden die vollen Querys gespeichert und bei Offline-Modus geladen, aber offline kann ich ja kein SQL benutzen ?

Jumpy 6. Nov 2020 13:26

AW: Inhalte eines Fields in eine ComboBox Laden
 
Hallo,

du musst den Inhalt der Tabelle doch irgendwo vorhalten, sei es in einem Offline Recordset/Datasource oder in Objekten oder Records die in einer Liste oder Array gespeichert sind. Immer, wenn nun etwas passiert, wodurch die ComboBox neu gefüllt werden soll, löschst du halt die Items der Combobox, gehst deine Liste oder Recordset durch und fügst alle Werte mit dem entsprechenden Merkmal (z.B. Auto) der Combobox hinzu.
Dann reicht auch eine normale Combobox, keine DB-sensitive-Variante.

Redeemer 6. Nov 2020 13:30

AW: Inhalte eines Fields in eine ComboBox Laden
 
Eben hieß die Spalte noch Themas, was sich verdammt nach einem Verstoß gegen 1NF anhört, aber egal. Jetzt soll sie aber Thema heißen... Wie denn jetzt?

freejay 6. Nov 2020 14:00

AW: Inhalte eines Fields in eine ComboBox Laden
 
Zitat:

Zitat von Redeemer (Beitrag 1476803)
Eben hieß die Spalte noch Themas, was sich verdammt nach einem Verstoß gegen 1NF anhört, aber egal. Jetzt soll sie aber Thema heißen... Wie denn jetzt?

Soll das ein Beitrag zu diesem Thema sein? Wenn ja verstehe ich ihn nicht...

Nachtrag:

Ooops! Manchmal sieht man den Wald vor lauter Bäumen nicht... Vergiss diesen Post...

Juergen2020 6. Nov 2020 14:21

AW: Inhalte eines Fields in eine ComboBox Laden
 
Danke für die netten Kommentare. Und ihr habt Recht: In meinem Beispiel "ID Themas Werte" sind die Beschriftungen nicht ganz korrekt. Aber mKinzler hat den Sinn schon durchschaut.

Ich lege, wenn der User Online ist, das komplette Query (Select * From Sammler) per Query.SaveToFile() beim User ab. Beim Offline-Start werden die Daten genauso geladen.

Das funktioniert auch. Beim Starten gehe ich dann durch die Daten und hole die Einträge für die jeweilige ComboBox.

Bleibt zum Schluss eigentlich nur das Thema TDBLookUpComboBox und warum meine Procedure nicht funzt. (obwohl ich sie jetzt hier nicht verwenden werde) Post #5

Jumpy 9. Nov 2020 08:30

AW: Inhalte eines Fields in eine ComboBox Laden
 
Zu #5: OnDropDown ist mMn das falsche Event, um die ComboBox mit Daten zu füllen. Irgendwo anders, z.B. in einer anderen ComboBox passiert irgendwas, weswegen der auswählbare Inhalt von ComboBox2 sich ändern soll, dann muss dein Code z.B. beim OnChange Event der ersten ComboBox eingebaut werden.

Bzgl. Oflline: Wie sollen da Queries funktionieren?


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:53 Uhr.
Seite 1 von 2  1 2      

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