Recherche dans datagridview [Résolu]

germany1970 136 Messages postés mardi 4 mars 2008Date d'inscription 22 mars 2014 Dernière intervention - 18 avril 2011 à 17:46 - Dernière réponse :  abdelmajid
- 24 sept. 2017 à 01:18
Bonjour,
j'ai un datagridview avec trois champs (n°_affiliation, nom, adresse ) et qui contient 100 enregistrement rempli depuis une BDD access, et j'ai aussi un textbox.
alors ce que je veux c'est quand je tape dans le textbox une lettre par exemple(M) il ne reste dans la datagridview que les enregistrements dont les noms commencent par la lettre(M) et quand j'ajoute une autre lettre à (M) par exemple (MA) il me reste dans la datagridview que les enregistrements dont les noms commencent par (MA), et ainsi de suite.

je remercie pour votre aide
Afficher la suite 

31 réponses

Répondre au sujet
foliv57 423 Messages postés vendredi 17 novembre 2006Date d'inscription 15 juillet 2014 Dernière intervention - 18 avril 2011 à 18:03
+1
Utile
1
Bonjour,

Regardez du coté de l'objet BindingSource

En gros vous connectez le resultat de votre BDD à la source de l'objet BindingSource et la BindingSource à votre DataGridView.

Ensuite l'objet BindingSource possède tout simplement une propriété Filter qui vous permettra de faire par exemple :
MaBindingSource.Filter = "nom LIKE 'M*'"


Pour filtrer tous les noms commencant par 'M'
Cette réponse vous a-t-elle aidé ?  
merci infiniment pour votre aide
Commenter la réponse de foliv57
biolo24fr 87 Messages postés jeudi 16 janvier 2003Date d'inscription 28 mai 2013 Dernière intervention - 18 avril 2011 à 18:09
+1
Utile
Tu peux filtrer de la façon suivante :

Dim Source As New BindingSource()
Source .DataSource = Me.DataGridView1.DataSource

source1.Filter = "condition"

si tu as un champ NOM par exemple
Condition ça peut être
"NOM like 'M%'"
puis "NOM like 'MA%'" etc...

