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
(http://support.microsoft.com/kb/138911/
)
.
Pour vous procurer une version Microsoft Access 2002 et Access 2003 de cet article, reportez-vous à l'article 290136
(http://support.microsoft.com/kb/290136/
)
.
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
(http://support.microsoft.com/kb/207626/
)
Exemples de requêtes Access 2000 disponibles au Centre de téléchargement
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 :
Ouvrez l'exemple de base de données Comptoir.mdb.
Créez une requête Sélection et ajoutez le tableau Commandes.
Dans le menu Affichage, cliquez sur Opérations.
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 :
L'expression de la zone Champ affiche et trie la partie année du champ Date commande.
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 :
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.
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.
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.
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 :
L'expression de la zone Champ affiche chaque mois dans un format textuel, tel que Jan, Fév, Mar, et ainsi de suite.
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.
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
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 :
Ouvrez l'exemple de base de données Comptoir.mdb.
Créez une requête Sélection et ajoutez le tableau Commandes.
Dans le menu Affichage, cliquez sur Opérations.
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 :
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.
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.
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.
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
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.
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.