Affichage listbox d'une requete SQL

Résolu
liliesma Messages postés 69 Date d'inscription mercredi 5 janvier 2005 Statut Membre Dernière intervention 15 septembre 2005 - 8 juin 2005 à 16:21
liliesma Messages postés 69 Date d'inscription mercredi 5 janvier 2005 Statut Membre Dernière intervention 15 septembre 2005 - 8 juin 2005 à 17:46
J'ai déjà posté ce matin, Tof008 m'a répondu, mais il ne peut pas m'aider... donc je refait ma demande d'aide...

Et oui, c'est encore moi .. :-s
projet développé en VB6 sur une BD Access.
voila, une requête, qui fonctionne sous access, mais je ne sais pas si elle fonctionne sous vb (je ne vois pas pourquoi ça ne marcherai pas...)
Donc, je m'explique, la première requête est censée me retourner tous les articles concernant la facture sélectionnée dans la combobox, la deuxième compte le nombre d'article par facture. Ces articles doivent être affiché dans différentes listbox, et c'est là qu'intervient mon problème. VB ne m'affiche aucun message lors du débogage, donc c'est que tout se passe bien, en revanche lors de l'affichage j'ai comme un problème.
exemple la facture 1 à 3 articles différents : lors de l'affichage, il m'affiche bien 3 lignes, mais ces 3 lignes sont identiques, elles correspondent au premier article.
Je crois que mon problème provient de l'affichage avec ma boucle For Next, mais je ne vois pas comment faire autrement.

'Requête SQL pour définir les champs à afficher
SQL = "Select CONTENIR.Art_Code, Art_Lib, Art_Prix, FAMILLE.Fam_Code, Fam_Lib, FACTURE.Fac_Num, Fac_Tab, Fac_Couv, CONTENIR.Qte "
SQL = SQL & "From FACTURE, CONTENIR, ARTICLE, FAMILLE " SQL SQL & "Where FACTURE.Fac_Num CONTENIR.Fac_Num " SQL SQL & "And CONTENIR.Art_Code ARTICLE.Art_Code " SQL SQL & "And ARTICLE.Fam_Code FAMILLE.Fam_Code " SQL SQL & "And FACTURE.Fac_Num" & "'" & cbNumFact.Text & "'"
'Compte le nombre d'articles par facture
SQLCompte = "Select Count(CONTENIR.Art_Code) "
SQLCompte = SQLCompte & "From CONTENIR " SQLCompte SQLCompte & "Where CONTENIR.Fac_Num" & "'" & cbNumFact.Text & "'"

'Affichage dans les listbox
For i = 1 To rs_NbArt.Fields(0)
lstCodArt.AddItem (rs_RechFact.Fields(0))
Next i

~*~ LîLï? ~*~

3 réponses

mrdep1978 Messages postés 402 Date d'inscription jeudi 25 novembre 2004 Statut Membre Dernière intervention 7 juin 2009 7
8 juin 2005 à 17:38
Dans ta boucle, il manque :
rs_RechFact.MoveNext
qui sert à passer à l'enregistrement suivant dans le recordset

For i = 1 To rs_NbArt.Fields(0)
lstCodArt.AddItem (rs_RechFact.Fields(0))
rs_RechFact.MoveNext
Next i

Tu n'est pas obligé de faire 2 requetes (utile dans le cas où le temps d'exécution de la requete est très long): remplace ta boucle For par un While :

'Tant qu'on est pas à la fin du recordset, on avance et on ajoute à la liste
While Not rs_RechFact.EOF
lstCodArt.AddItem (rs_RechFact.Fields(0))
rs_RechFact.MoveNext
Wend
3
mrdep1978 Messages postés 402 Date d'inscription jeudi 25 novembre 2004 Statut Membre Dernière intervention 7 juin 2009 7
8 juin 2005 à 17:41
PS : Si à l'avenir tu utilises le While, n'oublie pas de mettre le MoveNext dans la boucle, sinon tu pars dans une boucle infinie.
0
liliesma Messages postés 69 Date d'inscription mercredi 5 janvier 2005 Statut Membre Dernière intervention 15 septembre 2005
8 juin 2005 à 17:46
Alors là, je n'ai qu'une chose a te dire MERCI !!!!!!!!!!!!!!!

~*~ LîLï? ~*~
0
Rejoignez-nous