Tu filtres à la manière SQL (c'est du LINQ quoi en gros)

ça filtrera dans une vue. Pour revenir au normal tu remets la table d'origine.

-----------------------------------------------------------------------------------------------------------
De tous ceux qui n'ont rien à dire, les plus agréables sont ceux qui se taisent.
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de biolo24fr
elwadeh 53 Messages postés samedi 11 avril 2009Date d'inscription 6 septembre 2017 Dernière intervention - 18 avril 2011 à 18:58
+1
Utile
Bonjour j'ai trouver la réponse et je la partage à qui en a besoin.


MaBindingSource.Filter = "Nom like '" & TextBox1.Text & "*'"

et quand je vide le textbox ça marche la datagridview retourne à son état initial.

merci bcp les génies de VBFRANCE.
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de elwadeh
Utilisateur anonyme - 10 avril 2012 à 00:04
+1
Utile
Bonjour,

Tu dois concaténer trois textes. Il te manque des guillemets.

Essaie avec :

Source.Filter = "nom_colone like '" & Valeur & "'" 
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de Utilisateur anonyme
germany1970 136 Messages postés mardi 4 mars 2008Date d'inscription 22 mars 2014 Dernière intervention - 18 avril 2011 à 18:30
0
Utile
Bonjour,
je vous remercie bcp Foliv57 et biolo24fr vous etes vraiment des anges mais pour que les choses soient impec je veux la deuxième etape c'est que quand j'ajoute une autre lettre à (M) par exemple (S) il affiche les noms qui commencent par MS.
je veux aussi quand je vide le textbox ma datagridview revient à son état intial.

merci encore une fois
Commenter la réponse de germany1970
elwadeh 53 Messages postés samedi 11 avril 2009Date d'inscription 6 septembre 2017 Dernière intervention - 18 avril 2011 à 18:40
0
Utile
Bonjour,
encore une chose j'ai pas que la lettre (M) pour la recherche ça peut etre n'importe quelle lettre.
merci
Commenter la réponse de elwadeh
cs_niblon 64 Messages postés mardi 8 août 2006Date d'inscription 20 septembre 2011 Dernière intervention - 31 août 2011 à 13:54
0
Utile
Merci , pour ce code que je cherchais depuis un petit moment

Niblon
Commenter la réponse de cs_niblon
saritasarita 3 Messages postés vendredi 23 avril 2010Date d'inscription 6 janvier 2012 Dernière intervention - 6 janv. 2012 à 00:45
0
Utile
merciii beaucoupp enfin j'ai trouvé merciii
Commenter la réponse de saritasarita
ranouza 16 Messages postés jeudi 22 mars 2012Date d'inscription 12 mai 2013 Dernière intervention - 8 avril 2012 à 21:34
0
Utile
Bonsoir,
j'ai un datagridview avec cinq champs (matricule, numero_chassier, reference,Date_achat,Date_assurance ) et qui contient 50 enregistrements rempli depuis une BDD access, et j'ai aussi un textbox(type date) nommé "Date_assuranceDateTimePicker1".
Pour cela je veux c'est quand je cherche par date il ne reste dans la datagridview que les enregistrements(lignes) qui concernent ce date.
je remercie pour votre aide
Commenter la réponse de ranouza
Utilisateur anonyme - 9 avril 2012 à 04:01
0
Utile
Bonjour,

Tu as juste à adapter un petit peu les réponses plus haut que tu as visiblement sorti par mégarde des archives. (C'est probablement ça que les Français appellent avoir une veine de cocu.)
Commenter la réponse de Utilisateur anonyme
ranouza 16 Messages postés jeudi 22 mars 2012Date d'inscription 12 mai 2013 Dernière intervention - 9 avril 2012 à 21:42
0
Utile
Bonsoir;
J'ai bien tapé le code ci dessus.
Mon problème c'est que je veux chercher dans le datagridview qui contient une colonne de type date à travers un textbox(TimePicker) mais un message d'erreur "Cannot perform 'Like' operation on System.DateTime and System.String."
S'il vous plait aidez moi
Je vous remercie
Commenter la réponse de ranouza
Utilisateur anonyme - 9 avril 2012 à 22:49
0
Utile
Bonjour,

Tu convertis ta date en string.

lavariablequireprésenteladate.tostring
ou
ctype()
ou
cstr()
Commenter la réponse de Utilisateur anonyme
ranouza 16 Messages postés jeudi 22 mars 2012Date d'inscription 12 mai 2013 Dernière intervention - 9 avril 2012 à 23:56
0
Utile
Bonsoir;
je vous remercie mais malgré la conversion le message d'erreur reste le même "Cannot perform 'Like' operation on System.DateTime and System.String."
Voici mon code VB
Valeur = lavariablequireprésenteladate.tostring
Source.Filter = "nom_colone like ' & Valeur & '"
Commenter la réponse de ranouza
ranouza 16 Messages postés jeudi 22 mars 2012Date d'inscription 12 mai 2013 Dernière intervention - 10 avril 2012 à 00:10
0
Utile
je vous remercie mais le problème n'est pas encore résolu.
Commenter la réponse de ranouza
Utilisateur anonyme - 10 avril 2012 à 00:18
0
Utile
Bonjour,

Il faut que lavariablequireprésenteladate contienne vraiment la valeur de la date. Tu peux la récupérer en passant par la classe DatagridViewCell. Il doit bien y avoir un exemple dans l'aide
de VB

Et puis nom_colone doit être remplacé par le vrai nom de la colonne
Commenter la réponse de Utilisateur anonyme
ranouza 16 Messages postés jeudi 22 mars 2012Date d'inscription 12 mai 2013 Dernière intervention - 10 avril 2012 à 00:19
0
Utile
Voici une partie de mon interface
Commenter la réponse de ranouza
Utilisateur anonyme - 10 avril 2012 à 00:37
0
Utile
Bonjour,

On ne voit rien. Là je décroche, la batterie du portable est déchargée et je n'ai pas Internet chez-moi.

Ce qui te manque:

Récupérer la date (DatagridviewCell dans l'aide de VB
)

Adapter les exemples à ta propre situation. En d'autres termes : mettre les vraies informations dans tes instructions.
Commenter la réponse de Utilisateur anonyme
ranouza 16 Messages postés jeudi 22 mars 2012Date d'inscription 12 mai 2013 Dernière intervention - 10 avril 2012 à 00:54
0
Utile
Vous voulez dire que je dois utiliser DatagridViewCell pour rechercher des lignes dans datagridview a partir d'une calendrier ?
Commenter la réponse de ranouza
ranouza 16 Messages postés jeudi 22 mars 2012Date d'inscription 12 mai 2013 Dernière intervention - 10 avril 2012 à 01:33
0
Utile
[img]"C:\Documents and Settings\media\Bureau\VB1"/img
Commenter la réponse de ranouza
Utilisateur anonyme - 10 avril 2012 à 19:13
0
Utile
Bonjour,

J'ai un peu perdu le fil de la discussion. Reprenons au début

Dans les réponses précédentes de foliv57 et de biolo24fr, il est question de créer un objet BindingSource.

Cet objet BindingSource est lié au DatagridView par la propriété BindingSource du DatagridView

Ensuite tu ajustes la propriété Filter du BindingSource en fonction de tes propres noms de colonnes.

Dans l'aide de VB, il y a des exemples d'utilisation de ces composants.
Commenter la réponse de Utilisateur anonyme

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.

recherche dans datagridview - page 2