Importation des données dans mon combobox

Résolu
Leader2000
Messages postés
187
Date d'inscription
mercredi 24 mai 2006
Statut
Membre
Dernière intervention
28 août 2015
- 12 avril 2013 à 10:26
Leader2000
Messages postés
187
Date d'inscription
mercredi 24 mai 2006
Statut
Membre
Dernière intervention
28 août 2015
- 15 avril 2013 à 12:55
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

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

12 avril 2013 à 10:56
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
3
solilog
Messages postés
273
Date d'inscription
samedi 13 juin 2009
Statut
Membre
Dernière intervention
18 avril 2015
10
12 avril 2013 à 20:52
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
3
Leader2000
Messages postés
187
Date d'inscription
mercredi 24 mai 2006
Statut
Membre
Dernière intervention
28 août 2015

15 avril 2013 à 12:55
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
0