Pb requete SUM si aucun enregistrement vb6
Résolu
nague29
-
nague29 -
nague29 -
Bonjour tout le monde,
voilà j'ai un petit souci avec une application vb6 que je suis en train de développer. J'ai une table famille et une table produit. J'ai fait une requête SUM qui calcule le nombre de stock total par famille. Et le résultat s'affiche dans un listbox(nommé stock) en face des familles correspondantes (dans un listbox aussi nommé fam1). Voici mon code :
'Ici on calcule le nombre de stock total par famille'
For j = 0 To fam1.ListCount - 1
sql4.Open "SELECT SUM(stock) AS total1 FROM produit WHERE famille IN (SELECT id_famille FROM famille WHERE famille = '" & (fam1.List(j)) & "' ) ", adoCon
While Not sql4.EOF
stock.AddItem sql4!total1
sql4.MoveNext
Wend
Set sql4 = Nothing
Next j
Ceci marche mais lorsque je crée une nouvelle famille (à partir d'un autre form bien sûr) et bien j'ai un message d'erreur car la nouvelle famille ne contient pas encore de produit et donc aucun stock (logique). J'ai alors voulu dire si il n'y a pas de produit correspondant à cette famille, et bien on fait rien ou alors stock.list(j)=0. J'ai essayé différentes solutions mais sans aucun succès. c'est pourquoi je m'en remet à vous. Je vous remercie de votre aide.
Nague29
voilà j'ai un petit souci avec une application vb6 que je suis en train de développer. J'ai une table famille et une table produit. J'ai fait une requête SUM qui calcule le nombre de stock total par famille. Et le résultat s'affiche dans un listbox(nommé stock) en face des familles correspondantes (dans un listbox aussi nommé fam1). Voici mon code :
'Ici on calcule le nombre de stock total par famille'
For j = 0 To fam1.ListCount - 1
sql4.Open "SELECT SUM(stock) AS total1 FROM produit WHERE famille IN (SELECT id_famille FROM famille WHERE famille = '" & (fam1.List(j)) & "' ) ", adoCon
While Not sql4.EOF
stock.AddItem sql4!total1
sql4.MoveNext
Wend
Set sql4 = Nothing
Next j
Ceci marche mais lorsque je crée une nouvelle famille (à partir d'un autre form bien sûr) et bien j'ai un message d'erreur car la nouvelle famille ne contient pas encore de produit et donc aucun stock (logique). J'ai alors voulu dire si il n'y a pas de produit correspondant à cette famille, et bien on fait rien ou alors stock.list(j)=0. J'ai essayé différentes solutions mais sans aucun succès. c'est pourquoi je m'en remet à vous. Je vous remercie de votre aide.
Nague29
2 réponses
-
Bonjour,
Il faut tester le retour du recordset avant de le lire:
For j = 0 To fam1.ListCount - 1 sql4.Open "SELECT SUM(stock) AS total1 FROM produit WHERE " _ & "famille IN (SELECT id_famille FROM famille WHERE famille = '" & (fam1.List(j)) & "' ) ", adoCon If Not IsNull(sql4.Fields(0)) Then While Not sql4.EOF stock.AddItem sql4!total1 sql4.MoveNext Wend End If sql4.Close Set sql4 = Nothing Next j
;o) -
Salut Polux31 !
décidément tu es mon dieu vb ! ça fait deux fois que tu me sauves merci beaucoup ça marche niquel ! Je savais ce qu'il fallait faire mais je ne connaissais pas le code qu'il fallait mettre pour le faire.
Encore merci c'est super et quelle rapidité !
Ciao
Nague29