Plusieurs problèmes :
1- Faute de frappe ?
if Trim(Edit1.Text) = '' then
Tu n'actives donc jamais le filtre.
Je pense que tu voulais écrire :
if Trim(Edit1.Text) <> '' then
2- TDataset.filter ne gère que peux d'instruction,
2.a - UpperCase n'est pas géré.
A la place il faut affecter :
TDataset.FileterOptions = [foCaseInsensitive]
2.b - like n'est pas géré
si foNoPartialCompare n'est pas dans TDataset.FileterOptions alors l'opérateur = ce comporte comme un like.
Donc dans ton cas ca devrait donner :
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| procedure TForm12.Edit1Change(Sender: TObject);
begin
// Arrête le filtrage de la table
form4.client.FilterOptions := [foCaseInsensitive];
form4.client.Filtered:=false;
// Test si il n'y a rien dans le TEdit
if Trim(Edit1.Text) <> '' then
begin
// Construction du Filtre avec le texte saisi dans la zone TEdit
form4.client.Filter := 'Nom_client = ' + QuotedStr(Edit1.Text + '*');
// Activation du filtre
form4.client.Filtered := true;
end;
end; |
PS : attention aux termes : Trier = classer les données ce que tu veux n'est pas un tri mais un filtre !
Partager