IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
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

IHM Discussion :

Récupérer la somme d'un champ cumulé d'un sous état sur mon état principal [AC-2010]


Sujet :

IHM

  1. #1
    Futur Membre du Club
    Inscrit en
    Juin 2009
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 10
    Points : 5
    Points
    5
    Par défaut Récupérer la somme d'un champ cumulé d'un sous état sur mon état principal
    Bonjour à tous

    Je recherche depuis plusieurs jours (et sans succès) la possibilité de récupérer la somme d'un champ cumulé (et calculé) d'un sous-état sur un autre sous-état du même état principal !
    Je m'explique :

    J'ai un état principal "ListeSalariés_Paie", qui liste tous mes salariés (informations administratives) donc groupé par "code salarié"
    Dans cet état, j'ai des sous états, dont un "Détail des Heures d'Absences" qui liste par "date" et par "type d'heure", le nombre d'heures d'absence de chacun de mes salariés : donc groupé la aussi par code salarié et lié par ce même code au champs père de l'état principal bien sûr...
    Je récupère dans le pied de groupe de mon sous-état la somme totale d'absence pour chacun de mes salariés par un "Somme" : jusque là rien d'exceptionnel

    Mais je dois également différencier la somme du nombre d'heure d'absence selon un certain type d'absence : pour cela je teste un champ "type d'absence" avec un "VraiFaux" et si "Vrai" je fais un "Somme" du nombre d'heures ...
    CtlDetHAbsALierParHAbsCode =VraiFaux([TypeAbsLierHReg]=Vrai;Somme([DetHAbsPeriode]);0)
    Ma première problématique à été de récupérer la somme totale d'heures de ce type d'absence dans le pied de groupe de mon sous-état : en effet, on ne peux faire une somme d'une expression "VraiFaux", ce qui me parait normal ....
    Pour contourner cela, j'ai fais un cumul "en continu" de mon champs "CtlDetHAbsALierParHAbsCode" puis j'ai récupéré cette valeur en faisant référence à ce contrôle : je récupère bien la somme du nombre d'heure pour mon type d'heure particulier dans le pied de groupe de mon sous-état
    CtlDetHAbsALierParHSalCode =[CtlDetHAbsALierParHAbsCode]

    Enfin, et c'est là mon gros problème, je souhaite récupérer cette valeur dans un autre sous-état du même état principal comme enoncé plus haut (pour une question d'organisation et de mise en valeur)
    Je fais donc référence tout simplement à ce contrôle (en gérant l'absence d'heures par un "IsError") !
    NbTotalHAbsALier =VraiFaux(IsError([États]![ListeSalariés_Paie]![Détail des Heures d'Absences]![CtlDetHAbsALierParSalCode]);0;[États]![ListeSalariés_Paie]![Détail des Heures d'Absences]![CtlDetHAbsALierParSalCode])

    Cela fonctionne bien ... si je n'ai qu'une seule valeur dans le détail de mon sous-état ou que le type demandé se trouve en première position de mon sous-état !!
    En effet, la valeur récupérée ne correspond qu'à la PREMIÈRE OCCURRENCE du détail de mon sous-état et pas à la valeur inscrite dans le pied de groupe de ce dernier !!!

    Je m'arrache les cheveux car je trouve cela illogique et incompréhensible !!

    Pouvez-vous m'aider ?

    Merci.

  2. #2
    Expert éminent
    Homme Profil pro
    Webplanneur
    Inscrit en
    Octobre 2007
    Messages
    4 262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Réunion

    Informations professionnelles :
    Activité : Webplanneur

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 262
    Points : 6 561
    Points
    6 561
    Par défaut
    Salut
    Il est possible de faire la somme de VraiFaux, il faut simplement écrire la formule à "l'envers"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    CtlDetHAbsALierParHAbsCode =VraiFaux([TypeAbsLierHReg]=Vrai;Somme([DetHAbsPeriode]);0)
    vs
    CtlDetHAbsALierParHAbsCode =Somme(VraiFaux([TypeAbsLierHReg]=Vrai;[DetHAbsPeriode];0))
    EDIT : captures d'écran de votre (vos) état(s)
    "Le savoir est la seule matière qui s'accroit quand on la partage" (Socrate)
    UR - ESIROI - GPME/CG/DCG8
    QTH :21°19'18"S - 055°25'32"E
    Inutile de me contacter par MP
    Merci de cliquer sur si la réponse vous a permis de résoudre votre problème et n'oubliez pas de clôturer le fil en cliquant sur

  3. #3
    Futur Membre du Club
    Inscrit en
    Juin 2009
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 10
    Points : 5
    Points
    5
    Par défaut
    Merci d'abord pour votre réponse

    Mais cette dernière ne me convient pas malheureusement ...
    En effet, mon problème ne se situe pas là : ici je récupère le nombre d'heures selon mon type d'absence
    C'est sur ce dernier que je fais un cumul
    Je récupère bien le nombre d'heures voulu
    Et sur le pied de groupe de mon état "Absence", je fais référence au contrôle du détail qui m'affiche bien le total de mes absences "typées"

    C'est en voulant récupérer cette dernière (total de mes absences "typées") sur un autre sous-état que je bute ... il ne m'affiche que la première occurrence du cumul pas le total affiché dans le sous-état "Absence" ?!

    Merci

  4. #4
    Expert éminent
    Homme Profil pro
    Webplanneur
    Inscrit en
    Octobre 2007
    Messages
    4 262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Réunion

    Informations professionnelles :
    Activité : Webplanneur

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 262
    Points : 6 561
    Points
    6 561
    Par défaut
    Comme indiqué dans mon post précédent, capture(s) d'écran de votre (vos) état(s) et fenêtre des relations, parce que j'ai du mal a comprendre qu'il faille passer un s/Etat à un autre pour faire des calculs
    "Le savoir est la seule matière qui s'accroit quand on la partage" (Socrate)
    UR - ESIROI - GPME/CG/DCG8
    QTH :21°19'18"S - 055°25'32"E
    Inutile de me contacter par MP
    Merci de cliquer sur si la réponse vous a permis de résoudre votre problème et n'oubliez pas de clôturer le fil en cliquant sur

  5. #5
    Futur Membre du Club
    Inscrit en
    Juin 2009
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 10
    Points : 5
    Points
    5
    Par défaut
    Bonjour,

    Voici 2 imprimes écran : le premier qui retourne bien ma valeur souhaitée en haut à droite, le second qui ne retourne pas la bonne valeur malgré le fait que les formules sont exactement les mêmes bien sur.
    Je soupçonne, comme expliqué dans mon premier message, que la valeur renvoyée n'est que la première occurrence de mon cumul (qui pourtant n'est pas le même contrôle !?)

    La bonne valeur est affichée (5.5h) dans le sous-état "ABSENCE" et dans le sous-état "REGULIER" correspondant aux heures d'absence d'un type d'absence particulier
    Nom : CaptureTrue.JPG
