IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

Recherche Avancée Database


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Octobre 2014
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes

    Informations forums :
    Inscription : Octobre 2014
    Messages : 19
    Par défaut Recherche Avancée Database
    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 & "%'"

  2. #2
    Membre très actif
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2012
    Messages
    175
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2012
    Messages : 175
    Par défaut
    bonjour
    une proposition :

    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 txtNom.Text <> ""  txtPrenom.Text = "" And txtAge.Text = "" And txtSexe.Text = "" Then
                Me.TemoinsIDBindingSource.Filter = "Nom like '%" & txtNom.Text & "%'"
           ElseIf txtNom.Text <> ""  txtPrenom.Text <> "" And txtAge.Text = "" And txtSexe.Text = "" Then
                Me.TemoinsIDBindingSource.Filter = "Nom like '%" & txtNom.Text & "%' And Prénom like '%" & txtPrenom.Text & "%'"
           ElseIf txtNom.Text <> ""  txtPrenom.Text <> "" And txtAge.Text <> "" And txtSexe.Text = "" Then
                Me.TemoinsIDBindingSource.Filter = "Nom like '%" & txtNom.Text & "%' And Prénom like '%" & txtPrenom.Text & "%' AND Âge like '%" & txtAge.Text & "%'"
           ElseIf txtNom.Text <> ""  txtPrenom.Text <> "" And txtAge.Text <> "" And txtSexe.Text <> "" Then
                Me.TemoinsIDBindingSource.Filter = "Nom like '%" & txtNom.Text & "%' And Prénom like '%" & txtPrenom.Text & "%' AND Âge like '%" & txtAge.Text & "%' AND Sexe like '%" & txtSexe.Text & "%'"
           ElseIf txtNom.Text <> ""  txtPrenom.Text = "" And txtAge.Text <> "" And txtSexe.Text <> "" Then
                Me.TemoinsIDBindingSource.Filter = "Nom like '%" & txtNom.Text & "%'  AND Âge like '%" & txtAge.Text & "%' AND Sexe like '%" & txtSexe.Text & "%'"
     
    ....etc...
     
     End If

    normalement vous avez 2^4 = 16 teste a faire
    A+

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    210
    Détails du profil
    Informations personnelles :
    Localisation : France, Yvelines (Île de France)

    Informations forums :
    Inscription : Juin 2010
    Messages : 210
    Par défaut
    Bonjour,

    Je m'y prendrais plutôt comme ceci pour une recherche avec plusieurs paramètre.

    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
     
    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSearch.Click
            Dim Requete As String  = ""
            Try
                If txtNom.Text.Length > 0 Then
                    Requete = " Nom like '%" & txtNom.Text & "%'"
                End If
                If txtPrenom.Text.Length > 0 Then
                    If Requete.Length > 0 Then Requete += " AND "
                    Requete += " Prénom like '%" & txtPrenom.Text & "%'"
                End If
                If txtAge.Text.Length > 0 Then
                    If Requete.Length > 0 Then Requete += " AND "
                    Requete += " Âge like '%" & txtAge.Text & "%'"
                End If
                If txtSexe.Text.Length > 0 Then
                    If Requete.Length > 0 Then Requete += " AND "
                    Requete += " Sexe like '%" & txtSexe.Text & "%'"
                End If
     
                Me.TemoinsIDBindingSource.Filter = Requete
            Catch ex As Exception
     
            End Try
        End Sub
    J'éviterais également de mettre des accents dans mes noms de champs.

    A+

  4. #4
    Membre averti
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Octobre 2014
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes

    Informations forums :
    Inscription : Octobre 2014
    Messages : 19
    Par défaut
    Probleme résolu :

    http://www.developpez.net/forums/d14...e/#post8010542

    Merci à ceux qui me sont venu en aide!!!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Recherche avancée] que les resolus
    Par ould dans le forum Mode d'emploi & aide aux nouveaux
    Réponses: 10
    Dernier message: 13/09/2005, 20h43
  2. [Composite] Gestion d'une recherche avancée
    Par Loctar dans le forum Design Patterns
    Réponses: 12
    Dernier message: 23/06/2005, 18h32

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo