ACC : Comment faire pour créer des totaux en cours d'exécution dans une requête (95/97)

Numéro d'article: 138911 - Voir les produits auxquels s'applique cet article
Agrandir tout | Réduire tout

Sommaire

Résumé

Avancé : La nécessité de codage expert, l'interopérabilité et compétences multi-utilisateur.

Cet article illustre deux méthodes que vous pouvez utiliser pour créer une requête de totaux en cours d'exécution ; c'est-à-dire, le total pour chaque enregistrement est une somme 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 sur une période de temps) dans un graphique ou un état.

Remarque : Un démonstration de la technique utilisée dans cet article peut être constaté dans le fichier d'exemple Qrysmp97.exe. Pour plus d'informations sur la façon d'obtenir cet exemple de fichier, consultez l'article suivant dans la base de connaissances Microsoft :
182568ACC97 : Microsoft Access 97 exemples de requêtes disponibles au centre de téléchargement

Plus d'informations

Méthode 1

La première méthode utilise une fonction DSum() et critères dans une requête pour créer un cumul dans le temps. La fonction DSum() additionne l'enregistrement actif et tous les enregistrements précédents. Lorsque la requête se déplace vers l'enregistrement suivant, la fonction DSum() s'exécute à nouveau et met à jour le total cumulé.

