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

Windows Forms Discussion :

Construire un critère de filtre en utilisant des ComboBox


Sujet :

Windows Forms

  1. #1
    Membre habitué
    Inscrit en
    Mars 2007
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 11
    Par défaut Construire un critère de filtre en utilisant des ComboBox
    bonsoir tt le monde
    je suis une débutante, et je m'entraine sur des petites applications.
    j'ai deux tableaux remplis,specialités et villes,d'apres d'eux j'ai pu remplir deux combobox, mon problem c'est que je dois construire un critère de selection d'apres le choix d'utilisateur et l'afficher sur une label
    et voilà le code que j'ai fait mais ça marche pas
    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
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    Public Class Form1
        Inherits System.Windows.Forms.Form
        Dim spe() As String = {"pediatre", "neurologue", "génecologue"}
        Dim vil() As String = {"meknes", "rabat", "fes"}
     
     
        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            For i As Int16 = 0 To spe.Length - 1
                If ComboBox1.Items.Contains(spe(i)) = False Then
                    ComboBox1.Items.Add(spe(i))
                End If
            Next
            ComboBox1.Items.Add("indifférent")
     
            For i As Int16 = 0 To vil.Length - 1
                If ComboBox2.Items.Contains(vil(i)) = False Then
                    ComboBox2.Items.Add(vil(i))
                End If
            Next
            ComboBox2.Items.Add("indifférent")
     
        End Sub
     
        Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
            Dim specialité As String
            Dim nom As String
            Dim sexe As String
            Dim ville As String
            If ComboBox1.SelectedItem <> "indifférent" Then
                specialité = ComboBox1.SelectedItem & " and"
            Else
                specialité = ""
                If txtnom.Text <> "" Then
                    nom = txtnom.Text & " and"
                Else
                    nom = ""
                    If RadioButton1.Checked = True Then
                        sexe = RadioButton1.Checked & " and"
                    ElseIf RadioButton2.Checked = True Then
                        sexe = RadioButton2.Checked & " and"
                    ElseIf RadioButton3.Checked = True Then
                        sexe = ""
                        If ComboBox2.SelectedItem <> "indifférent" Then
                            ville = ComboBox2.SelectedItem
                        Else
                            ville = ""
                        End If
                    End If
                End If
            End If
            Label5.Text = specialité & nom & sexe & ville
     
        End Sub
    End Class
    j'ai un probleme aussi avec ce "and" il doit pas rester afficher à la fin de la phrase de la selection
    et merci de votre aide
    Fichiers attachés Fichiers attachés

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    374
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 374
    Par défaut
    Bonjour,
    Essaye
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     If Label5.Text.ToString.EndsWith("and") Then
          Label5.Text = Label1.Text.Remove(Label5.Text.Trim.LastIndexOf("and"), 3)
            End If
    Bon boulot
    Jean

  3. #3
    Membre habitué
    Inscrit en
    Mars 2007
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 11
    Par défaut
    salut
    j'ai oublié de signaler comment il doit etre afficher la phrase de selection.
    la phrase afficher selon les choix de l'utilisateur,parexemple selon le choix apparu a l'interface la phrase doit etre afficher comme suit:

    spacialité=''neurologue" and nom="mary" and sexe="femme" and ville="meknes"

    et si le choix de l'utilisateur est egal à indifferent ou à "" donc on va pas l'ecrire sur la phrase de selection

    et merci pour votre aide

  4. #4
    Membre éclairé

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    291
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 291
    Par défaut
    Salut,

    Si je ne me trompe pas, ton code ne te donnera jamais
    spacialité=''neurologue" and nom="mary" and sexe="femme" and ville="meknes"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    If ComboBox1.SelectedItem <> "indifférent" Then
                specialité = ComboBox1.SelectedItem & " and"
            Else
                specialité = ""
    ...
    Tu auras soit, lorsque ComboBox1.SelectedItem <> "indifférent"
    spacialité=''neurologue"
    Soit, lorsque ComboBox1.SelectedItem = "indifférent"
    spacialité=''neurologue" and nom="mary" and sexe="femme" and ville="meknes"

    Ensuite par plutôt avec une variable String dans laquelle tu vas construire ta requête (ou filtre)
    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
     
    Dim strRequete as String = Nothing
     
    If Condition Then
    strRequete = strRequete & Champ1 & " AND "
    End if
     
    If Condition Then
    strRequete = strRequete & Champ2 & " AND "
    End if
     
    If Condition Then
    strRequete = strRequete & Champ3 & " AND "
    End if
     
    ' Et finir par le code de JPelli
    If strRequete .EndsWith(" AND ") Then
    strRequete  = strRequete.Remove(strRequete.Trim.LastIndexOf(" AND "), 5)
    End If
     
    Label5.Text = strRequete
    Par contre, j'ai pas tout compris sur le reste....
    et si le choix de l'utilisateur est egal à indifferent ou à "" donc on va pas l'ecrire sur la phrase de selection
    C'est pourtant comme ça que fonctionne ton code....

    Gwendal

  5. #5
    Membre habitué
    Inscrit en
    Mars 2007
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 11
    Par défaut
    merci jean merci Gwendal pour votre aide ,j'ai utilisé ce que vous m'avez donné,mais ce probleme de "and" est le meme
    je vais chercher pt etre il y a qu'une petite faute ou une petite chose qui m'echape.
    merci encore

    meriam

  6. #6
    Membre éclairé

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    291
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 291
    Par défaut
    re,

    Aujourd'hui, 02h47

    Pourrais-tu nous faire voir ton code modifié ?

    Je me suis trompé
    Le AND doit être devant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    strRequete = strRequete & " AND " & Champ1
    Je viens de me rappeler du temps ou je bidouillais sur ACCESS, et d'un tutoriel de Cafeine....
    http://cafeine.developpez.com/access...echerchemulti/
    http://cafeine.developpez.com/access...hemulti/#LIV-C
    Pour rappel (en VBA)
    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
    SQL = "SELECT CodMedia, Titre, Auteur, Famille, Type FROM Medias Where Medias!CodMedia <> 0 "
     If Me.chkAuteur Then
        SQL = SQL & "And Medias!Auteur like '*" & Me.txtRechAuteur & "*' "
     End If
     If Me.chkFamille Then
        SQL = SQL & "And Medias!Famille = '" & Me.cmbRechFamille & "' "
     End If
     If Me.chkResume Then
        SQL = SQL & "And Medias!Résumé like '*" & Me.txtRechResume & "*' "
     End If
     If Me.chkTitre Then
        SQL = SQL & "And Medias!Titre like '*" & Me.txtRechTitre & "*' "
     End If
     If Me.chkType Then
        SQL = SQL & "And Medias!Type = '" & Me.cmbRechType & "' "
     End If
     
     SQLWhere = Trim(Right(SQL, Len(SQL) - InStr(SQL, "Where ") - Len("Where ") + 1))
     SQL = SQL & ";"
    Je te laisse transposer le code Vb.Net...

    Laisse nous ton code modifié...

    Gwendal

  7. #7
    Membre habitué
    Inscrit en
    Mars 2007
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 11
    Par défaut
    merci Gwendal pour ton effot avec moi, c gentil de ta part!
    pour le VBA j'entend seulement parler de lui et je l'ai jamais etudié ou utilisé.
    j'ai fait qqmodification sur mon ancien code et enfin j'ai obtenu le résultat que je cherchais, j'ai pu me débarasser de ce "and" à la fin de la phrase en utilisant "substring" et voilà mon code et mon interface :

    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
    26
    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
            Dim specialité As String
            Dim nom As String
            Dim sexe As String
            Dim ville As String
            If ComboBox1.SelectedItem <> "indifférent" Then
                specialité = "spacialité = " & ComboBox1.SelectedItem & " and "
     
            End If
            If txtnom.Text <> "" Then
                nom = "nom = " & txtnom.Text & " and "
     
            End If
            If RadioButton1.Checked = True Then
                sexe = "sexe = " & RadioButton1.Text & " and "
            ElseIf RadioButton2.Checked = True Then
                sexe = "sexe = " & RadioButton2.Text & " and "
            End If
            If ComboBox2.SelectedItem <> "indifférent" Then
                ville = "ville = " & ComboBox2.SelectedItem & " and "
     
            End If
            Label5.Text = specialité & nom & sexe & ville
            Label5.Text = Label5.Text.Substring(0, Label5.Text.Length - 4)
        End Sub
    End Class
    si tu vois qu'il y a qqchose qui ne va pas dans mon code stp n'hesite pas à me le dire
    ça me fera plaisir

    meriam
    Fichiers attachés Fichiers attachés

  8. #8
    Membre éclairé

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    291
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 291
    Par défaut
    Salut,

    Pense à la balise

    Gwendal

Discussions similaires

  1. Faire un filtre en utilisant un combobox
    Par amel.alg dans le forum Composants VCL
    Réponses: 2
    Dernier message: 09/01/2010, 16h23
  2. Utilisation des ComboBox
    Par furiousdraz dans le forum GTK+ avec C & C++
    Réponses: 3
    Dernier message: 15/07/2008, 18h23
  3. Problème d'utilisation des ComboBox
    Par CyberSlan dans le forum MFC
    Réponses: 8
    Dernier message: 06/06/2008, 16h12
  4. Questions concernant l'utilisation des ComboBox
    Par philguio dans le forum Windows Forms
    Réponses: 2
    Dernier message: 09/01/2007, 11h26

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