Comment faire pour créer un total cumulé dans Access 2000

Traductions disponibles Traductions disponibles
Numéro d'article: 208714 - Voir les produits auxquels s'applique cet article
Cet article peut contenir des liens vers des informations en langue anglaise (pas encore traduites).
Utilisateurs confirmés : exige de très bonnes compétences en programmation, en interopérabilité et dans le domaine multi-utilisateur.

Cet article s'applique uniquement aux bases de données Microsoft Access (.mdb).

Pour vous procurer une version Microsoft Access 97, reportez-vous à l'article 138911.
Pour vous procurer une version Microsoft Access 2002 et Access 2003 de cet article, reportez-vous à l'article 290136.
Agrandir tout | Réduire tout

Sommaire

Résumé

Cet article décrit deux méthodes que vous pouvez utiliser pour créer une requête de total cumulé. Une requête de total cumulé est une requête dans laquelle le total de chaque enregistrement est l'addition de cet enregistrement et de tous les enregistrements précédents. Ce type de requête est utile pour afficher des totaux cumulés sur un groupe d'enregistrements (ou pendant un certain laps de temps) dans un graphique ou un état.

REMARQUE : vous pouvez afficher une démonstration de la technique utilisée dans cet article dans l'exemple de fichier Qrysmp00.exe. Pour plus d'informations sur la façon d'obtenir cet exemple de fichier, consultez l'article suivant de la Base de connaissances Microsoft :
207626 Exemples de requêtes Access 2000 disponibles au Centre de téléchargement

Plus d'informations

Méthode 1

La première méthode utilise une fonction DSum() et des critères dans une requête afin de créer une somme cumulée avec le temps. La fonction DSum() additionne l'enregistrement actif et tous les enregistrements précédents. Lorsque la requête passe à l'enregistrement suivant, la fonction DSum() s'exécute de nouveau et met à jour le total cumulé.

L'exemple de requête suivant utilise le tableau Commandes de l'exemple de base de données Comptoir.mdb pour créer une somme cumulée des frais de transport pour chaque mois en 1997. Les exemples de données sont limités à une année pour des raisons de performances. La fonction DSum() s'exécutant une fois pour chaque enregistrement de la requête, son traitement peut prendre plusieurs secondes (selon la vitesse de votre ordinateur). Pour créer et exécuter cette requête, procédez comme suit :
  1. Ouvrez l'exemple de base de données Comptoir.mdb.
  2. Créez une requête Sélection et ajoutez le tableau Commandes.
  3. Dans le menu Affichage, cliquez sur Opérations.
  4. Dans la première colonne de la grille de création de requête, tapez l'expression suivante dans la zone Champ et effectuez les sélections suivantes pour les zones Opération, Tri et Afficher :
       Champ : AYear: DatePart("yyyy",[Date commande])
       Opération : Regroupement
       Tri : Croissant
       Afficher : Oui
    						
    L'expression de la zone Champ affiche et trie la partie année du champ Date commande.
  5. Dans la deuxième colonne de la grille de création de requête, tapez l'expression suivante dans la zone Champ et effectuez les sélections suivantes pour les zones Total, Trier et Afficher :
       Champ : AMonth: DatePart("m",[Date commande])
       Opération : Regroupement
       Tri : Croissant
       Afficher : Oui
    						
    L'expression de la zone Champ trie et affiche la partie mois du champ Date commande comme valeur entière comprise entre 1 et 12.
  6. Dans la troisième colonne de la grille de création de requête, tapez l'expression suivante dans la zone Champ et effectuez les sélections suivantes pour les zones Opération et Afficher.

    REMARQUE : dans l'exemple suivant, un caractère de soulignement (_) est utilisé en fin de ligne pour indiquer que l'instruction continue à la ligne suivante. Supprimez le trait de soulignement de fin de ligne lorsque vous recréez cet exemple.
       Champ : RunTot: DSum("Port","Commandes","DatePart('m', _
              [Date commande])<=" & [AMonth] & " And  DatePart('yyyy', _
              [Date commande])<=" & [AYear] & "")
       Opération : Expression
       Afficher : Oui
    						
    L'expression de la zone Champ utilise la fonction DSum() pour additionner le champ Port lorsque les valeurs des champs AMonth et AYear sont inférieures ou égales à l'enregistrement actif traité par la requête.
  7. Dans la quatrième colonne de la grille de création de requête, tapez l'expression suivante dans la zone Champ et effectuez les sélections suivantes pour les zones Opération, Tri et Afficher :
       Champ : FDate: Format([Date envoi],"mmm")
       Opération : Regroupement
       Tri : Croissant
       Afficher : Oui
    						
    L'expression de la zone Champ affiche chaque mois dans un format textuel, tel que Jan, Fév, Mar, et ainsi de suite.
  8. Dans la cinquième colonne de la grille de création de requête, tapez l'expression suivante dans la zone Champ et effectuez les sélections suivantes pour les zones Opération, Critères et Afficher :
       Champ : DatePart("yyyy",[Date commande])
       Opération : Où
       Critères : 1997
       Afficher : Non
    						
    L'expression de la zone Champ filtre le jeu d'enregistrements de la requête de façon à inclure uniquement les données de 1997.
  9. Exécutez la requête. Notez que le champ RunTot affiche les enregistrements suivants avec un cumul :
       AYear    AMonth     RunTot       FDate
       --------------------------------------
       1997     1          2238.98      Jan
       1997     2          3840.43      Fév
       1997     3          5729.24      Mar
       1997     4          8668.34      Avr
       1997     5          12129.74     Mai
       1997     6          13982.39     Jun
       1997     7          17729.29     Jui
       1997     8          22204.73     Aou
       1997     9          26565.26     Sep
       1997     10         32031.38     Oct
       1997     11         36192.09     Nov
       1997     12         42748.64     Déc
    					

