![]() |
Datenbank: ADO • Version: ? • Zugriff über: ADOQuery
Inhalte eines Fields in eine ComboBox Laden
Hallo zusammen,
gibt es eine Möglichkeit analog:
Code:
oder
StringGrid.Cols[i]
Code:
die Daten eines Fields an eine ComboBox zu übergeben? Ich stehe gerade auf dem Schlauch...
grd.Cols[i].CommaText
Oder muß ich mit First + Next hantieren ? (das dauert mir zu lange im OnDropDown) |
AW: Inhalte eines Fields in eine ComboBox Laden
Warum in onDropDown?
Warum keine TDBLookupComboBox? Welche Datenbank? |
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) |
AW: Inhalte eines Fields in eine ComboBox Laden
Am einfachsten mit TDBLookupComoBox
Abfrage:
SQL-Code:
DBLookupComoBox:
select
ID, Werte from <Tabelle> where Themas = 'Autos'; ListField: Werte KeyField: ID ListSource: DataSource, die mit der Abfrage verknüpft ist. |
AW: Inhalte eines Fields in eine ComboBox Laden
Leider bin ich damit noch erfolglos. Die Box öffnet sich keinen Millimeter:
Code:
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 ?
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; |
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. |
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?
|
AW: Inhalte eines Fields in eine ComboBox Laden
Zitat:
Nachtrag: Ooops! Manchmal sieht man den Wald vor lauter Bäumen nicht... Vergiss diesen Post... |
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 |
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 14:13 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-2025 by Thomas Breitkreuz