Importation des données dans mon combobox [Résolu]

Signaler
Messages postés
187
Date d'inscription
mercredi 24 mai 2006
Statut
Membre
Dernière intervention
28 août 2015
-
Messages postés
187
Date d'inscription
mercredi 24 mai 2006
Statut
Membre
Dernière intervention
28 août 2015
-
Salut!

J'ai deux combobox (cbxType et cbxProd). J'ai dans le cbxType trois items que j'ai inseré: lundi, mardi, mercredi. Je voudrai bien que lors d'un clique sur un de ces items que le cbxProd affiche les données dudit item choisi dans cbxType. Mais ça devra venir de la colonne cbxProd de la table Firme.
Voici ce que j'ai fait:

cbxProd.Items.Clear;
case cbxType.ItemIndex of
0: begin
cbxProd.Clear;
Firme.Filter:='Type=' +quotedstr(cbxType.Text);
Firme.Filtered:= true;
cbxProd.Items.Add(FieldByName('prod').asstring;


Developper est une dimension pour moi.
Leader2000

3 réponses

Messages postés
187
Date d'inscription
mercredi 24 mai 2006
Statut
Membre
Dernière intervention
28 août 2015

J'ai essayé ceci mais ça ne marche toujours pas.

cbxProd.Items.Clear;
case cbxType.ItemIndex of
0: begin
cbxProd.Clear;
Firme.Filter:='Type=' +quotedstr(cbxType.Text);
Firme.Filtered:= true;

try
while not Name_set_anex.Eof do
begin
cbxProd.Items.Add(Firme.FieldByName('prod').asstring);
cbxProd.Next;
end;
finally
firme.EnableControls;


Developper est une dimension pour moi.
Leader2000
Messages postés
273
Date d'inscription
samedi 13 juin 2009
Statut
Membre
Dernière intervention
18 avril 2015
9
Bonsoir,
tu devrais essayer qq'chose comme çà:

Chez moi cbxType contient 1, 2, 3, ...
J'ai une table avec les champs RapId, RapLi, Libel
Je charge cbxProd avec le champ Libel filtre sur RapId
Le champ "RapId" est integer chez moi, mais avec tes quotesstr tu devrais t'en sortir.
Dans la procedure click de ton cbxType:

procedure TForm1.cbxTypeClick(Sender: TObject);
var vFilter:string;
begin
cbxProd.clear;
vFilter := 'RapId=' + cbxType.text; // chez toi quotedstr ...
table2.filter := vFilter;
table2.filtered := true;
table2.first;
while not table2.eof do
begin
cbxProd.items.add( table2.fieldbyname('Libl').asstring);
table2.next;
end;
end;
Avec ma table, çà marche. Mais c'est vraiment pas top, il y a bien mieux à faire, commence à utiliser les dbLookupCombobox directement sur le datasource de ta table.

Salut
solilog
Messages postés
187
Date d'inscription
mercredi 24 mai 2006
Statut
Membre
Dernière intervention
28 août 2015

Merci @solilog.

Curieusement, j'ai ces mêmes codes que j'ai mis dans un Tbutton. ça marché quand. Je n'ai pas essayé le tien. Mais en lisant tes codes ça marcherait bien.

Code Delphi :
cbxProd.Items.Clear;
case cbxType.ItemIndex of
0: begin
cbxProd.Clear;
Firme.Filter:='Type=' +quotedstr(cbxType.Text);
Firme.Filtered:= true;

try
while not Name_set_anex.Eof do
begin
cbxProd.Items.Add(Firme.FieldByName('prod').asstring);
cbxProd.Next;
end;
finally
firme.EnableControls;


Developper est une dimension pour moi.
Leader2000