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):
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 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()
Jusque là je pense que tout est clair.
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()
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 !
Partager