L'exemple de requête suivant utilise la table commandes à partir de la base de données Comptoir.mdb pour créer un cumul des frais de transport pour chaque mois de 1994. L'exemple de données est limité à une année pour des raisons de performances. Étant donné que la fonction DSum() s'exécute qu'une seule fois pour chaque enregistrement dans la requête, il peut prendre plusieurs secondes (selon la vitesse de votre ordinateur) pour la requête à la fin du traitement. Pour créer et exécuter cette requête, procédez comme suit :
  1. Ouvrez la base de données Comptoir.mdb.
  2. Créez une nouvelle requête et ajoutez la table commandes.
  3. Dans le menu Affichage, cliquez sur totaux.
  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 le total, tri et afficher les zones :
    Champ : AYear : DatePart("yyyy",[OrderDate]) Total : GROUP BY trier : afficher croissants : Oui

    L'expression dans 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 le total, tri et afficher les zones :
    Champ : AMonth : DatePart("m",[OrderDate]) Total : GROUP BY trier : afficher croissants : Oui

    L'expression dans la zone champ trie et affiche la partie mois du champ Date commande sous la forme d'un nombre entier compris 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 de champ et effectuez les sélections suivantes pour les zones de total et les afficher. Remarque : Dans l'exemple suivant, un trait de soulignement (_) à la fin d'une ligne est utilisé comme un caractère de continuation de ligne. Supprimez le trait de soulignement de fin de la ligne lorsque vous recréez cet exemple.
    RunTot de champ:: DSum (» des transports","Commandes"," DatePart('m', _ [OrderDate]) < = "& [AMonth] &" et DatePart('yyyy', _ [OrderDate]) < = "& [AYear] &" ") total : expression afficher : Oui

    L'expression dans la zone champ utilise la fonction DSum() pour additionner le champ port lorsque les valeurs dans le AMonth et les champs AYear sont inférieures ou égales à l'enregistrement en cours qui traite 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 le total, tri et afficher les zones :
    Champ : FDate : Format([OrderDate],"mmm") Total : GROUP BY trier : afficher croissants : Oui

    L'expression dans la zone champ affiche chaque mois dans un format textuel, tel un Janv, 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 le total, critères et afficher les zones :
    Champ : DatePart("yyyy",[OrderDate]) total : WHERE critères : afficher 1994 : non

    L'expression dans la zone de champ filtre le jeu d'enregistrements de la requête pour inclure uniquement les données à partir de 1994.
  9. Exécutez la requête.
Dans Microsoft Access 97, notez que le champ RunTot affiche les enregistrements suivants avec un cumul :
     Ayear     Amonth     RunTot     Fdate
     -------------------------------------
     1994      8           1288.18   Aug
     1994      9           2685.35   Sep
     1994      10          3808.83   Oct
     1994      11          5219.05   Nov
     1994      12          7481.28   Dec
				

Dans Microsoft Access version 7.0, notez que le champ RunTot affiche les enregistrements suivants avec un cumul :
     Ayear     Amonth     RunTot     Fdate
     -------------------------------------
     1994      1          1936.65    Jan
     1994      2          3452.52    Feb
     1994      3          5479.33    Mar
     1994      4          8607.74    Apr
     1994      5          12094.67   May
     1994      6          13859.39   Jun
     1994      7          17729      Jul
     1994      8          21992.58   Aug
     1994      9          27477.79   Sep
     1994      10         31767.05   Oct
     1994      11         36681.15   Nov
     1994      12         42894.37   Dec
				

Méthode 2

La deuxième méthode utilise une requête totaux avec une fonction DSum() pour créer un cours d'exécution total sur un groupe.

L'exemple de requête suivant utilise la table commandes à la somme des frais de transport par employé ainsi que pour calculer un cumul des frais de transport. Pour créer et exécuter la requête, procédez comme suit :
  1. Ouvrez la base de données Comptoir.mdb.
  2. Créez une nouvelle requête sélection et ajoutez la table commandes.
  3. Dans le menu Affichage, cliquez sur totaux.
  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 de total et afficher :
    Champ : EmpAlias : EmployeeID Total : GROUP BY afficher : Oui

    Ce champ groupe de 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 le total et afficher les zones :
    Transport du champ : Total : somme afficher : Oui

    Ce champ additionne les données de transport.
  6. Dans la troisième colonne de la grille de création de requête, tapez l'expression suivante dans la zone de champ et effectuez les sélections suivantes pour les zones de total et les afficher. Remarque : Dans l'exemple suivant, un trait de soulignement (_) à la fin d'une ligne est utilisé comme un caractère de continuation de ligne. Supprimez le trait de soulignement de fin de la ligne lorsque vous recréez cet exemple.
    Champ : RunTot : format (DSum("Freight","Orders","[EmployeeID]<=" _ & [EmpAlias] & ""), "$ 0,000.00") total : expression afficher : Oui

    L'expression dans la zone champ utilise une fonction DSum() pour additionner le champ port lorsque le n° d'employé est inférieur ou égal à l'EmpAlias actuel, puis comment mettre 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, recherchez dans le sommaire pour "requêtes, des calculs," et puis «effectuer des calculs dans une requête» ou formulez votre question au Compagnon Office de Microsoft Access 97.

Pour plus d'informations sur la création d'une requête de totaux en cours d'exécution, consultez l'article suivant dans la base de connaissances Microsoft :
N° d'ARTICLE : 132134 ACC2 : How to Create exécution totaux dans une requête

Propriétés

Numéro d'article: 138911 - Dernière mise à jour: vendredi 19 janvier 2007 - Version: 3.1
Les informations contenues dans cet article s'appliquent au(x) produit(s) suivant(s):
  • Microsoft Access 95 Standard
  • Microsoft Access 97 Standard
Mots-clés : 
kbmt kbhowto kbusage KB138911 KbMtfr
Traduction automatique
IMPORTANT : Cet article est issu du système de traduction automatique mis au point par Microsoft (http://support.microsoft.com/gp/mtdetails). Un certain nombre d?articles obtenus par traduction automatique sont en effet mis à votre disposition en complément des articles traduits en langue française par des traducteurs professionnels. Cela vous permet d?avoir accès, dans votre propre langue, à l?ensemble des articles de la base de connaissances rédigés originellement en langue anglaise. Les articles traduits automatiquement ne sont pas toujours parfaits et peuvent comporter des erreurs de vocabulaire, de syntaxe ou de grammaire (probablement semblables aux erreurs que ferait une personne étrangère s?exprimant dans votre langue !). Néanmoins, mis à part ces imperfections, ces articles devraient suffire à vous orienter et à vous aider à résoudre votre problème. Microsoft s?efforce aussi continuellement de faire évoluer son système de traduction automatique.
La version anglaise de cet article est la suivante: 138911
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.
Exclusion de responsabilité concernant les contenus obsolètes dans la Base de connaissances
Cet article concerne des produits pour lesquels Microsoft n'offre plus de support. Il est par conséquent fourni « en l'état » et ne sera plus mis à jour.

Envoyer des commentaires