Comment filter avec zone de texte?

cs_emab Messages postés 3 Date d'inscription lundi 4 août 2008 Statut Membre Dernière intervention 28 juillet 2009 - 2 juil. 2009 à 04:12
Calade Messages postés 1207 Date d'inscription dimanche 20 avril 2003 Statut Membre Dernière intervention 4 juin 2016 - 2 juil. 2009 à 11:34
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

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
2 juil. 2009 à 09:58
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)
0
cs_curieux007 Messages postés 18 Date d'inscription jeudi 23 novembre 2006 Statut Membre Dernière intervention 5 octobre 2011
2 juil. 2009 à 10:32
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
0
Calade Messages postés 1207 Date d'inscription dimanche 20 avril 2003 Statut Membre Dernière intervention 4 juin 2016 10
2 juil. 2009 à 11:34
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
0
Rejoignez-nous