Fonction DSum

S’applique à
Access pour Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

Vous pouvez utiliser la fonction SomDom pour calculer la somme d’un jeu de valeurs d’un ensemble d’enregistrements spécifié (un domaine). Utilisez la fonction SomDom dans un module Visual Basic pour Applications (VBA), une macro, une expression de requête ou un contrôle calculé.

Par exemple, vous pouvez utiliser la fonction SomDom dans une expression de champ calculé d’une requête pour calculer le total des ventes réalisées par un employé sur une période donnée. Vous pouvez également utiliser la fonction SomDom dans un contrôle calculé pour afficher le total cumulé des ventes pour un produit donné.

Syntaxe

DSum(expr, domaine [, critères] )

La syntaxe de la fonction SomDom contient les arguments suivants :

Argument Description
expr Obligatoire. Expression qui identifie le champ numérique dont vous souhaitez totaliser les valeurs. Il peut s’agir d’une expression de chaîne identifiant un champ dans une table ou une requête, ou d’une expression qui effectue un calcul sur les données de ce champ. Dans expr, vous pouvez inclure le nom d’un champ dans une table, un contrôle d’un formulaire, une constante ou une fonction. Si expr inclut une fonction, elle peut être intégrée ou définie par l’utilisateur, mais pas une autre fonction d’agrégation de domaine ou SQL.
domaine Obligatoire. Expression de chaîne identifiant l’ensemble d’enregistrements qui constitue le domaine. Il peut s’agir d’un nom de table ou d’un nom de requête pour une requête qui ne nécessite pas de paramètre.
critère Facultatif. Expression de chaîne utilisée pour restreindre la plage de données sur laquelle la fonction SomDom est exécutée. Par exemple, criteria est souvent équivalent à la clause WHERE dans une expression SQL, sans le mot WHERE. Si des critères sont omis, la fonction DSum évalue expr par rapport à l’ensemble du domaine. Tout champ inclus dans les critères doit également être un champ dans le domaine ; sinon, la fonction SomDom renvoie la valeur Null.

    

Remarques

Si aucun enregistrement ne répond à l’argument de critère ou si le domaine ne contient aucun enregistrement, la fonction SomDom renvoie la valeur Null.

Que vous utilisiez la fonction SomDom dans une macro, un module, une expression de requête ou un contrôle calculé, vous devez construire l’argument critère avec soin pour vous assurer qu’il sera évalué correctement.

Vous pouvez utiliser la fonction SomDom pour spécifier des critères dans la ligne Critères d’une requête, dans un champ calculé d’une expression de requête ou dans la ligne Mettre à jour vers d’une requête Mise à jour.

Remarque

Vous pouvez utiliser la fonction SomDom ou Somme dans une expression de champ calculé dans une requête Opérations. Si vous utilisez la fonction SomSom , les valeurs sont calculées avant le regroupement des données. Si vous utilisez la fonction Somme , les données sont regroupées avant l’évaluation des valeurs figurant dans l’expression de champ.

Vous pouvez utiliser la fonction SomDom lorsque vous devez afficher la somme d’un jeu de valeurs d’un champ qui n’est pas dans la source d’enregistrement de votre formulaire ou état. Par exemple, supposons que vous disposez d’un formulaire qui affiche des informations sur un produit particulier. Vous pouvez utiliser la fonction SomDom pour conserver un total cumulé des ventes de ce produit dans un contrôle calculé.

Conseil

Si vous devez gérer un total cumulé dans un contrôle d’état, vous pouvez utiliser la propriété Somme courante de ce contrôle, si le champ sur lequel il est basé est inclus dans la source d’enregistrement de l’état. Utilisez la fonction SomDom pour gérer une somme courante sur un formulaire.

Remarque

Les modifications apportées aux enregistrements du domaine ne sont pas incluses lorsque vous utilisez cette fonction. Si vous souhaitez que la fonction SomDom soit basée sur les valeurs modifiées, vous devez d’abord enregistrer les modifications apportées en cliquant sur Enregistrer l’enregistrement dans le groupe Enregistrements de l’onglet Accueil , en déplaçant le focus sur un autre enregistrement ou en utilisant la méthode Mise à jour .

Exemples

Utiliser la fonction SomDom dans une expression Vous pouvez utiliser une fonction de domaine (telle que DSum) dans la ligne Mettre à jour vers d’une requête Mise à jour. Par exemple, supposons que vous souhaitiez suivre les ventes actuelles par produit dans une table Produits. Vous pouvez ajouter un nouveau champ intitulé SoVentes à la table Produits et exécuter une requête Mise à jour pour calculer les valeurs correctes et mettre à jour les enregistrements. Pour ce faire, créez une requête basée sur la table Produits, puis, dans l’onglet Création , dans le groupe Type de requête , cliquez sur Mettre à jour. Ajoutez le champ VentesSoFar à la grille de requête, puis tapez ce qui suit dans la ligne Mise à jour vers :

DSum("[Quantity]*[UnitPrice]", "Order Details", _
    "[ProductID] = "& [ProductID])

Lorsque vous exécutez la requête, Access calcule le montant total des ventes pour chaque produit, en fonction des informations d’une table Détails de la commande. Le total des ventes pour chaque produit est ajouté à la table Produits.

Utiliser DSum dans le code VBA 

Remarque

Les exemples suivants illustrent l’utilisation de cette fonction dans un module Visual Basic pour Applications (VBA). Pour plus d’informations sur l’utilisation de VBA, sélectionnez Référence développeur dans la liste déroulante en regard de Rechercher , puis entrez un ou plusieurs termes dans la zone de recherche.

L’exemple suivant totalise les valeurs du champ Transport pour les commandes expédiées au Royaume-Uni. Le domaine est une table Commandes. L’argument critère limite l’ensemble d’enregistrements résultant à ceux pour lesquels ShipCountryRegion est égal à UK.

Dim curX As Currency
curX = DSum("[Freight]", "Orders", _
    "[ShipCountryRegion] = 'UK'")

L’exemple suivant calcule un total en utilisant deux critères distincts. Notez que les guillemets simples (') et les signes numériques (#) sont inclus dans l’expression de chaîne, de sorte que lorsque les chaînes sont concaténées, le littéral de chaîne est entouré de guillemets simples et la date est entourée de signes dièse.

Dim curX As Currency
curX = DSum("[Freight]", "Orders", _
    "[ShipCountryRegion] = 'UK' AND _
    [ShippedDate] > #1-1-95#")