DSUM |
Somme des données |
|---|---|
| Access 2019, Access 2016, Access 2013, Access 2010, Access 2007, Access 2003, Access XP, Access 2000 | Microsoft Access |
Syntaxe
| DSum(expression,domain, [criteria]) |
Paramètres
| Nom | Description |
|---|---|
| expression | Ce paramètre permet d'indiquer le champ pour lequel vous souhaitez calculer la somme. |
| domain | Ce paramètre permet d'indiquer l'ensemble d'enregistrement correspondant au domaine. |
| criteria | Ce paramètre permet d'indiquer le critère de recherche à appliquer à l'expression. |
Description
Cette fonction permet de retourner la somme des valeurs d'un ensemble de données numérique d'un domaine ou d'un ensemble d'enregistrement.
Remarques
- La fonction calcule la somme des valeurs d'un domaine : La fonction DSum permet d'additionner toutes les valeurs numériques d'un champ appartenant à une table ou à une requête. Contrairement à la fonction SQL Sum, elle travaille directement sur le domaine indiqué en paramètre. Elle est particulièrement utile pour obtenir rapidement un total dans un formulaire, un état ou une procédure VBA.
- Le paramètre domain désigne la table ou la requête à utiliser : Le deuxième paramètre indique où la fonction doit rechercher les données à additionner. Il peut s'agir du nom d'une table ou d'une requête enregistrée dans la base de données. Cette indépendance vis-à-vis de la source de données courante permet d'accéder facilement à des informations provenant d'autres objets Access.
- Le paramètre criteria permet de calculer une somme conditionnelle : Le troisième paramètre est facultatif et sert à limiter les enregistrements pris en compte dans le calcul. Par exemple, il est possible de calculer le total des ventes d'un représentant, le montant des factures d'un client ou la somme des heures travaillées sur un projet. Sans critère, toutes les valeurs du domaine sont additionnées.
- Les valeurs Null sont ignorées lors du calcul : DSum additionne uniquement les valeurs numériques présentes dans le champ spécifié. Les enregistrements dont la valeur est Null ne participent pas au calcul et ne provoquent pas d'erreur. Ce comportement est identique à celui de la fonction SQL SUM() et permet d'obtenir un résultat cohérent même lorsque certaines données sont incomplètes.
- Le résultat est retourné sous forme de Variant : La fonction retourne un résultat de type Variant, capable de représenter différents types numériques. Si aucun enregistrement ne correspond aux critères ou si toutes les valeurs sont Null, la fonction retourne généralement Null. Il est donc conseillé de tester cette situation avant d'utiliser le résultat dans un calcul.
- Elle est très utilisée dans les formulaires et les états : DSum est fréquemment employée dans les contrôles calculés afin d'afficher automatiquement un total. Par exemple, un formulaire peut présenter le montant total des commandes d'un client ou le cumul des paiements reçus. Cette approche évite souvent de créer une requête d'agrégation spécifique.
- Elle appartient à la famille des fonctions de domaine : DSum fait partie des fonctions de domaine telles que DAvg, DCount, DLookup, DMax, DMin, DFirst et DLast. Toutes ces fonctions permettent d'interroger directement une table ou une requête sans écrire de requête SQL complexe. Elles offrent une solution simple pour réaliser des calculs ponctuels dans une application Access.
- Les critères doivent respecter la syntaxe des expressions Access : Le paramètre criteria est exprimé sous forme de chaîne de caractères et doit respecter les règles de syntaxe d'Access. Les valeurs textuelles doivent être encadrées par des guillemets simples, tandis que les dates sont généralement délimitées par des caractères #. Une erreur dans cette expression peut empêcher la fonction de retourner le résultat attendu.
- Une utilisation intensive peut réduire les performances : Chaque appel à DSum provoque une nouvelle recherche dans le domaine spécifié. Si cette fonction est exécutée de nombreuses fois dans un formulaire continu ou dans une boucle VBA, les performances peuvent diminuer sensiblement. Pour les traitements portant sur un grand nombre d'enregistrements, une requête SQL utilisant SUM() est souvent plus efficace.
- La fonction est compatible avec toutes les versions modernes de Microsoft Access : DSum est disponible depuis les premières versions de Microsoft Access et son comportement est demeuré stable au fil des années. Elle est compatible avec Access 2000, Access XP, Access 2003, Access 2007, Access 2010, Access 2013, Access 2016 ainsi qu'avec Microsoft 365. Cette stabilité garantit que les applications utilisant cette fonction peuvent être migrées vers des versions plus récentes d'Access sans modification de leur logique de calcul.
Exemple
Voici un exemple de comment utiliser la fonction DSum dans Microsoft Access :
DSum("UnitPrice", "Order Details", "OrderID = 10247")
Dans cet exemple, vous additionneriez le champ UnitPrice de la table Order Details où l'OrderID est 10247. Cela correspond à l'instruction SQL suivante :
SELECT Sum([Order Details].UnitPrice) AS SumOfUnitPrice
FROM [Order Details]
WHERE ((([Order Details].OrderID)=10247));
Vous pouvez également additionner plusieurs champs numériques. Par exemple :
DSum("UnitPrice * Quantity", "Order Details", "OrderID = 10247")
Cet exemple additionnerait le prix unitaire × quantité pour tous les enregistrements de la table Détails de la commande où le OrderID est 10247. Ceci est identique à l'instruction SQL suivante :
SELECT Sum([UnitPrice]*[Quantity]) AS Expr1
FROM [Order Details]
WHERE ((([Order Details].OrderID)=10247));
Dernière mise à jour : Mardi, le 28 juillet 2015