Bonsoir,

J'ai une base de données Access contenant plusieurs contacts. La base contient les champs : Nom, Prenom, Age, Sexe.
En utilisant un dataset, j'ai affiché les données de ma base dans un DataGrid et j'ai crée le code me permet d'effectuer ce que j'appelle "une recherche simple" c'est à dire que grâce à plusieurs txtBox je peux chercher dans ma base les contacts dont le nom = txtNom.Text, le prénom = txtPrenom.Text, l'age = txtAge.text et le sexe txtSexe.Text.
Cependant, comme vous pourrez le voir sur mon code je pense m'être compliqué la tâche, donc y a-t-il un moyen de le simplifier d'une part?
Et d'autre part quelle démarche me conseillerez vous afin d'effectuer une recherche plus complexe.
Je m'explique : je souhaiterais par exemple afficher parmi les contacts les hommes (valeur "H" dans base access) dont l'âge est égale à la valeur inscrite dans ma Textbox txtAge.Text?
De même aurrez vous un conseil pour chercher les contacts qui remplissent les conditions suivante Hommes de plus (ou moins de) de X ans (valeur de ma TextBox txtAge.Text?

Existe-t-il un tutoriel ou un exemple pour ce type de recherche ou même un exemple de Form pour effectuer une recherche avancée?

Je vous en remercie Beaucoup!!!!!!



Voici le code que j'ai écrit (désolé si celui-ci défie les lois de la programmation mais je suis en phase d'apprentissage ):

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSearch.Click
        If txtPrenom.Text = "" And txtAge.Text = "" And txtSexe.Text = "" Then
            Me.TemoinsIDBindingSource.Filter = "Nom like '%" & txtNom.Text & "%'"
        End If
        If txtNom.Text = "" And txtAge.Text = "" And txtSexe.Text = "" Then
            Me.TemoinsIDBindingSource.Filter = "Prénom like '%" & txtPrenom.Text & "%'"
        End If
        If txtNom.Text = "" And txtPrenom.Text = "" And txtSexe.Text = "" Then
            Me.TemoinsIDBindingSource.Filter = "Âge like '%" & txtAge.Text & "%'"
        End If
 
        If txtNom.Text = "" And txtPrenom.Text = "" And txtAge.Text = "" Then
            Me.TemoinsIDBindingSource.Filter = "Sexe like '%" & txtSexe.Text & "%'"
        End If
    End Sub

J'ai également essayé de cumuler les requêtes avec OR ou AND mais cle code si dessous me donne une erreur de syntaxe
(La conversion de la chaîne "Nom like '%%'" en type 'Long' n'est pas valide):
Code : Sélectionner tout - Visualiser dans une fenêtre à part
Me.TemoinsIDBindingSource.Filter = "Nom like '%" & txtNom.Text & "%'" Or "Prénom like '%" & txtPrenom.Text & "%'"