Pb requete SUM si aucun enregistrement vb6

Résolu/Fermé
Utilisateur anonyme - 15 juin 2009 à 12:09
 Utilisateur anonyme - 15 juin 2009 à 12:28
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
A voir également:

2 réponses

Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 1 204
15 juin 2009 à 12:20
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)
1
Utilisateur anonyme
15 juin 2009 à 12:28
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
0