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

liliesma 69 Messages postés mercredi 5 janvier 2005Date d'inscription 15 septembre 2005 Dernière intervention - 8 juin 2005 à 16:21 - Dernière réponse : liliesma 69 Messages postés mercredi 5 janvier 2005Date d'inscription 15 septembre 2005 Dernière intervention
- 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
mrdep1978 402 Messages postés jeudi 25 novembre 2004Date d'inscription 7 juin 2009 Dernière intervention - 8 juin 2005 à 17:38
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

Merci mrdep1978 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 72 internautes ce mois-ci

mrdep1978 402 Messages postés jeudi 25 novembre 2004Date d'inscription 7 juin 2009 Dernière intervention - 8 juin 2005 à 17:41
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.
liliesma 69 Messages postés mercredi 5 janvier 2005Date d'inscription 15 septembre 2005 Dernière intervention - 8 juin 2005 à 17:46
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.