Recherche dans datagridview [Résolu]

Messages postés
136
Date d'inscription
mardi 4 mars 2008
Dernière intervention
22 mars 2014
- 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 

Votre réponse

31 réponses

Meilleure réponse
Messages postés
423
Date d'inscription
vendredi 17 novembre 2006
Dernière intervention
15 juillet 2014
- 18 avril 2011 à 18:03
2
Merci
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'

Merci foliv57 2

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 87 internautes ce mois-ci

merci infiniment pour votre aide
Commenter la réponse de foliv57
Messages postés
87
Date d'inscription
jeudi 16 janvier 2003
Dernière intervention
28 mai 2013
- 18 avril 2011 à 18:09
1
Merci
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.
Commenter la réponse de biolo24fr
Messages postés
55
Date d'inscription
samedi 11 avril 2009
Dernière intervention
28 juin 2018
- 18 avril 2011 à 18:58
1
Merci
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.
Commenter la réponse de elwadeh
- 10 avril 2012 à 00:04
1
Merci
Bonjour,

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

Essaie avec :

Source.Filter = "nom_colone like '" & Valeur & "'" 
Commenter la réponse de Utilisateur anonyme
Messages postés
136
Date d'inscription
mardi 4 mars 2008
Dernière intervention
22 mars 2014
- 18 avril 2011 à 18:30
0
Merci
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
Messages postés
55
Date d'inscription
samedi 11 avril 2009
Dernière intervention
28 juin 2018
- 18 avril 2011 à 18:40
0
Merci
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
Messages postés
64
Date d'inscription
mardi 8 août 2006
Dernière intervention
20 septembre 2011
- 31 août 2011 à 13:54
0
Merci
Merci , pour ce code que je cherchais depuis un petit moment

Niblon
Commenter la réponse de cs_niblon
Messages postés
3
Date d'inscription
vendredi 23 avril 2010
Dernière intervention
6 janvier 2012
- 6 janv. 2012 à 00:45
0
Merci
merciii beaucoupp enfin j'ai trouvé merciii
Commenter la réponse de saritasarita
Messages postés
16
Date d'inscription
jeudi 22 mars 2012
Dernière intervention
12 mai 2013
- 8 avril 2012 à 21:34
0
Merci
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
- 9 avril 2012 à 04:01
0
Merci
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
Messages postés
16
Date d'inscription
jeudi 22 mars 2012
Dernière intervention
12 mai 2013
- 9 avril 2012 à 21:42
0
Merci
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
- 9 avril 2012 à 22:49
0
Merci
Bonjour,

Tu convertis ta date en string.

lavariablequireprésenteladate.tostring
ou
ctype()
ou
cstr()
Commenter la réponse de Utilisateur anonyme
Messages postés
16
Date d'inscription
jeudi 22 mars 2012
Dernière intervention
12 mai 2013
- 9 avril 2012 à 23:56
0
Merci
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
Messages postés
16
Date d'inscription
jeudi 22 mars 2012
Dernière intervention
12 mai 2013
- 10 avril 2012 à 00:10
0
Merci
je vous remercie mais le problème n'est pas encore résolu.
Commenter la réponse de ranouza
- 10 avril 2012 à 00:18
0
Merci
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
Messages postés
16
Date d'inscription
jeudi 22 mars 2012
Dernière intervention
12 mai 2013
- 10 avril 2012 à 00:19
0
Merci
Voici une partie de mon interface
Commenter la réponse de ranouza
- 10 avril 2012 à 00:37
0
Merci
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
Messages postés
16
Date d'inscription
jeudi 22 mars 2012
Dernière intervention
12 mai 2013
- 10 avril 2012 à 00:54
0
Merci
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
Messages postés
16
Date d'inscription
jeudi 22 mars 2012
Dernière intervention
12 mai 2013
- 10 avril 2012 à 01:33
0
Merci
[img]"C:\Documents and Settings\media\Bureau\VB1"/img
Commenter la réponse de ranouza
- 10 avril 2012 à 19:13
0
Merci
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.