Msflexgrid [Résolu]

Signaler
Messages postés
46
Date d'inscription
mercredi 8 mai 2002
Statut
Membre
Dernière intervention
26 mars 2008
-
Messages postés
46
Date d'inscription
mercredi 8 mai 2002
Statut
Membre
Dernière intervention
26 mars 2008
-
Bonjour,

Je souhaite trouver une valeur dans une colonne dans un msflexgrid.

Je remplis le msflexgrid via une base access et je fais un premier trie avec rs.filter (ado).
comment puis je faire pour afficher ma valeur "sans recharger"  ! 

Je n' ais pas trouver le code pour effectuer une boucle de recherche dans le msflexgrid

Merci pour votre aide et bonne année !
Paul

appolofrance

13 réponses

Messages postés
46
Date d'inscription
mercredi 8 mai 2002
Statut
Membre
Dernière intervention
26 mars 2008
5
Bonjour ,

C 'est  un code qui fonctionne apres avoir effectué un premier trie avec rs.filter , on peut trier le tableau ! ...

Private Sub CmdTrier_Click()
Dim MyCount as integer
Mycount = rs.recordcount

 MSFlexGrid1.Col = 7
 
 For x = 1 To MyCount
 MSFlexGrid1.Row = x
If MSFlexGrid1.Text = TextSearch.Text Then
 MSFlexGrid1.RowPosition(MSFlexGrid1.RowSel) = 1
 End If
 Next x

LabelMessage.Caption = "Trie termine pour :  " & TextSearch.Text
end sub

Courage et bonne lecture ...

appolofrance
Messages postés
26
Date d'inscription
mardi 20 mai 2003
Statut
Membre
Dernière intervention
22 janvier 2008

Salam,

Est ce que tu connais par avance la colonne dans le Grid??
Messages postés
46
Date d'inscription
mercredi 8 mai 2002
Statut
Membre
Dernière intervention
26 mars 2008
5
ho déjà une réponse !
Oui c'est la colonne 7

Merci, pour ton aide

appolofrance
Messages postés
26
Date d'inscription
mardi 20 mai 2003
Statut
Membre
Dernière intervention
22 janvier 2008

Salam,

Tu veux une fonction qui te retourne une valeur Boolean pour te dire si la valeur entrée existe ou pas dans la colonne?
Messages postés
46
Date d'inscription
mercredi 8 mai 2002
Statut
Membre
Dernière intervention
26 mars 2008
5
Bien pensée, reflexion faite, si la methode boulean peut me retrouver les valeurs de ma textsearch.text et les afficher dans ma msflexgrid,  je suis preneur !

Merci,
appolofrance
Messages postés
26
Date d'inscription
mardi 20 mai 2003
Statut
Membre
Dernière intervention
22 janvier 2008

Attend un peu, on ne s'est pas bien compris tous les deux.

Tu as un msflexgrid et aussi un text dans un textbox. Tu veux savoir si ce texte existe bien dans la colonne 7 de ton msflexgrid.
Donc pour moi, une fonction boolean qui te dira si cette valeur existe bien dans cette colonne suffit.
C'est bien ça ce que tu veux?
Messages postés
46
Date d'inscription
mercredi 8 mai 2002
Statut
Membre
Dernière intervention
26 mars 2008
5
Ce n'est pas simple dés qu'il sagit d' ecrire les problemes rencontrés surtout en programmation. Je vais essayer d' etre plus explicite.

Apres le remplissage de la msflexgrid , je fais un premier trie de la colonne 2 avec rs.filter. Dans ce tableau j'ai une valeur à retrouver dans la colonne 7.

Si je reprends un rs.filter pour la colonne 7 il me recharge le msflexgrid !

La methode par fonction boolean est correcte mais les resultats ne seront pas affichés dans la msflexgrid.

Merci,
appolofrance
Messages postés
26
Date d'inscription
mardi 20 mai 2003
Statut
Membre
Dernière intervention
22 janvier 2008

Salam,

D'une part, tu dis que tu souhaites "rechercher" une valeur dans ta colonne 7 de ton msflexgrid et d'autre part tu dis qu'il faut "afficher" dans le même msflexgrid.

Désolé mais je n'ai pas encore compris ce que tu veux faire.
Tu pourrais me donner un ti exemple et comme ça je te serais d'une plus grande aide...
Messages postés
46
Date d'inscription
mercredi 8 mai 2002
Statut
Membre
Dernière intervention
26 mars 2008
5
Code en cours ...

Private Sub CmdPrenom_Click()
Monrs.Filter = " [Prenom] LIKE '" & Me.TextSearch.Text & "*' "
end sub

j'ai un premier trie, avec ce trie je souhaite retrouver une valeur dans la colonne 7.

Private Sub CmdPrenom_Click()
Monrs.Filter = " [CodePostal] LIKE '" & Me.TextSearch.Text & "' "
end sub

Resultat : Il me recharge depuis la base access (nouveau recordset)

Comment trouver ma valeur sans recharger ?

j'ai  fais des essais avec la propriete row du msflexgrid sans succes.

Merci pour les solutions proposées !



appolofrance
Messages postés
26
Date d'inscription
mardi 20 mai 2003
Statut
Membre
Dernière intervention
22 janvier 2008

Salam,

alors si j'ai bien compris, disons que ton tableau c'est :

col 1      col2      col3
a               b         c
d               e         e
f               g         h

Tu cherches la valeur h dans la col3, le resultat sera :

col 1      col2      col3

f               g         h

d               e         e
a               b         c

C'est ce que tu veux avoir?
Messages postés
46
Date d'inscription
mercredi 8 mai 2002
Statut
Membre
Dernière intervention
26 mars 2008
5
Avec les tableaux ,

col 1      col2      col3
a               b         c
d               e         e
j                g         h
a               b         c
d               e         e
f                i          h

La valeur h dans la col3, le resultat sera :

col 1      col2      col3
j                g         h
f                i          h

Voila  on voit mieux ?

Merci

appolofrance
Messages postés
222
Date d'inscription
mercredi 5 avril 2006
Statut
Membre
Dernière intervention
18 février 2011
3
Ba taka recharger et pi c'est tout !!! :)
Sinon tu fais un algo qui retire la ligne si la valeur recherchée n'apparait pas et qui "remonte" les ligne du dessous. Je pense que "tant que la valeur n'est pas trouvée" tu efface les lignes en gardant le nombre de ligne effacées en variable, et dès que tu trouve une valeur recherchée, alors tu la "remonte" du nombre de lignes gardées dans la variable. Tu vois s'que j'veux dire ou pas ?

''***************************************************************************
...à votre service
Thanks & Peace
Tonio
Messages postés
26
Date d'inscription
mardi 20 mai 2003
Statut
Membre
Dernière intervention
22 janvier 2008

Salam,

Alors tu peux créer un vecteur as integer où tu stockeras le numéro des lignes qui auront la col3 = 'h'
Puis il suffit de parcourir le grid et puis de supprimer les lignes qui n'appartiennent pas au vecteur.