Problème de requète

penchu Messages postés 167 Date d'inscription mercredi 11 février 2004 Statut Membre Dernière intervention 5 janvier 2006 - 18 mai 2005 à 19:20
penchu Messages postés 167 Date d'inscription mercredi 11 février 2004 Statut Membre Dernière intervention 5 janvier 2006 - 19 mai 2005 à 12:48
bonjour,


dans mon prog, je fais une requête qui calcule le coût total d'une machine sur un an.


Dans Access, quand je crée la requête suivante et que je l'exécute, ça marche nickel chrome :






Code:, ----
SELECT machine, SUM(cout_pièce) FROM pieces WHERE suivi <> 0 GROUP BY machine ORDER BY machine;







Mais quand j'exécute ce code dans mon prog, ça ne marche pas. Il
regroupe bien par machine comme je le veux, mais m'affiche null dans la
colonne "cout_pièce"






Code:, ----
Sub suivi_total()

Dim suivi As Double = repertoire.Item(repertoire.CurrentRowIndex, 13)

Dim valeur As Double = repertoire.Item(repertoire.CurrentRowIndex, 9)

Dim résultat As Double = suivi * valeur

'repertoire.Item(repertoire.CurrentRowIndex, 14) = résultat

connecter_recherche("SELECT machine, SUM(cout_pièce) FROM
pieces WHERE suivi <> 0 GROUP BY machine ORDER BY machine;",
"pieces")

Dim lignechoisie As Integer

Dim ligne, colonne As Single

Dim deux_tab As String = Chr(9) & Chr(9)

Dim trois_tab As String = Chr(9) & Chr(9) & Chr(9)

Dim quatre_tab As String = Chr(9) & Chr(9) & Chr(9) & Chr(9)

ligne = 0

If Not (Directory.Exists("c:\Rotomat\suivi")) Then

Directory.CreateDirectory("c:\Rotomat\suivi")

End If

'If Not (Directory.Exists("\\la-gestion\la-gestion\Rotomat-ondul")) Then

'Directory.CreateDirectory("\\la-gestion\la-gestion\Rotomat-ondul")

'End If

'Dim sw_suivi As New
StreamWriter("\\la-gestion\la-gestion\Rotomat-ondul\suivi" &
System.DateTime.Now.Year & ".txt", True)

Dim sw_suivi As New
StreamWriter("c:\Rotomat\suivi\coût_machines" &
System.DateTime.Now.Year & ".txt", False)

ligne = 0

While (ligne >= 0)

On Error GoTo fin

For colonne = 1 To DtSet.Tables(0).Columns.Count - 1

Select Case colonne

Case 1

sw_suivi.WriteLine("MACHINE = " &
repertoire.Item(ligne, 2))

sw_suivi.WriteLine("Coût total des pièces
changées = " & repertoire.Item(ligne, "cout_pièce") & vbCrLf)

End Select

Next colonne

colonne = 0

ligne += 1

End While

fin:

sw_suivi.WriteLine("

____________________________________" & vbCrLf)

sw_suivi.Close()

End Sub







Qqn aurait déjà eu le problème et saurait m'en débarasser?





Merci d'avance

9 réponses

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
18 mai 2005 à 19:37
Salut
C'est surement qu'un des couts de la DB à la valeur Null.
Essaye cet empilage (sans grande convisction) :
"Select machine, SUM(IsNull(cout_pièce, 0)) From ...
Sinon, fais un simple Select machine, cout_pièce From ... sans la demande de sommation interne et fais ta propre sommation parmi les résultats du RecordSet (pas géniale comme soluce)

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage. (Socrate)
0
penchu Messages postés 167 Date d'inscription mercredi 11 février 2004 Statut Membre Dernière intervention 5 janvier 2006
18 mai 2005 à 19:44
ben je comprends pas pourquoi sous access ca marche et pas dans mon prog, vu que je reprends exactement la même requête (Copier-coller Powaaaaa ).
et je n'ai aucun endroit dans la db où c'est "null"
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
18 mai 2005 à 20:23
ah ... Tu as vu qu'il manque un espace dans ta requète ici --> FROMpieces ?

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage. (Socrate)
0
penchu Messages postés 167 Date d'inscription mercredi 11 février 2004 Statut Membre Dernière intervention 5 janvier 2006
18 mai 2005 à 20:40
non c'est le forum qui fait ça.

J'ai bien regardé aussi,t'inquiète ....
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_CanisLupus Messages postés 3757 Date d'inscription mardi 23 septembre 2003 Statut Membre Dernière intervention 13 mars 2006 21
18 mai 2005 à 21:05
Salut, ce que je ne comprend pas c'est :

..... ORDER BY machine;","pieces")

-------------------------------------------------
Dresseur de puces, .... normal pour un loup !?
0
Manu5twoi Messages postés 3 Date d'inscription mercredi 13 octobre 2004 Statut Membre Dernière intervention 18 mai 2005
18 mai 2005 à 22:15
Salut,
essaie avec ...sum([cout_pièce])...
Je sais qu'à priori ça devrait rien changer mais bon...


Et puis assure toi que le champ [suivi] est du numérique sinon transforme le 0 en '0'

Manu5twoi
0
penchu Messages postés 167 Date d'inscription mercredi 11 février 2004 Statut Membre Dernière intervention 5 janvier 2006
19 mai 2005 à 08:20
"pièces" c'est dans ma fonction "connecter_recherche". J'y met la commande du dataadpater et la table de ma db.
connecter_recherche("SELECT machine, SUM(cout_pièce) FROMpieces WHERE suivi <> 0 GROUP BY machine ORDER BY machine;","pieces")
0
cs_CanisLupus Messages postés 3757 Date d'inscription mardi 23 septembre 2003 Statut Membre Dernière intervention 13 mars 2006 21
19 mai 2005 à 12:24
Ta requête est bonne. Mais comment affiches-tu SUM(cout_pièce), je ne manipule pas encore très bien les dataadapter, peut être faut-il que tu fasses un alias dans ta requête ?

"SELECT machine, SUM(cout_pièce) AS cout FROM pieces WHERE suivi <> 0 GROUP BY machine ORDER BY machine;"

-------------------------------------------------
Dresseur de puces, .... normal pour un loup !?
0
penchu Messages postés 167 Date d'inscription mercredi 11 février 2004 Statut Membre Dernière intervention 5 janvier 2006
19 mai 2005 à 12:48
j'ai essayé aussi avec un alias, mais ca ne marche pas. C'est à n'y rien comprendre
0
Rejoignez-nous