Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Access Discussion :

Calcul / Somme sur 12 mois glissants


Sujet :

Access

  1. #1
    Futur Membre du Club
    Calcul / Somme sur 12 mois glissants
    Bonjour,
    Nouveau sur le forum et débutant sous access, je sollicite votre aide
    J'ai créé une table comprenant les données suivantes
    Date -- Accident -- HeuresTravaillées
    01/01/2016 - 1 - 1000000
    01/02/2016 - 2 - 1000000

    Je souhaiterais ajouter une colonne à droite de ma colonne heures travaillées qui ferait la sommes sur les 12 mois glissants de ma colonne Accident (par exemple pour Janvier 17, nous aurions la somme de Février 2016 à Janvier 2017).

    En vous remerciant par avance
    Bonne journée à tous
    Slts

  2. #2
    Membre éprouvé
    Bonjour

    voici une approche:

    tu cree un query de mise a jour sur le champ totalglissant

    TotalGlissant=Dsum("accident", "Non de la table", "Date>" & DateAdd ( m, -12, [Date] ) & " and " & Date "<=" & [Date])

    (adapte les fonctions anglaises a un environment francais)

  3. #3
    Futur Membre du Club
    Bonjour
    Tout d'abord merci pour votre réponse
    Je viens d'essayer en suivant vos conseils mais je bloque.
    J'ai un message d'erreur "A string can be up 2018 characters long, including opening and closing quotation marks."
    Pourriez vous regarder ?
    Merci d'avance et bonne après midi
    Slts

  4. #4
    Membre éprouvé
    Bonjour,

    en fait j'ai rajoute des # pour le traitement des dates, ca donne

    DSum("Accident","tblAccident","Periode<=#" & [Periode] & "# and Periode>#" & DateAdd("m",-12,[Periode]) & "#")

    tu lances le query et ca met le total glissant a jour

    voir exemple joint

  5. #5
    Futur Membre du Club
    Merci !!!
    Je tenais à vous remercier pour votre précieuse aide !!
    Bonne fin de journée

  6. #6
    Futur Membre du Club
    Encore une question
    Bonjour Accessisgood
    Merci pour le support d'hier. Je rencontre un problème.
    En effet, le calcul des 12 mois glissant ne s'effectue pas sur chaque ligne.
    J'ai cherché mais ne trouve pas ou se trouve le soucis.
    Ci-joint ma BDD ...

    Merci et très bon Dimanche
    Slts

  7. #7
    Membre éprouvé
    Bonjour,

    je ne vois pas de probleme... peux tu donner un exemple?

  8. #8
    Futur Membre du Club
    Bonjour,
    Dans l'exemple envoyé dans le post précédent, je retrouve la même valeurs pour tous les mois de l'année alors qu'ils devraient être différents.

    Pa exemple sur la ligne 01/01/2014, je souhaite avoir la somme du mois en cours et des 11 mois précédents :
    01/01/2014 = Somme de 01/01/2014 + 01/12/2013 + 01/11/2013 ..... + 01/12/2013
    01/02/2014 = Somme de 01/02/2014 + 01/01/2014 + 01/12/2013 ..... + 01/03/2013

    Dans ce que j'obtiens actuellement j'ai le cumul année par année.
    J'espère avoir été compréhensible ...
    Merci d'avance
    Slts

  9. #9
    Membre éprouvé
    Bonjour,

    la ligne du 1/1/2014 semble correcte
    par exemple le total des heures est de 1414853 ce qui est OK pour la somme des workhours de fevrier 2013 a janvier 2014

    peux tu donner un exemple concret d'un ecart ?

  10. #10
    Membre expert
    Bonjour,

    dans les critères il faut utiliser les dates en format US, d'ou une syntaxe modifiée pour ta requete de mise à jour :
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    UPDATE StatistiquesAO SET 
    [Sum FAT] = DSum("FAT","StatistiquesAO","Periode<=" & fUsDate([Periode]) & " and Periode > " & fUsDate(DateAdd("m",-12,[Periode]))), 
    [Sum LTI] = DSum("LTI","StatistiquesAO","Periode<=" & fUsDate([Periode]) & " and Periode > " & fUsDate(DateAdd("m",-12,[Periode]))), 
    [Sum RWC] = DSum("RWC","StatistiquesAO","Periode<=" & fUsDate([Periode]) & " and Periode > " & fUsDate(DateAdd("m",-12,[Periode]))),
    [Sum MTC] = DSum("MTC","StatistiquesAO","Periode<=" & fUsDate([Periode]) & " and Periode > " & fUsDate(DateAdd("m",-12,[Periode]))),
    [Sum FAC] = DSum("FAC","StatistiquesAO","Periode<=" & fUsDate([Periode]) & " and Periode > " & fUsDate(DateAdd("m",-12,[Periode]))), 
    [Sum Man Hours] = DSum("WorkHours","StatistiquesAO","Periode<=" & fUsDate([Periode]) & " and Periode > " & fUsDate(DateAdd("m",-12,[Periode])));


    qui utilise la fonction fUsdate()
    que tu crées dans un module standard :
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    Public Function fUsDate(d As Variant) As String
    	fUsDate = "#" & Format(d, "mm/dd/yyyy") & "#"
    End Function

    cdlt
    "Always look at the bright side of life." Monty Python.

  11. #11
    Futur Membre du Club
    Un énorme merci
    Micniv & Accessisgood
    Je tiens à vous remercier pour votre aide.

    Micniv,
    Ta solution est parfaite et fonctionne à merveille

    Merci beaucoup pour l'aide et le support apporté.

  12. #12
    Futur Membre du Club
    Copie du fichier
    Salut Popopo25,

    je planche sur la même difficulté que toi.

    Te serait il possible de mettre une copie de ton fichier fonctionnel ?

    J'ai en effet le problème de ma requete sql qui donne le meme résultat sur 12 mois.

    Il semble que je n'arrive pas à gérer le format de date.

###raw>template_hook.ano_emploi###