Método Application. DSum (Access)Application.DSum method (Access)

Puede usar la función DSum para calcular la suma de un conjunto de valores de un conjunto de registros especificado (un dominio).You can use the DSum function to calculate the sum of a set of values in a specified set of records (a domain).

SintaxisSyntax

expresión. DSuma (Expr, dominio, criterios)expression.DSum (Expr, Domain, Criteria)

expresión Variable que representa un objeto Application.expression A variable that represents an Application object.

ParámetrosParameters

NombreName Obligatorio/opcionalRequired/Optional Tipo de datosData type DescripciónDescription
ExprExpr ObligatorioRequired StringString Una expresión que identifica el campo numérico de cuyos valores se quiere obtener el total.An expression that identifies the numeric field whose values you want to total. Puede ser una expresión de cadena que identifica un campo de una tabla o consulta, o una expresión que realiza un cálculo con los datos de ese campo.It can be a string expression identifying a field in a table or query, or it can be an expression that performs a calculation on data in that field. En expr, puede incluir el nombre de un campo en una tabla, un control de un formulario, una constante o una función.In expr, you can include the name of a field in a table, a control on a form, a constant, or a function. Si expr incluye una función, puede ser integrada o definida por el usuario, pero no puede ser ninguna otra función de agregado de dominio o de agregado de SQL.If expr includes a function, it can be either built-in or user-defined, but not another domain aggregate or SQL aggregate function.
DomainDomain ObligatorioRequired StringString Una expresión de cadena que identifica el conjunto de registros que constituyen el dominio.A string expression identifying the set of records that constitutes the domain. Puede ser un nombre de tabla o de consulta para una consulta que no requiere ningún parámetro.It can be a table name or a query name for a query that does not require a parameter.
CriteriaCriteria OptionalOptional VariantVariant Una expresión de cadena opcional que se utiliza para restringir el intervalo de datos en el que se ejecuta la función DSum .An optional string expression used to restrict the range of data on which the DSum function is performed. Por ejemplo, criteria suele ser equivalente a la cláusula WHERE en una expresión SQL, sin la palabra WHERE.For example, criteria is often equivalent to the WHERE clause in an SQL expression, without the word WHERE. Si se omite criteria , la función DSum evalúa expr para todo el dominio.If criteria is omitted, the DSum function evaluates expr against the entire domain. Cualquier campo que se incluya en criteria también debe ser un campo de dominio; de lo contrario, la función DSum devolverá un valor null.Any field that is included in criteria must also be a field in domain; otherwise, the DSum function returns a Null.

Valor devueltoReturn value

VariantVariant

ObservacionesRemarks

Por ejemplo, podría usar la función DSum en una expresión de campo calculada en una consulta para calcular las ventas totales que realizó un empleado concreto durante un período de tiempo.For example, you could use the DSum function in a calculated field expression in a query to calculate the total sales made by a particular employee over a period of time. O podría usar la función DSum en un control calculado para mostrar una suma continua de ventas de un producto determinado.Or you could use the DSum function in a calculated control to display a running sum of sales for a particular product.

Si no hay ningún registro que satisfaga los criterios del argumento criteria o si el dominio no contiene registros, la función DSum devolverá un valor null.If no record satisfies the criteria argument, or if domain contains no records, the DSum function returns a Null.

Independientemente de si usa la función DSum en una macro, un módulo, una expresión de consulta o un control calculado, debe crear el argumento criteria con cuidado para garantizar que se evaluará correctamente.Whether you use the DSum function in a macro, module, query expression, or calculated control, you must construct the criteria argument carefully to ensure that it will be evaluated correctly.

Puede usar la función DSuma para especificar criterios en la fila criterios de una consulta, en un campo calculado de una expresión de consulta o en la fila actualizar a de una consulta de actualización.You can use the DSum function to specify criteria in the Criteria row of a query, in a calculated field in a query expression, or in the Update To row of an update query.

Nota

Puede usar la función DSum o Sum en una expresión de campo calculado de una consulta de totales.You can use either the DSum or Sum function in a calculated field expression in a totals query. Si usa la función DSum, los valores se calculan antes de que se agrupen los datos.If you use the DSum function, values are calculated before data is grouped. Si usa la función Sum, los datos se agrupan antes de que se evalúen los valores de la expresión del campo.If you use the Sum function, the data is grouped before values in the field expression are evaluated.

Puede que quiera usar la función DSum cuando necesite mostrar la suma de un conjunto de valores de un campo que no está en el origen de registros del formulario o informe.You may want to use the DSum function when you need to display the sum of a set of values from a field that is not in the record source for your form or report. Suponga, por ejemplo, que tiene un formulario que muestra información sobre un producto particular.For example, suppose you have a form that displays information about a particular product. Podría usar la función DSum para mantener un total actualizado de las ventas de dicho producto en un control calculado.You could use the DSum function to maintain a running total of sales of that product in a calculated control.

Si necesita mantener un total acumulado en un control de un informe, puede usar la propiedad RunningSum de ese control si el campo en el que se basa se incluye en el origen de registros del informe.If you need to maintain a running total in a control on a report, you can use the RunningSum property of that control if the field on which it is based is included in the record source for the report. Use la función DSum para mantener una suma continua en un formulario.Use the DSum function to maintain a running sum on a form.

EjemploExample

En el siguiente ejemplo, se suman los valores del campo cargo para los pedidos enviados al Reino Unido.The following example totals the values from the Freight field for orders shipped to the United Kingdom. El dominio es la tabla denominada Orders (Pedidos).The domain is an Orders table. El argumento criteria restringe el conjunto de registros resultante a aquéllos para los que PaísDestinatario es igual a UK.The criteria argument restricts the resulting set of records to those for which ShipCountry equals UK.

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

El ejemplo siguiente calcula un total usando dos criterios distintos.The next example calculates a total by using two separate criteria. Observe que en la expresión de cadena se incluyen signos de comilla tipográfica (') y signos de número (#), de modo que cuando las cadenas se concatenen, la cadena se encerrará entre signos de comilla tipográfica, y la fecha se encerrará entre signos de número.Note that single quotation marks (') and number signs (#) are included in the string expression, so that when the strings are concatenated, the string literal will be enclosed in single quotation marks, and the date will be enclosed in number signs.

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

Los ejemplos siguientes muestran cómo usar varios tipos de criterios con la función DSum.The following examples show how to use various types of criteria with the DSum function.

    ' ***************************
    ' 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")
    ' ***************************

Soporte técnico y comentariosSupport and feedback

¿Tiene preguntas o comentarios sobre VBA para Office o esta documentación?Have questions or feedback about Office VBA or this documentation? Vea Soporte técnico y comentarios sobre VBA para Office para obtener ayuda sobre las formas en las que puede recibir soporte técnico y enviar comentarios.Please see Office VBA support and feedback for guidance about the ways you can receive support and provide feedback.