Filtrer les données de DBGrid connecté à ADOQuery [Résolu]

Messages postés
19
Date d'inscription
mardi 10 mai 2005
Dernière intervention
1 août 2006
- 26 juil. 2006 à 14:53 - Dernière réponse :
Messages postés
2233
Date d'inscription
mardi 10 décembre 2002
Dernière intervention
15 décembre 2014
- 1 août 2006 à 14:42
Salut,
j'utilise un DBGrid connecté  ADOQuery pour afficher les données de la base Accès.  Je cherche à filtrer les données en tapant un caractère apha dans Edit. Mais il arrive que lorsque je tape un caractère toutes les données de DBGrid s'efface rien ne reste. Auriez-vous l'amabilité de venir en aide ?. D'avance merci pour toute personne que viendrai en mon secours. Voici le code:

procedure TWddeStock.RzEdit1Change(Sender: TObject);
begin
   if RzEdit1.GetTextLen<> 0 then
   begin
     DMStock.QStock.Filter:= 'Libelle='''+RzEdit1.Text+'*''';
     DMStock.QStock.Filtered:=true;
   end
  else
   DMStock.QStock.Filtered: =false;
end;

A+
Cobuce
 

 
Afficher la suite 

Votre réponse

10 réponses

Meilleure réponse
Messages postés
2233
Date d'inscription
mardi 10 décembre 2002
Dernière intervention
15 décembre 2014
28 juil. 2006 à 18:28
3
Merci
Je viens d' essayer de changer FilterOptions d' une table ADO mais ce n' est pas supporté.

Donc, le seul moyen que je vois  c' est :
DMStock.QStock.Filter:='Libelle>=' + QuotedStr(RzEdit1.Text);

Si tu veux filter mieux tu ajoute ' AND (Libelle<=' + QuotedStr(RzEdit1.Text) + 'ZZZ)';
A+

Merci cs_MAURICIO 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 90 internautes ce mois-ci

Commenter la réponse de cs_MAURICIO
Messages postés
2233
Date d'inscription
mardi 10 décembre 2002
Dernière intervention
15 décembre 2014
27 juil. 2006 à 21:08
0
Merci
Désolé mais je ne peux pas tester pour l' instant mais tu peux faciliter l' écriture comme ça:
DMStock.QStock.Filter:='Libelle=' + QuotedStr(RzEdit1.Text) + '*';


A+
Commenter la réponse de cs_MAURICIO
Messages postés
19
Date d'inscription
mardi 10 mai 2005
Dernière intervention
1 août 2006
27 juil. 2006 à 23:41
0
Merci
Salut Moricio
Merci pour ton intervention. Je viens de tester, mais malheureusement ça ne marche pas. Une erreur s'affiche à l'exécution du genre " Arguments are of the wrong type, are out of acceptable range, or are in conflit with one anather".
Y-a-t-il pas quelqu'un qui peut m'aider ?
A+
Cobuce

 
Commenter la réponse de Cobuce
Messages postés
19
Date d'inscription
mardi 10 mai 2005
Dernière intervention
1 août 2006
30 juil. 2006 à 23:42
0
Merci
Salut Moricio,
Merci pour votre intervention, la permière partie de la solution proposée marche,  mais lorsque j'essai d'ajouter ' AND (Libelle<= ' + QuotedStr(RzEdit1.Text) + 'ZZZ)'; une erreur signalée précédement s'affiche. Voici la procedure après modification, prière vérifier s'il manque qlq chose :
procedure TWddeStock.RzEdit1Change(Sender: TObject);
begin
   if RzEdit1.GetTextLen<> 0 then
   begin
 DMStock.QStock.Filter: ='Libelle>='+QuotedStr(RzEdit1.Text)+
        ' AND (Libelle<=' + QuotedStr(RzEdit1.Text) + 'ZZZ)';
     DMStock.QStock.Filtered:=true;
   end
  else
   DMStock.QStock.Filtered:=false;
end;

A+
Cobuce,

 
Commenter la réponse de Cobuce
Messages postés
2233
Date d'inscription
mardi 10 décembre 2002
Dernière intervention
15 décembre 2014
31 juil. 2006 à 10:13
0
Merci
Salut, 

 DMStock.QStock.Filter:='(Libelle>='+QuotedStr(RzEdit1.Text)+
        ') AND (Libelle<=' + QuotedStr(RzEdit1.Text) + 'ZZZ)';
     DMStock.QStock.Filtered:=true;

Il faut mettre des parenthèses à chaque argument !!!
A+
Commenter la réponse de cs_MAURICIO
Messages postés
54
Date d'inscription
samedi 27 mars 2004
Dernière intervention
1 août 2006
31 juil. 2006 à 12:59
0
Merci
Merci Mauricio tu viens de résoudre un problème sur lequel je ramais, c'est du clair net et précis

Ce n'est pas parce qu'on débute que l'on est forcement idiot
DGPat
Commenter la réponse de DGPat
Messages postés
19
Date d'inscription
mardi 10 mai 2005
Dernière intervention
1 août 2006
31 juil. 2006 à 16:11
0
Merci
Salut Moricio,
Je viens de placer les paranthèses, mais le problème persiste cad la même erreur s'affiche (Arguments are .......) lorsque je tape un caractère dans RzEdit.
Que dois-je faire ?
A+
Cobuce
 
Commenter la réponse de Cobuce
Messages postés
2233
Date d'inscription
mardi 10 décembre 2002
Dernière intervention
15 décembre 2014
31 juil. 2006 à 17:14
0
Merci
As tu bien mis les parenthèses?

tu dois avoir un filtre du genre:
(Libelle>='S') and (Libelle>='SZZZ')

Mets un Breakpoint et dis moi ce que tu as dans Filter ...
A+
Commenter la réponse de cs_MAURICIO
Messages postés
19
Date d'inscription
mardi 10 mai 2005
Dernière intervention
1 août 2006
1 août 2006 à 13:38
0
Merci
Salut Mauricio,

Voici le filtre tel qu'il apparaît :
(Libelle>='m') and (Libelle<='m'ZZZ)
A+
Cobuce
 
Commenter la réponse de Cobuce
Messages postés
2233
Date d'inscription
mardi 10 décembre 2002
Dernière intervention
15 décembre 2014
1 août 2006 à 14:42
0
Merci
Bem non:
(Libelle>='m') and (Libelle<='m'ZZZ)
ça doit être comme ça :
(Libelle>='m') and (Libelle<='mZZZ')

Je me suis trompé:
 DMStock.QStock.Filter:='(Libelle>='+QuotedStr(RzEdit1.Text)+
        ') AND (Libelle<=' + QuotedStr(RzEdit1.Text + 'ZZZ') + ')';
Voilà, ça devrait marcher ...
A+
Commenter la réponse de cs_MAURICIO

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.