Puede usar la función DSuma para calcular la suma de un conjunto de valores de un conjunto de registros especificado (un dominio). Use la función DSuma en un módulo de Visual Basic para Aplicaciones (VBA), una macro, una expresión de consulta o un control calculado.
Por ejemplo, puede usar la función DSuma en una expresión de campo calculado de una consulta para calcular las ventas totales realizadas por un empleado determinado durante un período de tiempo. O bien, puede usar la función DSuma en un control calculado para mostrar una suma acumulada de ventas de un producto determinado.
Sintaxis
DSum(expr, dominio [, criterios] )
La sintaxis de la función DSuma consta de los siguientes argumentos:
| Argumento | Descripción |
|---|---|
| expresión | Obligatorio. Una expresión que identifica el campo numérico cuyos valores desea sumar. Puede ser una expresión de cadena que identifica un campo en una tabla o consulta, o puede ser una expresión que realiza un cálculo de los datos de ese campo. En expr, puede incluir el nombre de un campo en una tabla, un control en un formulario, una constante o una función. Si expr incluye una función, puede estar integrada o definida por el usuario, pero no otra función de agregado de dominio o de agregado SQL. |
| dominio | Obligatorio. Una expresión de cadena que identifica el conjunto de registros que constituye el dominio. Puede ser un nombre de tabla o un nombre de consulta para una consulta que no requiere un parámetro. |
| criterios | Opcional. Una expresión de cadena usada para restringir el rango de datos en el que se realiza la función DSuma . Por ejemplo, los criterios suelen ser equivalentes a la cláusula WHERE en una expresión SQL, sin la palabra WHERE. Si se omiten los criterios , la función DSuma evalúa la expresión en todo el dominio. Cualquier campo que se incluya en los criterios también debe ser un campo de dominio; de lo contrario, la función DSuma devuelve un valor nulo. |
Observaciones
Si ningún registro cumple con el argumento de criterios , o si el dominio no contiene ningún registro, la función DSuma devuelve un valor nulo.
Si usa la función DSuma en una macro, un módulo, una expresión de consulta o un control calculado, debe construir el argumento de criterios con cuidado para asegurarse de que se evaluará correctamente.
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 en de una consulta de actualización.
Nota
Puede usar la función DSuma o Suma en una expresión de campo calculado en una consulta de totales. Si usa la función DSum , los valores se calculan antes de agrupar los datos. Si usa la función Suma , los datos se agrupan antes de que se evalúen los valores de la expresión de campo.
Es posible que desee usar la función DSuma 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. Por ejemplo, imagine que tiene un formulario que muestra información sobre un producto determinado. Puede usar la función DSuma para mantener un total acumulado de ventas de ese producto en un control calculado.
Propina
Si necesita mantener un total acumulado en un control de un informe, puede utilizar la propiedad RunningSum de ese control, si el campo en el que se basa está incluido en el origen de registros del informe. Use la función DSuma para mantener una suma acumulada en un formulario.
Nota
Cuando se usa esta función, no se incluyen los cambios no guardados en los registros del dominio . Si desea que la función DSuma se base en los valores cambiados, primero debe guardar los cambios haciendo clic en Guardar registro en el grupo Registros de la pestaña Inicio , moviendo el foco a otro registro o utilizando el método Update .
Ejemplos
Usar la función DSuma en una expresión Puede usar una función de dominio (como DSum) en la fila Actualizar para de una consulta de actualización. Por ejemplo, supongamos que desea realizar un seguimiento de las ventas actuales por producto en una tabla de productos. Podría agregar un nuevo campo llamado SalesSoFar a la tabla Productos y ejecutar una consulta de actualización para calcular los valores correctos y actualizar los registros. Para ello, cree una nueva consulta basada en la tabla Productos y, en la pestaña Diseño , en el grupo Tipo de consulta , haga clic en Actualizar. Agregue el campo SalesSoFar a la cuadrícula de consultas y escriba lo siguiente en la fila Actualizar a :
DSum("[Quantity]*[UnitPrice]", "Order Details", _
"[ProductID] = "& [ProductID])
Al ejecutar la consulta, Access calcula la cantidad total de ventas de cada producto, según la información de una tabla Detalles del pedido. La suma de las ventas de cada producto se agrega a la tabla Productos.
Uso de DSuma en código VBA
Nota
Los ejemplos siguientes muestran el uso de esta función en un módulo de Visual Basic para Aplicaciones (VBA). Para obtener más información sobre cómo trabajar con VBA, seleccione referencia para desarrolladores en la lista desplegable situada junto a búsqueda y escriba uno o varios términos en el cuadro de búsqueda.
En el ejemplo siguiente se totalizan los valores del campo Transporte para los pedidos enviados al Reino Unido. El dominio es una tabla Pedidos. El argumento de los criterios restringe el conjunto resultante de registros a aquellos para los que ShipCountryRegion es igual a Reino Unido.
Dim curX As Currency
curX = DSum("[Freight]", "Orders", _
"[ShipCountryRegion] = 'UK'")
En el ejemplo siguiente se calcula un total mediante dos criterios independientes. Tenga en cuenta que las comillas simples (') y los signos de número (#) se incluyen en la expresión de cadena, de modo que cuando se concatenan las cadenas, el literal de cadena se incluye entre comillas simples y la fecha se escribe entre signos de almohadilla.
Dim curX As Currency
curX = DSum("[Freight]", "Orders", _
"[ShipCountryRegion] = 'UK' AND _
[ShippedDate] > #1-1-95#")