Affichage listbox d'une requete SQL [Résolu]

Messages postés
69
Date d'inscription
mercredi 5 janvier 2005
Dernière intervention
15 septembre 2005
- - Dernière réponse : liliesma
Messages postés
69
Date d'inscription
mercredi 5 janvier 2005
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ï? ~*~
Afficher la suite 

3 réponses

Meilleure réponse
Messages postés
402
Date d'inscription
jeudi 25 novembre 2004
Dernière intervention
7 juin 2009
3
3
Merci
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

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 91 internautes nous ont dit merci ce mois-ci

Messages postés
402
Date d'inscription
jeudi 25 novembre 2004
Dernière intervention
7 juin 2009
3
0
Merci
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.
Messages postés
69
Date d'inscription
mercredi 5 janvier 2005
Dernière intervention
15 septembre 2005
0
Merci
Alors là, je n'ai qu'une chose a te dire MERCI !!!!!!!!!!!!!!!

~*~ LîLï? ~*~

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.