Partage
  • Partager sur Facebook
  • Partager sur Twitter

Doublons dans combobox

    3 février 2012 à 14:25:32

    Avant de vous expliquer mon problème il faut que j'explique un bout de ma BDD :
    donc j'ai une table fournisseur avec un numFour, CodeFour, RaisonSocialeFour ...
    et la clé primaire c'est NumFour et CodeFour (un même fournisseur peu avoir plusieurs CodeFour je comprend pas trop pouquoi mais bon c'est comme sa...) et donc quand je charge la combobox avec RaisonSocialeFour il y a des noms qui reviennent. J'ai donc fais une nouvelle requête dans mon dataset avec un distinct sur le RaisonSocialeFour (Requête qui marche très bien dans Access, mais par contre quand je charge la combobox il n'y a plus rien).
    Me._taFournisseur.Fill(MonDataSet1.Fournisseur)
            Dim donneesFour As DataTable = _taFournisseur.GetData()
            Me.CbxFour.Items.Add(New Mylist("", 0))
            For Each Four As DataRow In donneesFour.Rows
                Dim itemlist As New Mylist
                itemlist.Name = Four("RaisonSocialeFour")
                itemlist.ItemData = Four("NumFournisseur")
                Me.CbxFour.Items.Add(itemlist)
            Next
    


    donc sa c'est le code qui marche avec la requête de base de la table fournisseur du dataset mais qui m'affiche la raison sociale de certains fournisseurs en double voir plus.

    donc après je créer une nouvelle requête dans mon dataset avec le distinct sur le numFournisseur :
    SELECT Distinct(NumFournisseur), RaisonSocialeFour
    from fournisseur
    


    la requête dans access fonctionne très bien, ainsi que dans le générateur de requêtes de Visual Studio.

    et donc je change pas grand chose après dans le chargement de la combobox :


    Me._taFournisseur.FillByRSFour(GenourobDataSet1.Fournisseur)
            Dim donneesFour As DataTable = _taFournisseur.GetDataByRSFour()
            Me.CbxFour.Items.Add(New Mylist("", 0))
            For Each Four As DataRow In donneesFour.Rows
                Dim itemlist As New Mylist
                itemlist.Name = Four("RaisonSocialeFour")
                itemlist.ItemData = Four("NumFournisseur")
                Me.CbxFour.Items.Add(itemlist)
            Next
    



    Voila si vous avez des questions n'hésitez pas.

    petite précision j'ai trouvé un sujet un peu similaire mais en C# (j'ai du en faire 3 heures dans toutes ma vie donc je maitrise pas vraiment) et avec des dates donc et il parle beaucoup des dates ce qui n'est pas vraiment mon problème. je vous met le lien quand même peut être que sa inspirera certains sur des solutions : http://www.siteduzero.com/forum-83-633 [...] combobox.html
    • Partager sur Facebook
    • Partager sur Twitter
      3 février 2012 à 14:52:44

      Salut, je pense que ton problème, c'est que ta colonne "NumFournisseur" n'a "plus de nom" à cause du distinct que tu lui met.

      Bon, d'un autre côté, c'est peut-être pas ça, le SQL acces, je connais pas trop et une fonction distinct, je trouve ça étrange. En T-SQL ça serait :

      SELECT Distinct NumFournisseur, RaisonSocialeFour
      from fournisseur
      


      Autrement que ça, je voit pas trop :/
      • Partager sur Facebook
      • Partager sur Twitter
        3 février 2012 à 14:59:59

        Oui c'est cette requête la que j'ai dans mon dataset maintenant(le générateur de requête fais comme toi, désolé de pas l'avoir mis) mais sur access ou avec le générateur de requête quand j'exécute la requête le résultat est celui que j'attends, et quand j'exécute mon application ma combobox reste vide :(
        • Partager sur Facebook
        • Partager sur Twitter
          3 février 2012 à 15:05:18

          Passe en debug dans ton code, met des points d’arrêts (F9). Utilise les espions pour vérifier si "_taFournisseur.GetDataByRSFour()" retourne bien des lignes.
          (dans l'espions, met donneesFour.Rows.Count)

          Si ça te retourne des données, vérifie les noms de champs. En théorie ils devrait être bon, sinon ça planterais :/
          • Partager sur Facebook
          • Partager sur Twitter
            3 février 2012 à 15:29:38

            bon j'ai fais sa et donc je met mon point sur le Me._taFournisseur.FillByRSFour(GenourobDataSet1.Fournisseur) de :
            Me._taFournisseur.FillByRSFour(GenourobDataSet1.Fournisseur)
                    Dim donneesFour As DataTable = _taFournisseur.GetDataByRSFour()
                    Me.CbxFour.Items.Add(New Mylist("", 0))
                    For Each Four As DataRow In donneesFour.Rows
                        Dim itemlist As New Mylist
                        itemlist.Name = Four("RaisonSocialeFour")
                        itemlist.ItemData = Four("NumFournisseur")
                        Me.CbxFour.Items.Add(itemlist)
                    Next
            


            donc sur la première ligne. et la donc quand je fais F8(donc pas à pas détaillé) il s'arrête sur cette première ligne m'ouvre mon formulaire et voila fini.
            donc c'est pas normal je pense. mais pourquoi sa ferai sa ???
            • Partager sur Facebook
            • Partager sur Twitter
              3 février 2012 à 15:34:10

              C'est pas F11 pas à pas détaillé?

              Sinon, met plus de points d'arrêts. Si le code ne s'arrête vraiment pas... je comprend absolument pas.
              • Partager sur Facebook
              • Partager sur Twitter
                3 février 2012 à 15:43:41

                j'ai essayé de mettre des points d'arrêt sur la ligne du dessous, du dessus. et il ne passe même pas en dessous de la ligne que j'ai dis toute à l'heure.
                Et sa marche aussi F11 mais je viens de regarder et c'est bien F8.
                • Partager sur Facebook
                • Partager sur Twitter

                Doublons dans combobox

                × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                • Editeur
                • Markdown