Méthode Application.DSum (Access)

Utilisez la fonction DSum pour calculer la somme d’un jeu de valeurs dans un jeu d’enregistrements spécifié (un domaine).

Syntaxe

expression. DSum (Expr, Domain, Criteria)

expressionUne variable qui représente un objetApplication.

Paramètres

Nom Requis/Facultatif Type de données Description
Expr Obligatoire String Expression qui identifie le champ numérique dont vous souhaitez renvoyer la valeur. Il peut s'agir d'une expression 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 de table, un contrôle de 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 Chaîne Expression chaîne identifiant les enregistrements qui constituent le domaine. Il peut s'agir d'un nom de table ou d'un nom de requête qui ne requiert aucun paramètre.
Criteria Facultatif Variant Expression de chaîne facultative servant à limiter la plage des données sur laquelle porte la fonction DSum. Par exemple, criteria est souvent équivalent à la clause WHERE d'une expression SQL sans le mot WHERE. En cas d'omission de criteria, la fonction DSum évalue expr par rapport à l'intégralité du domaine. Tout champ inclus dans les critères doit également être un champ dans le domaine ; sinon, la fonction DSum retourne une valeur Null.

Valeur renvoyée

Variant

Remarques

Par exemple, la fonction DSum peut être utilisée dans une expression de champ calculé d’une requête pour calculer les ventes totales réalisées par un employé pendant une certaine période. Vous pouvez utiliser la fonction DSum dans un contrôle calculé pour afficher le cumul des ventes d’un produit particulier.

Si aucun enregistrement ne satisfait à l’argument critère , ou si le domaine ne contient aucun enregistrement, la fonction DSum renvoie une valeur Null.

Que vous utilisiez la fonction DSum 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.

Utilisez la fonction DSum pour spécifier des critères dans la ligne Critères d’une requête, dans un champ calculé dans une expression de requête ou dans la ligne Mettre à jour vers d’une requête de mise à jour.

Remarque

Utilisez la fonction DSum ou Sum dans une expression de champ calculé dans une requête total. Avec la fonction DSum, les valeurs sont calculées avant le regroupement des données. Avec la fonction Sum, les données sont regroupées avant que les valeurs incluses dans l'expression de champ ne soient calculées.

Vous pouvez utiliser la fonction DSum lorsque vous devez afficher la somme d’un jeu de valeurs à partir d’un champ qui ne figure pas dans la source d’enregistrement de votre formulaire ou état. Par exemple, supposons que vous ayez un formulaire qui affiche des informations sur un produit particulier. Vous pouvez utiliser la fonction DSum pour maintenir un total en cours d’exécution des ventes de ce produit dans un contrôle calculé.

Si vous devez conserver un total en cours d’exécution dans un contrôle sur un rapport, vous pouvez utiliser la propriété RunningSum de ce contrôle si le champ sur lequel il est basé est inclus dans la source d’enregistrement du rapport. Utilisez la fonction DSum pour gérer un cumul dans un formulaire.

Exemple

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

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

L'exemple suivant calcule une somme à l'aide de deux critères séparés. Remarquez que des guillemets simples (') et des signes numériques (#) sont inclus dans l'expression chaîne pour que la chaîne UK (Royaume-Uni) soit comprise entre guillemets simples et les dates soient comprises entre des signes numériques lors de la concaténation des chaînes.

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

Les exemples suivants montrent comment utiliser différents types de critères avec la fonction DSum.

    ' ***************************
    ' Typical Use
    ' Numerical values. Replace "number" with the number to use.
    variable = DSum("[FieldName]", "TableName", "[Criteria] = number")

    ' Strings.
    ' Numerical values. Replace "string" with the string to use.
    variable = DSum("[FieldName]", "TableName", "[Criteria]= 'string'")

    ' Dates. Replace "date" with the string to use.
    variable = DSum("[FieldName]", "TableName", "[Criteria]= #date#")
    ' ***************************

    ' ***************************
    ' Referring to a control on a form
    ' Numerical values
    variable = DSum("[FieldName]", "TableName", "[Criteria] = " & Forms!FormName!ControlName)

    ' Strings
    variable = DSum("[FieldName]", "TableName", "[Criteria] = '" & Forms!FormName!ControlName & "'")

    ' Dates
    variable = DSum("[FieldName]", "TableName", "[Criteria] = #" & Forms!FormName!ControlName & "#")
    ' ***************************

    ' ***************************
    ' Combinations
    ' Multiple types of criteria
    variable = DSum("[FieldName]", "TableName", "[Criteria1] = " & Forms![FormName]![Control1] _
             & " AND [Criteria2] = '" & Forms![FormName]![Control2] & "'" _
            & " AND [Criteria3] =#" & Forms![FormName]![Control3] & "#")
    
    ' Use two fields from a single record.
    variable = DSum("[LastName] & ', ' & [FirstName]", "tblPeople", "[PrimaryKey] = 7")
            
    ' Expressions
    variable = DSum("[Field1] + [Field2]", "tableName", "[PrimaryKey] = 7")
    
    ' Control Structures
    variable = DSum("IIf([LastName] Like 'Smith', 'True', 'False')", "tableName", "[PrimaryKey] = 7")
    ' ***************************

Assistance et commentaires

Avez-vous des questions ou des commentaires sur Office VBA ou sur cette documentation ? Consultez la rubrique concernant l’assistance pour Office VBA et l’envoi de commentaires afin d’obtenir des instructions pour recevoir une assistance et envoyer vos commentaires.