Comment filter avec zone de texte?

Signaler
Messages postés
3
Date d'inscription
lundi 4 août 2008
Statut
Membre
Dernière intervention
28 juillet 2009
-
Messages postés
1207
Date d'inscription
dimanche 20 avril 2003
Statut
Membre
Dernière intervention
4 juin 2016
-
salut
s'il vous plait je vous juste savoir comment filtrer une Flexgrid c'est à dire : j'ai une flexgrid et une zone de texte, je tape les lettres dans le champs de saisie et en parallèle le flexgrid affiche les données qui commencent avec la valeur de la zone de texte,
et merci

3 réponses

Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
76
Salut
Il faut faire la recherche la recherche à chaque fois que tu saisis un nouveau caractère, donc les lignes de programme devront se trouver dans maTextBox_Change
Il faut rechercher un texte parmi toutes les cellules de ta FlexGrid : Il faut donc faire une boucle de la première ligne à la dernière : For-Next
Pour comparer le texte, il suffit d'utiliser une syntaxe ressemblant à ça :
   For r = 1 To NombreDeLignesDansMaFlexGrid
      If maCelluleDansMaFlexGrid(r) Like maTextBox & "*" Then
         MsgBox "Ligne " & r
         Exit For
      End If
   Next r
A toi de voir dans l'aide comment récupérer le nombre de ligne d'une FlexGrid et comment on s'adresse à une cellule quand on connait son n° de ligne

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
Messages postés
18
Date d'inscription
jeudi 23 novembre 2006
Statut
Membre
Dernière intervention
5 octobre 2011

salut , je n'ai jamais travaillé avec FlexGrid ,  mais avec une datagrid oui ,
le text box propose un evénement  de changement de valeur , comme Ecriture par exemple
l'évenment :  Textchange .
tu peu choisir cet évement a l'aide de la liste des evenements
et tu me ton code dedans ,
par exemple  pour mon cas je mettai
public sub  onchange()............... handles textbox.textchange   
ad new  adapter("select * from client where nom like'" & textbox.text &"'",con)
ad.fill("client",ds)
datagrid.datasource=ds.table("client")

end sub

et ça marche

bon chance
Messages postés
1207
Date d'inscription
dimanche 20 avril 2003
Statut
Membre
Dernière intervention
4 juin 2016
10
Bonjour,

Autre possibilité, si les données de ta Grid sont issues d'un Recordset, tu fais un filtre du style MonRecordset.Filter = (ici ton filtre, ie le contenu de ta TextBox) et tu rafraîchis ta grille.

A mon avis ce sera plus rapide qu'une boucle. Bien sur il est préférable que ton recordset soit trié.

Calade