none
ComboBox en cascade sous visual studio 2010 en C# RRS feed

  • Question

  • J'ai réalisé une application access avec des combobox en cascade voir procédure :

    Private Sub Combo11_LostFocus()
      
        Me.Combo11.RowSource = "SELECT TBL_Etablissement.EtablissementID, TBL_Etablissement.EtablissementName, TBL_Ville.VilleID " & _
                                "FROM TBL_Ville INNER JOIN TBL_Etablissement ON TBL_Ville.VilleID = TBL_Etablissement.VilleID " & _
                                "WHERE (((TBL_Ville.EtablissementExist) = True)) ORDER BY TBL_Etablissement.EtablissementName;"
        Me.Combo11.Requery
            
    End Sub

    Private Sub Combo12_LostFocus()

        Me.Combo12.RowSource = "SELECT TBL_Service.ServiceID, TBL_Service.ServiceName, TBL_Etablissement.EtablissementID " & _
                                "FROM TBL_Etablissement INNER JOIN TBL_Service ON TBL_Etablissement.EtablissementID = TBL_Service.EtablissementID " & _
                                "WHERE (((TBL_Etablissement.EtablissementID)=[forms]![Menu Référencé]![combo11])) ORDER BY TBL_Service.ServiceName;"
        Me.Combo12.Requery
     

    End Sub

    J'ai créé dans VS 2010 mes deux combobox en les alimentant via les tables access pour la première en créant une requête ma combobox m'affiche bien les établissemlents existants.

    Mais je ne trouve pas comment conditionner l'affichage des éléments correspondant à la sélection dans la seconde combobox.

    Comme je débute avec Visual Studio une astuce me serait bien utile.

    Merci de vos réponses.

    Philippe

    lundi 28 février 2011 12:34

Réponses

  • Bonjour,

     

    Récupérez l’élément sélecté dans le premier ComboBox en utilisant cette instruction dans la méthode comboBox1_SelectedIndexChanged :

    Dim str as String = Me.comboBox1.Items(Me.comboBox1.SelectedIndex).ToString()

     

     

    Ensuite, vous utilisez cette valeur comme paramètre dans votre requête :

    Me.Combo12.RowSource = "SELECT TBL_Service.ServiceID, TBL_Service.ServiceName, TBL_Etablissement.EtablissementID " & _
                                "FROM TBL_Etablissement INNER JOIN TBL_Service ON TBL_Etablissement.EtablissementID = TBL_Service.EtablissementID " & _
                                "WHERE (((TBL_Etablissement.EtablissementID)= str )) ORDER BY TBL_Service.ServiceName;"

     

    Cordialement,

    Alex

    ________________

    Publiez un article sur MSDN !

    Windows Phone 7

    Astuces pour Visual Studio 2010

    XNA – Développement jeux vidéo

    Didacticiels et astuces : VB.NET, C#, ASP.NET, .NET Framework, Silverlight, Workflow Foundation, SharePoint, WPF

    Microsoft propose ce service gratuitement, dans le but d'aider les utilisateurs et d'élargir les connaissances générales liées aux produits et technologies Microsoft. Ce contenu est fourni "tel quel" et il n'implique aucune responsabilité de la part de Microsoft.

     


    Suivez MSDN sur Twitter 

    • Marqué comme réponse Alex Petrescu vendredi 4 mars 2011 11:42
    mardi 1 mars 2011 13:54

Toutes les réponses

  • Bonjour,

     

    Utilisez l’évènement SelectedIndexChanged du premier ComboBox pour modifier les éléments du deuxième ComboBox. Pour ne pas remplir les éléments du premier ComboBox chaque fois qu’il perd le focus, vous pouvez les ajouter dans la procédure d’initialisation du formulaire.

     

    Private Sub comboBox1_SelectedIndexChanged(sender As Object, e As EventArgs)

           Me.comboBox2.Items.Clear()

           ‘code pour ajouter les elements du deuxieme ComboBox 

    End Sub

     

    Cordialement,

    Alex

    PS: votre code est VB.NET, pas C#

    ________________

    Publiez un article sur MSDN !

    Windows Phone 7

    Astuces pour Visual Studio 2010

    XNA – Développement jeux vidéo

    Didacticiels et astuces : VB.NET, C#, ASP.NET, .NET Framework, Silverlight, Workflow Foundation, SharePoint, WPF

    Microsoft propose ce service gratuitement, dans le but d'aider les utilisateurs et d'élargir les connaissances générales liées aux produits et technologies Microsoft. Ce contenu est fourni "tel quel" et il n'implique aucune responsabilité de la part de Microsoft.

     


    Suivez MSDN sur Twitter 

    lundi 28 février 2011 15:50
  • Mais comment je compare la valeur sélectionnée dans la première combobox avec la table pour afficher le résultat dans la seconde.

    Un exemple me serait utile, merci...

    lundi 28 février 2011 16:47
  • Bonjour,

     

    Récupérez l’élément sélecté dans le premier ComboBox en utilisant cette instruction dans la méthode comboBox1_SelectedIndexChanged :

    Dim str as String = Me.comboBox1.Items(Me.comboBox1.SelectedIndex).ToString()

     

     

    Ensuite, vous utilisez cette valeur comme paramètre dans votre requête :

    Me.Combo12.RowSource = "SELECT TBL_Service.ServiceID, TBL_Service.ServiceName, TBL_Etablissement.EtablissementID " & _
                                "FROM TBL_Etablissement INNER JOIN TBL_Service ON TBL_Etablissement.EtablissementID = TBL_Service.EtablissementID " & _
                                "WHERE (((TBL_Etablissement.EtablissementID)= str )) ORDER BY TBL_Service.ServiceName;"

     

    Cordialement,

    Alex

    ________________

    Publiez un article sur MSDN !

    Windows Phone 7

    Astuces pour Visual Studio 2010

    XNA – Développement jeux vidéo

    Didacticiels et astuces : VB.NET, C#, ASP.NET, .NET Framework, Silverlight, Workflow Foundation, SharePoint, WPF

    Microsoft propose ce service gratuitement, dans le but d'aider les utilisateurs et d'élargir les connaissances générales liées aux produits et technologies Microsoft. Ce contenu est fourni "tel quel" et il n'implique aucune responsabilité de la part de Microsoft.

     


    Suivez MSDN sur Twitter 

    • Marqué comme réponse Alex Petrescu vendredi 4 mars 2011 11:42
    mardi 1 mars 2011 13:54