Effectuer plusieurs filtrages dans un DBGrid [Résolu]

Signaler
Messages postés
53
Date d'inscription
samedi 27 mars 2004
Statut
Membre
Dernière intervention
1 août 2006
-
Messages postés
2
Date d'inscription
lundi 8 novembre 2010
Statut
Membre
Dernière intervention
12 janvier 2011
-
Bonjour,
Je voudrais éffectuer plusieurs filtrages dans un DBGrid
Voici ma méthode pour filtrer ma table Paradox dans un DBGrid

procedure TFmFactC.Edit4Change(Sender: TObject);
var Filtre : string;
begin Filtre :'Periode''' + Edit4.Text + '*''';
if Edit4.Text ='' then
begin
TbFacToutes.Filtered:=false;
exit;
end;
TbFacToutes.Filter := Filtre;
TbFactoutes.Filtered := true;

Cette méthode fonctionne bien pour filtrer ma table sur une "Période" mais je voudrais en plus filtrer la Période par exemple par "Nom" et ensuite par "Site", et là je bloque, j'ai essayé divers solutions mais apparament pas la bonne, si quelqu'un peut me donner un coup de pouce ???

Merci d'avance.

4 réponses

Messages postés
1119
Date d'inscription
lundi 4 février 2002
Statut
Membre
Dernière intervention
4 octobre 2006
6
Et bien voici comment faire :
Filtre :'(Periode ' + QuotedStr(Edit1.Text) + ') AND (Nom = ' + QuotedStr(Edit2.text) + ') AND Annee = ' + Edit3.text + ')';

Si tu veux saisir des chaines de caractères tu ne dois pas oublier le QuotedStr car sinon ca ne fonctionne pas.

Sinon solution un peu plus présentable quand tu as des grands filtres je trouve la commande format :
Filtre :Format('(Periode ''%s'') AND (Nom = ''%s'') AND (Annee = %s) ',[Edit1.Text,Edit2.Text,Edit3.Text]);

Voila j'espere t'avoir depanner.

Bonne prog,
JMP.
Messages postés
53
Date d'inscription
samedi 27 mars 2004
Statut
Membre
Dernière intervention
1 août 2006

Merci jmp77 j'ai essayé ca fonctionne (adapté suivant mes besoins)
Messages postés
1
Date d'inscription
mercredi 20 février 2008
Statut
Membre
Dernière intervention
12 janvier 2011

salut,
je travail avec c++builder6 et interbase comme SGBD ,Je voudrais éffectuer un filtrages dans un DBGrid ,j'ai essai avec

String Filtre "C_produit '" + C_produit->Text + "'";
if (C_produit->Text.IsEmpty())
{
PRODUIT->Filtered=false;
return;
}
PRODUIT->Filter = Filtre;
PRODUIT->Filtered = true;

mais ca marche pas, merci d'avance
Messages postés
2
Date d'inscription
lundi 8 novembre 2010
Statut
Membre
Dernière intervention
12 janvier 2011

[img]C:\Documents and Settings\helsinki\Bureau/img