Comment filtrer avec .filter dans une ADO Table ? [Résolu]

cs_crsi 9 Messages postés mercredi 2 avril 2003Date d'inscription 5 décembre 2005 Dernière intervention - 4 déc. 2005 à 19:20 - Dernière réponse :  tabtah
- 29 janv. 2013 à 22:30
Bonjour à tous,


Je transforme mes bases Access BDE en ADO. Tous mes filtres fonctionnant parfaitement en BDE ne m’affichent plus aucunes données dans ma DBGRID depuis le passage en ADO.


Je me rends compte, après avoir surfé sur différents forums que je ne suis pas le seul dans le cas.Voici ma programmation … rien de plus simple ?!





adotable1.Filter:= 'Nom=' + quotedstr(edit2.Text+'*');


adotable1.Filtered := true;


Pouvez-vous m’aider ?
Bien grand merci !!!!
Afficher la suite 

5 réponses

Répondre au sujet
cs_crsi 9 Messages postés mercredi 2 avril 2003Date d'inscription 5 décembre 2005 Dernière intervention - 5 déc. 2005 à 22:03
+3
Utile
Tout d'abord, je te remercie de me venir en aide ...
Je suis certain que ta requête et parfaitement codée, mais la dbgrid n'affiche toujours rien ! Pourrais-tu me donner tous les éléments de connexion pour que celle-ci affiche le résultat !
Moi j'ai ... TDataSource lié à un TADOQuery ...
Merci.
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de cs_crsi
cs_tigrou19 67 Messages postés vendredi 15 août 2003Date d'inscription 5 décembre 2005 Dernière intervention - 5 déc. 2005 à 14:24
+1
Utile
Salut,

Essais comme ça

AdoQuery1.active:=false;

AdoQuery1.Sql.text:='Select * from tatable Where Nom Like "'+Edit2.text+'%"';

AdoQuery1.active:=true;



filtre tout les noms qui commence par

@+
Commenter la réponse de cs_tigrou19
nn2009 14 Messages postés dimanche 31 mai 2009Date d'inscription 14 novembre 2011 Dernière intervention - 3 juin 2009 à 11:37
+1
Utile
salut à tous
j'ai un problème que personne n'a pu me donner la bonne réponse
voila: je filtre ma table sur deux editeurs mais pas en même temps, un seul à la fois.
le 1er devra contenir un code qui est un entier
le second devra contenir un nom  qui est un string, alors filtrer la table sur un string c'est facile mais sur un entier C comme voyager dans le temps,
j'utilise l'événement OnChange Edit des 2 editeurs
le 1er code source est:
procedure TModifier_Patient.Edit1Change(Sender: TObject);
begin
Adotable1.Filtered:=false;
if edit1.Text ='' then exit;
AdoTable1.Filter := 'CODE_PATIENT LIKE'  + QuotedStr(Edit1.Text + '%');
AdoTable1.filtered := True;
end;
le second est :
procedure TModifier_Patient.Edit2Change(Sender: TObject);
begin
Adotable1.Filtered:=false;
if edit2.Text ='' then exit;
AdoTable1.Filter := 'Nom_Patient LIKE ('+''''+edit2.Text+'%'+''''+')';
AdoTable1.filtered := True;
end;
lorsque j'e'xecute la 1ere fois et je filtre sur le code(entier) ça marche et lorsque je vais sur le second edit pour filtrer sur le nom ça marche aussi mais des que je reviens au 1er edit pour refiltrer sur un entier(code) ça foire, ma table ne contiens que les enregistrements dont j'ai filtré dérnièrement dans le 2eme edit .
coment faire !?
Commenter la réponse de nn2009
+1
Utile
merci ca marche parfaitement
Commenter la réponse de tabtah
cs_abdenour123 17 Messages postés lundi 21 janvier 2008Date d'inscription 29 mai 2009 Dernière intervention - 21 mai 2009 à 04:52
0
Utile
with ADODataSet1 do begin
Filter :='Ligne_compte ='+QuotedStr('1');
Filtered:=true;

its better
Commenter la réponse de cs_abdenour123

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.