Bonjouur,

J'ai un problème avec mon combobox.
Je vous explique !

J'ai un formulaire qui contient une liste (listbox1), un combobox1 ..

La listbox1 contient le numéro des bons de livraison ..
Quand je clique dessus j'ai le numéro de la commande (liée a ce bon de livraison) sur le combobox1 & automatiquement j'obtient la date de la commande & le numéro du fournisseur (puisque j'ai l'id commande).

Coté BD j'ai la table commande qui contient: l'id commande, la date de la commande, l'id fournisseur & qui est liée a la table BL qui contient: l'IDBL, la date du BL ainsi que l'IDcommande.. (je sais pas si ça vas vous être util ça !! mais pour comprendre un peu mes requetes ^^)

Coté développement
Mon code est le suivant:

Quand je clic sur la listbox1 cad dans l'événement MouseDoubleClick j'ai mis le code suivant afin d'extraire le numéro de la commande que j'ai selectionné (qui est IDcommande lié au BL que j'ai cliqué dessus):


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
       com.CommandText = "select IDcommande from BL where IDBL = '" & ListBox1.SelectedItem & "'"
        dtr = com.ExecuteReader
        If dtr.HasRows = True Then
            dtr.Read()
            ComboBox1.Text = dtr(0)
        End If
        dtr.Close()
Et sur l'événement Textchanged du combobox1, j'ai mis le code qui me permet d'afficher automatiquement (a partir du changement du combobox) la date de la commande & le numéro du fournisseur. Ce qui donne:


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
 com.Connection = Cnx
        com.CommandText = "select DateCommande from Commandes where IDcommande = '" & ComboBox1.Text & "'"
        dtr = com.ExecuteReader
        If dtr.HasRows = True Then
            dtr.Read()
            Label11.Text = dtr(0)
        End If
        dtr.Close()
 
        com.Connection = Cnx
        com.CommandText = "select IDfournisseur from Commandes where IDcommande = '" & ComboBox1.Text & "'"
        dtr = com.ExecuteReader
        If dtr.HasRows = True Then
            dtr.Read()
            Label22.Text = dtr(0)
        End If
        dtr.Close()
Jusque là je pense que tout est clair.

Maintenant, quand je veux ajouter un bon de livraison je lui associe une commande à partiir du combobox1. Ce dernier contient tous les numéros de la commande. Suivant ce code: (dans l'événement Load)

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
Cnx.Open()
            com.Connection = Cnx
            com.CommandText = "select IDcommande from Commandes"
            dtr = com.ExecuteReader
            If dtr.HasRows = True Then
                While dtr.Read = True
                    ComboBox1.Items.Add(dtr(0))
                End While
            End If
            dtr.Close()

Mon problème se pose ici. Quand je séléctionne une valeur du combobox1, je suis cencé avoir la date & le nom du fournisseur.Mais puisque ce combobox1 est déjà utilisé dans l'événement Load je pense (enfin c'est ce que j'ai pu tiré comme remarque) j'obtient l'erreur suivante:


Un DataReader associé à cette commande est déjà ouvert. Il doit d'abord être fermé.

Je sais pas si quelqu'un pourra m'aider pour résoudre ce problème !!

Mercii d'avance !