Affichages : 228
Taille : 151,2 Ko

    La mauvaise valeur est affichée (0h au lieu de 2.67h) dans le sous-état "ABSENCE" et dans le sous-état "REGULIER" correspondant à la première occurrence des heures d'absence d'un type d'absence particulier
    Nom : CaptureFalse.JPG
Affichages : 228
Taille : 124,2 Ko

    Merci de votre aide

  6. #6
    Expert éminent
    Homme Profil pro
    Webplanneur
    Inscrit en
    Octobre 2007
    Messages
    4 262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Réunion

    Informations professionnelles :
    Activité : Webplanneur

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 262
    Points : 6 561
    Points
    6 561
    Par défaut
    Ok, il manque la capture de la fenêtre des relations (dimension lisible et visible des champs) et m'indiquer les tbl qui sont sources de vos 3 s/Etats.
    Vos 3 s/Etats ont bien pour champ Père le champ matricule du salarié situé dans l'Etat?

    EDIT 20:01 de plus la syntaxe me semble erronée
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    NbTotalHAbsALier =VraiFaux(IsError([États]![ListeSalariés_Paie]![Détail des Heures d'Absences]![CtlDetHAbsALierParSalCode]);0;[États]![ListeSalariés_Paie]![Détail des Heures d'Absences]![CtlDetHAbsALierParSalCode])
    puisque vous testez un contrôle dans le s/état Détail des heures d'Absences
    Il faudrait plus tôt la rédiger de cette façon
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    NbTotalHAbsALier =VraiFaux(IsError([États]![ListeSalariés_Paie]![Détail des Heures d'Absences].État![CtlDetHAbsALierParSalCode]);0;[États]![ListeSalariés_Paie]![Détail des Heures d'Absences].État![CtlDetHAbsALierParSalCode])
    "Le savoir est la seule matière qui s'accroit quand on la partage" (Socrate)
    UR - ESIROI - GPME/CG/DCG8
    QTH :21°19'18"S - 055°25'32"E
    Inutile de me contacter par MP
    Merci de cliquer sur si la réponse vous a permis de résoudre votre problème et n'oubliez pas de clôturer le fil en cliquant sur

  7. #7
    Futur Membre du Club
    Inscrit en
    Juin 2009
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 10
    Points : 5
    Points
    5
    Par défaut
    Bonjour,

    Voici une images d'une partie de mes tables (+ de 50 !!)
    Les sources de mes sous-états sont jointes par plusieurs tables ce qui rend difficile l'explication texte ici ....

    En gros dans mon état principal je liste mes salariés et pour chacun de mes salariés je liste leurs heures régulières, occasionnelles, leurs heures d'absences etc ....
    le nom des tables est assez explicite.
    Nom : CaptureRelations.JPG
Affichages : 231
Taille : 123,9 Ko

    chaque absence à un type d'absence particulier dont 1 (E/S) que je soustrait à mon total d'heures régulières
    C'est pourquoi j'ai besoin de le retrouver dans mon sous-état "HRegulier"
    Le soucis est que ce champs qui se trouve donc dans le sous-état "HAbsence" est un champ cumulé !

    Le total du cumul s'affiche correctement dans mon pied de groupe de mon sous-état "HAbsence" mais je suis incapable de le retrouver dans mon sous-état "Hrégulier" car il ne me prend que la 1ere occurrence du cumul pas le total !!
    Comme si le champs ne se cumulait plus dans le sous-état "Hrégulier"

    PS : oui les états sont liés (champs père/fils) par le code salarié
    Le changement de rédaction de la ligne que vous me proposez m'affiche une erreur de type NOM$

    Merci de votre obstination

  8. #8
    Expert éminent
    Homme Profil pro
    Webplanneur
    Inscrit en
    Octobre 2007
    Messages
    4 262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Réunion

    Informations professionnelles :
    Activité : Webplanneur

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 262
    Points : 6 561
    Points
    6 561
    Par défaut
    As-tu modifier la formulation de CtlDetHAbsALierParHAbsCode comme indiqué ici
    Parce qu'au lieu de calculer VraiFaux de somme(), il faudrait plus tôt calculer Somme() de vraiFaux.
    "Le savoir est la seule matière qui s'accroit quand on la partage" (Socrate)
    UR - ESIROI - GPME/CG/DCG8
    QTH :21°19'18"S - 055°25'32"E
    Inutile de me contacter par MP
    Merci de cliquer sur si la réponse vous a permis de résoudre votre problème et n'oubliez pas de clôturer le fil en cliquant sur

  9. #9
    Futur Membre du Club
    Inscrit en
    Juin 2009
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 10
    Points : 5
    Points
    5
    Par défaut
    Bonjour,


    Malheureusement cela ne change rien ...

    Autre indication :
    Par dépit, j'ai refait un formulaire ne comprenant que la liste des salariés, leurs absences et leurs heures régulières (puisque c'est là mon problème), en faisant le plus simple possible
    Ca marche ... en mode page !!
    Car dès que je passe en mode "aperçu avant impression" le résultat qui s'affiche sur mon sous-état HREGULIER passe de la bonne valeur à .... 0 !!??

    Je creuse donc la dessus.

    Cordialement.

  10. #10
    Expert éminent
    Homme Profil pro
    Webplanneur
    Inscrit en
    Octobre 2007
    Messages
    4 262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Réunion

    Informations professionnelles :
    Activité : Webplanneur

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 262
    Points : 6 561
    Points
    6 561
    Par défaut
    Il faut écrire Somme(de VraiFaux()) et non la formulation d'origine.
    Peut-être le problème vient-il de la position de votre zone de texte CtlDetHAbsALierParHAbsCode
    Si je reprends votre post 5 et la capture d'écran du 1er état.
    - dans le s/état Détails des heures d'absences
    -- a) il y a pour les Abs = E/S, 3 chantiers qui renvoient pour chacun d'eux un nbr d'hrs d'Abs pour un total = 5,50
    -- comment se nomme la zone de texte qui renvoit le nbr d'hrs d'Abs par chantier (4,5 - 1 - 0)?
    -- cette zone de texte est bien située dans la zone détail du s/état ? Quel nom porte-t-elle ?
    -- comment se nomme la zone de texte qui calcule le total du nbr d'hrs d'Abs des 3 chantiers pour les Abs = E/S (5,50)?
    -- cette zone de texte est-elle bien située dans le pied de regroupement ? Normalement oui, puisque dans ce s/état il y a 2 types d'Abs ; E/S et Injustifiée.
    -- la zone de texte qui calcule le total de nbr d'hrs Abs E/S et Injustifiée. Quel nom porte-t-elle ?
    -- b) dans ce même s/état
    -- tu as placé en face de total nbr d'hrs d'Abs E/S = 5,50 ta zone de texte CtlDetHAbsALierParHAbsCode qui retourne le résultat 5,50, parce que TypeAbsLierHReg = vrai semble-t-il.
    -- tu as placé en face de total nbr d'hrs d'Abs Injustifiée = 1,00 ta zone de texte CtlDetHAbsALierParHAbsCode qui retourne le résultat 5,50. J'ai un doute sur le résultat retourné. Si Abs = Injustifiée a pour TypeAbsLierHReg = vrai, ta zone de texte devrait retourner 1,00 ou 0 parce que TypeAbsLierHReg = pas vrai. Mais pas 5,50. Ou alors il y a quelque chose qui m'échappe.
    -- même remarque pour la ligne total de nbr d'hrs Abs E/S et Injustifiée = 6,50 ta zone de texte CtlDetHAbsALierParHAbsCode qui retourne le résultat 5,50.

    Quels sont les champs Père-Fils qui relient les 3 s/états dans ton état principal ? Est-ce bien au SalCode ? Et peut-être un autre ?

    Nous sommes bien d'accord, le résultat retourné avec votre zone de texte CtlDetHAbsALierParHAbsCode située dans le s/état Détail des heures d'absence, vous souhaitez l'incorporer dans le s/état Heures régulières.
    "Le savoir est la seule matière qui s'accroit quand on la partage" (Socrate)
    UR - ESIROI - GPME/CG/DCG8
    QTH :21°19'18"S - 055°25'32"E
    Inutile de me contacter par MP
    Merci de cliquer sur si la réponse vous a permis de résoudre votre problème et n'oubliez pas de clôturer le fil en cliquant sur

  11. #11
    Futur Membre du Club
    Inscrit en
    Juin 2009
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 10
    Points : 5
    Points
    5
    Par défaut
    Bonjour,

    Il faut écrire Somme(de VraiFaux()) et non la formulation d'origine.
    Non, déjà essayé : cette formule se trouve dans le pied de page "HAbsCode" et calcule la somme des heures d'absences des chantiers correspondant à un type d'absence.
    Peut-être le problème vient-il de la position de votre zone de texte CtlDetHAbsALierParHAbsCode
    Je ne crois pas, elle a bien sa position dans le pied de groupe "HAbsCode"
    Si je reprends votre post 5 et la capture d'écran du 1er état.
    - dans le s/état Détails des heures d'absences
    -- a) il y a pour les Abs = E/S, 3 chantiers qui renvoient pour chacun d'eux un nbr d'hrs d'Abs pour un total = 5,50
    -- comment se nomme la zone de texte qui renvoit le nbr d'hrs d'Abs par chantier (4,5 - 1 - 0)?
    -- cette zone de texte est bien située dans la zone détail du s/état ? Quel nom porte-t-elle ?
    Le détail par chantier se situe bien dans le détail du sous-état et se nomme "DetHAbsPeriode" comme le nom du champs qu'elle affiche
    -- comment se nomme la zone de texte qui calcule le total du nbr d'hrs d'Abs des 3 chantiers pour les Abs = E/S (5,50)?
    -- cette zone de texte est-elle bien située dans le pied de regroupement ? Normalement oui, puisque dans ce s/état il y a 2 types d'Abs ; E/S et Injustifiée.
    le total du nombre d'heures d'absence par type d'absence se trouve effectivement dans le pied de groupe "HAbsCode", se nomme "CtlDetHAbsPeriodeParHAbsCode" et à pour formule "=Somme(DetHAbsPeriode)" tout simplement
    -- la zone de texte qui calcule le total de nbr d'hrs Abs E/S et Injustifiée. Quel nom porte-t-elle ?
    Elle se trouve dans le pied de groupe "SalCode" se nomme "CtlDetHAbsPeriodeParSalCode" et à pour formule "=Somme(DetHAbsPeriode)" également
    -- b) dans ce même s/état
    -- tu as placé en face de total nbr d'hrs d'Abs E/S = 5,50 ta zone de texte CtlDetHAbsALierParHAbsCode qui retourne le résultat 5,50, parce que TypeAbsLierHReg = vrai semble-t-il.
    C'est ça, le type d'absence à calculer est le type "E(ntrée)/S(ortie)" : si vrai je le calcule et le CUMULE.
    -- tu as placé en face de total nbr d'hrs d'Abs Injustifiée = 1,00 ta zone de texte CtlDetHAbsALierParHAbsCode qui retourne le résultat 5,50. J'ai un doute sur le résultat retourné. Si Abs = Injustifiée a pour TypeAbsLierHReg = vrai, ta zone de texte devrait retourner 1,00 ou 0 parce que TypeAbsLierHReg = pas vrai. Mais pas 5,50. Ou alors il y a quelque chose qui m'échappe.
    Non, c'est le principe d'un champ CUMULÉ (je l'ai bien spécifié dans mes post et images précédents) (propriété RunningSomme) qui permet de calculer des TOTAUX dans un état, enregistrement par enregistrement ou groupe par groupe...
    La première occurrence est VRAI car le type d'absence est bien "E/S" donc je cumule : 5.5
    La seconde occurrence est FAUSSE car le type d'absence est "Injustifiée" donc je cumule : 5.5 + ... 0 = 5.5 !
    -- même remarque pour la ligne total de nbr d'hrs Abs E/S et Injustifiée = 6,50 ta zone de texte CtlDetHAbsALierParHAbsCode qui retourne le résultat 5,50.
    Là aussi, c'est normal : il s'agit du pied de groupe par code salarié "SalCode" donc je reprends les sommes de mon pied de groupe précédent à savoir "HAbsCode"
    Comme dit plus haut les 6.5h correspondent à la somme des 5.5 + 1 ou plutôt des 4.5+1+0+0+1 puisque la formule est "=Somme(DetHAbsPeriode)" (nom :CtlDetHAbsPeriodeParSalCode)
    Les 5.5 h à gauche correspondent au cumul des heures "typées" : j'ai bien 5.5h d'absence dont le type est "E/S" : la formule est "=[CtlDetHAbsALierParHAbsCode]" (nom : CtlDetHAbsALierParSalCode)
    Quels sont les champs Père-Fils qui relient les 3 s/états dans ton état principal ? Est-ce bien au SalCode ? Et peut-être un autre ?
    Oui c'est le "SalCode" seulement.
    Nous sommes bien d'accord, le résultat retourné avec votre zone de texte CtlDetHAbsALierParHAbsCode située dans le s/état Détail des heures d'absence, vous souhaitez l'incorporer dans le s/état Heures régulières.
    Non, c'est le résultat de ce control : en fait c'est le control "CtlDetHAbsALierParSalCode" qui se trouve dans le pied de groupe "SalCode" que je récupère d'où la formule : "=VraiFaux(IsError([États]![testSALARIES]![testHABSENCE sous-état].[Etat]![CtlDetHAbsALierParSalCode]);0;[États]![testSALARIES]![testHABSENCE sous-état].[Etat]![CtlDetHAbsALierParSalCode])" dans le sous-état "HREGULIERS" (le nom des états à changé car j'ai fais des tests ... mais c'est le même principe

    Je vous joins une image de l'état en mode création ...
    Nom : Capturecreation.JPG
Affichages : 229
Taille : 173,6 Ko

    J'aimerais peser sur mon petit message précédent : j'ai remarqué qu'en mode "Etat" le total de mes heures d'absence est bien récupéré dans le sous-état HREGULIER" mais dès que je passe en mode "aperçu avant impression", le total repasse à 0 ???!!!
    Est-ce un bug d'Access (Ma version est 2010 pour info) ??!!

    Cordialement

  12. #12
    Expert éminent
    Homme Profil pro
    Webplanneur
    Inscrit en
    Octobre 2007
    Messages
    4 262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Réunion

    Informations professionnelles :
    Activité : Webplanneur

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 262
    Points : 6 561
    Points
    6 561
    Par défaut
    Salut,
    Pourquoi ne pas contourner le problème.
    Calculez votre champ
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CtlDetHAbsALierParHAbsCode:Somme(VraiFaux([TypeAbsLierHReg]="vrai";[DetHAbsPeriode];0))
    dans la requête qui vous sert de source pour votre s/état HAbs !
    Images attachées Images attachées  
    "Le savoir est la seule matière qui s'accroit quand on la partage" (Socrate)
    UR - ESIROI - GPME/CG/DCG8
    QTH :21°19'18"S - 055°25'32"E
    Inutile de me contacter par MP
    Merci de cliquer sur si la réponse vous a permis de résoudre votre problème et n'oubliez pas de clôturer le fil en cliquant sur

  13. #13
    Futur Membre du Club
    Inscrit en
    Juin 2009
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 10
    Points : 5
    Points
    5
    Par défaut
    Bonjour,


    Veuillez m'excuser de ne pas avoir répondu plus tôt : pris sur un autre déploiement ...

    Je n'ai pas réussi à contourner le problème via les paramètres du rapport.

    J'ai dû reprendre mon marteau et burin pour écrire directement du code ...VBA.
    Cela faisait longtemps

    J'ai donc créé une fonction "CalcCumulHAbsParType" dans un module qui me cumule mes heures d'absences selon le type d'absence en cours dans une variable public "TotalSalCode".
    J'ai ajouter un contrôle non visible sur mon rapport d'absence au niveau détail dont la source est la fonction ci-dessous.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Public TotalSalCode As Double
     
    Function CalcCumulHAbsParType(R As Report)
    Dim tmpCumul As Double
     
        tmpCumul = IIf(R![TypeAbsLierHReg] = True, R![DetHAbsPeriode], 0)
        'Sauvegarder le total pour le groupe "SalCode".
        TotalSalCode = TotalSalCode + tmpCumul
        CalcCumulHAbsParType = tmpCumul
    End Function

    J'affiche dans mon contrôle "NbTotalHAbsALier" sur le rapport "HRegulière" le total souhaité et réinitialise la variable ....

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub PiedGroupe1_Format(Cancel As Integer, FormatCount As Integer)
        NbTotalHAbsALier.Value = TotalSalCode
        TotalSalCode = 0
    End Sub
    Ca fonctionne très bien. En tout cas comme je le souhaite.

    Il faudrait quand même tester sur un rapport vierge ce problème de cumul avec paramètre : pourquoi en mode "Etat" le total de mes heures d'absence est bien récupéré dans le sous-état "HREGULIER" mais dès que l'on passe en mode "Aperçu avant impression", le total repasse à 0 ???!!!
    Est-ce un bug d'Access ??!!

    Je vous remercie d'avoir pris le temps de m'aider ... et de me soutenir
    Je marque ce post comme résolu

    Cordialement,

    J. DELESTRE

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 05/03/2010, 11h15
  2. Réponses: 2
    Dernier message: 12/11/2009, 17h17
  3. ADOTABLE + récupérer la somme d'un champ numérique
    Par digital prophecy dans le forum Bases de données
    Réponses: 5
    Dernier message: 19/07/2007, 23h01
  4. récupérer la valeur du 2ème champ dans un DBLookUpListBox
    Par jakouz dans le forum Bases de données
    Réponses: 3
    Dernier message: 20/07/2004, 16h45
  5. récupérer la partie décimale d’un champ
    Par maouazzani dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 21/04/2004, 16h10

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo