Code vb avec BD sql

mannanaesc Messages postés 26 Date d'inscription mercredi 9 avril 2008 Statut Membre Dernière intervention 19 mai 2010 - 17 mai 2010 à 14:19
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 - 17 mai 2010 à 14:45
Bonjour,
j'essaie de calculer, avec vb, la moyenne des valeurs de chaque ligne dans une table sql. le problème c'est que j'obtiens pour toutes les lignes la dernière valeur obtenu ( la valeur de la dernière ligne). le code est le suivant:
Private Sub TCP_DataArrival(ByVal bytesTotal As Long)

Dim somme(20) As Double
Dim moyenne(20) As Double
k = 1

Set rs data.prevision.Execute("SELECT v.qte_reelle as xr,p.valeur_cl1  as xp1,p.valeur_cl2 as xp2,p.valeur_cl3 as xp3,p.valeur_cl4 as xp4 FROM prevision p,vente v where p.session " & session & " and v.annee_vente+1=p.annee and v.semaine_vente=p.semaine and v.ref_gamme='" & Main.p_refgamme & "' and v.id_article= " & Main.p_idarticle)

While Not rs.EOF
With rs
  somme(k) = rs!xp1 + rs!xp2 + rs!xp3 + rs!xp4
  moyenne(k) = somme(k) / 4

End With
k = k + 1
rs.MoveNext
Wend

For i = 1 To (k - 1)
data.prevision.Execute "update prevision set fusion=" & Str(moyenne(i)) & " where session=" & session
Next




est ce que quelqu'un peut m'aider svp,

3 réponses

Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
17 mai 2010 à 14:33
normal...
que dire de plus ?

tu mets dans ta première requete :

WHERE Session = xxxx AND [.....]

et la même condition sur le champ Session dans ton Update
du coup, ca impacte toutes les lignes d'un coup...

normal, quoi !


Renfield - Admin CodeS-SourceS - MVP Visual Basic & Spécialiste des RegExp
0
mannanaesc Messages postés 26 Date d'inscription mercredi 9 avril 2008 Statut Membre Dernière intervention 19 mai 2010
17 mai 2010 à 14:41
je ne comprend pas trop bien. j'essaie juste d'apporter des modification à un code que je ne l'ai pas écrit.
mais j'ai 20 lignes dans ma table avec la meme valeur de session et c'est dans la colonne fusion (avec cette meme valeurs session) que je doit mettre mes nouvelles valeurs. je ne peut pas modifier session. que puis-je faire alors svp?
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
17 mai 2010 à 14:45
te faut un champ discriminant, pour cibler le bon record a mettre a jour...

ou, faire faire la mise a jour et le calcul par ton SGBD...

Renfield - Admin CodeS-SourceS - MVP Visual Basic & Spécialiste des RegExp
0
Rejoignez-nous