penny05
Messages postés105Date d'inscriptionmercredi 22 mars 2006StatutMembreDernière intervention18 janvier 2007
-
28 mars 2006 à 10:21
penny05
Messages postés105Date d'inscriptionmercredi 22 mars 2006StatutMembreDernière intervention18 janvier 2007
-
28 mars 2006 à 14:05
SAlut tout le monde!
Je suis débutant access vba et je voudrais savoir comment faire une somme des éléments d'une table dans vba voila mon code mais il me signale des erreurs sur ma requete sql:
Private Sub statsperRCN_Click()
Dim SQL As String
SQL = "SELECT * FROM [classementideal] WHERE (((classementideal.annéemois)>=200509));"
SQL = SQL & ";"
penny05
Messages postés105Date d'inscriptionmercredi 22 mars 2006StatutMembreDernière intervention18 janvier 20072 28 mars 2006 à 14:05
merci mais j'ai réussi a trouver il a fallu que je définisse sql as currency ou double pour que ca marche !!
surement trop de nmbre à sommer je pense??
Molenn
Messages postés797Date d'inscriptionmardi 7 juin 2005StatutMembreDernière intervention23 février 20117 28 mars 2006 à 11:00
Ta requête SQL pose pb, déjà, plusieurs points :
SQL = SQL & ";"
Pourquoi rajouter un ";" à la fin ? Il ne sert à rien.
SQL = "SELECT * FROM [classementideal] WHERE (((classementideal.annéemois)>=200509));"
Idem, le ";" à la fin ? Je suppose que c'est parce que tu as crées la requête à partir de l'assistant d'Access, et comme dans les objets, il colle toujours un ";" à la fin ... amis il n'est pas utile (d'un autre côté, je ne suis pas sûr que cela pose pb, mais bon, si ça ne sert à rien ^^)
Ensuite, dans ta table "classementideal", le champ "annéemois" est de quel format ? Numérique ? Date/Heure ? Texte ?
Numérique, normalement ton format est bon.
Texte, il faut que 200509 soit entre double cotte pour obtenir une requête du type
SQL = "SELECT * FROM [classementideal] WHERE (classementideal.annéemois >= "200509")"
Date/heure, il faut que 200509 soit entre "#", mais je ne pense pas que ce soit cela, ton champ ne comportant pas les jours.
penny05
Messages postés105Date d'inscriptionmercredi 22 mars 2006StatutMembreDernière intervention18 janvier 20072 28 mars 2006 à 11:18
Merci de ta réponse.
Mais mon champ annéemois est en numérique quand je lance la somme sans la requete ca marche mais il ya un problème dans l'expression de la requete que je ne comprends abolument pas je te montre le code qui est corrigé aprés les explications:
Private Sub statsperRCN_Click()
Dim SQL As String
Dim rs As Object
Set rs = Me.Recordset.Clone
SQL = "SELECT * FROM [classementideal] WHERE (((classementideal.annéemois)>=200509))"
sommeh = DSum("[SommeDeFiability hours]", "classementideal", SQL)
DoCmd.OpenForm "formulaire1", acNormal
cs_jperre
Messages postés268Date d'inscriptionlundi 9 janvier 2006StatutMembreDernière intervention19 janvier 20172 28 mars 2006 à 13:48
Tout celà est bien compliqué, j'aurais écrit :
Dim rs As Recordset
Set rs=CurrentDB.OpenRecordset("SELECT Sum([Fiability hours]) FROM classementideal WHERE annéemois>=200509;",dbOpenSnapshot)
If Not rs.EOF Then
rs.MoveFirst
Docmd.OpenForm "formulaire1", acNormal'La source du formulaire1 doit être la chaîne SQL du recordset
Else
Beep
MsgBox "Pas de données dans la table classementideal!...", vbCritical,"Pas de données"
End If
rs.Close
Bon courage!...