Méthode 2

La deuxième méthode utilise une requête de totaux avec une fonction DSum() pour créer un total cumulé sur un groupe.

L'exemple de requête suivant utilise le tableau Commandes pour additionner les frais de transport par employé ainsi que pour calculer un cumul des frais de transport. Pour créer et exécuter cette requête, procédez comme suit :
  1. Ouvrez l'exemple de base de données Comptoir.mdb.
  2. Créez une requête Sélection et ajoutez le tableau Commandes.
  3. Dans le menu Affichage, cliquez sur Opérations.
  4. Dans la première colonne de la grille de création de requête, ajoutez le champ suivant à la zone Champ et effectuez les sélections suivantes pour les zones Opération et Afficher :
       Champ : EmpAlias: RéfEmployé
       Opération : Regroupement
       Afficher : Oui
    						
    Ce champ groupe les données par RéfEmployé.
  5. Dans la deuxième colonne de la grille de création de requête, ajoutez le champ suivant à la zone Champ et effectuez les sélections suivantes pour les zones Opération et Afficher :
       Champ : Port
       Opération : Somme
       Afficher : Oui
    						
    Ce champ additionne les données de port.
  6. Dans la troisième colonne de la grille de création de requête, tapez l'expression suivante dans la zone Champ et effectuez les sélections suivantes pour les zones Opération et Afficher.

    REMARQUE : dans l'exemple suivant, un caractère de soulignement (_) est utilisé en fin de ligne pour indiquer que l'instruction continue à la ligne suivante. Supprimez le trait de soulignement de fin de ligne lorsque vous recréez cet exemple.
       Champ : RunTot: Format(DSum("Port","Commandes","[RéfEmployé]<=" _
              & [EmpAlias] & ""),"$0,000.00")
       Opération : Expression
       Afficher : Oui
    						
    L'expression de la zone Champ utilise une fonction DSum() pour additionner le champ Port lorsque RéfEmployé est inférieur ou égal à l'EmpAlias actuel, puis met en forme le champ en dollars.
  7. Exécutez la requête. Notez que le champ RunTot affiche les enregistrements suivants avec un cumul :
       Employee              SumOfFreight     RunTot
       -------------------------------------------------
       Davolio, Nancy        $8,836.64        $8,836.64
       Fuller, Andrew        $8,696.41        $17,533.05
       Leverling,Janet       $10,884.74       $28,417.79
       Peacock, Margaret     $11,346.14       $39,763.93
       Buchanan, Steven      $3,918.71        $43,682.64
       Suyama, Michael       $3,780.47        $47,463.11
       King, Robert          $6,665.44        $54,128.55
       Callahan, Laura       $7,487.88        $61,616.43
       Dodsworth, Anne       $3,326.26        $64,942.69
    					

Références

Pour plus d'informations sur les requêtes de totaux, cliquez sur Aide sur Microsoft Access dans le menu ? (Aide), tapez effectuer des calculs dans une requête dans le Compagnon Office ou dans l'Aide intuitive, puis cliquez sur Rechercher pour afficher les rubriques correspondantes.

Propriétés

Numéro d'article: 208714 - Dernière mise à jour: lundi 20 février 2006 - Version: 3.0
Les informations contenues dans cet article s'appliquent au(x) produit(s) suivant(s):
  • Microsoft Access 2000 Standard Edition
Mots-clés : 
kbfunctions kbprogramming kbhowto KB208714
L'INFORMATION CONTENUE DANS CE DOCUMENT EST FOURNIE PAR MICROSOFT SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE. L'UTILISATEUR ASSUME LE RISQUE DE L'UTILISATION DU CONTENU DE CE DOCUMENT. CE DOCUMENT NE PEUT ETRE REVENDU OU CEDE EN ECHANGE D'UN QUELCONQUE PROFIT.

Envoyer des commentaires

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com