totn Access Functions

MS Access: DSum Function

This MSAccess tutorial explains how to use the Access DSum function with syntax and examples.

Description

The Microsoft Access DSum function returns the sum of a set of numeric values from an Access table (or domain).

Syntax

The syntax for the DSum function in MS Access is:

DSum ( expression, domain, [criteria] )

Parameters or Arguments

expression
The numeric values that you wish to sum.
domain
The set of records. This can be a table or a query name.
criteria
Optional. It is the WHERE clause to apply to the domain.

Returns

The DSum function returns a numeric value.

Applies To

The DSum function can be used in the following versions of Microsoft Access:

  • Access 2019, Access 2016, Access 2013, Access 2010, Access 2007, Access 2003, Access XP, Access 2000

Example

Let's look at how to use the DSum function in MS Access:

DSum("UnitPrice", "Order Details", "OrderID = 10248")

In this example, you would be summing the UnitPrice field in the Order Details table where the OrderID is 10248. This is the same as the following SQL statement:

SELECT Sum([Order Details].UnitPrice) AS SumOfUnitPrice
FROM [Order Details]
WHERE ((([Order Details].OrderID)=10248));

You can also sum more than one numeric field. For example:

DSum("UnitPrice * Quantity", "Order Details", "OrderID = 10248")

This example would sum the UnitPrice x Quantity for all records in the Order Details table where the OrderID is 10248. This is the same as the following SQL statement:

SELECT Sum([UnitPrice]*[Quantity]) AS Expr1
FROM [Order Details]
WHERE ((([Order Details].OrderID)=10248));

Example in VBA Code

The DSum function can be used in VBA code in Microsoft Access.

For example:

Dim LTotal As Currency

LTotal = DSum("UnitPrice", "Order Details", "OrderID = 10248")

In this example, the variable called LTotal would now contain the summed UnitPrice from the Order Details table where the OrderID is 10248.

Example in SQL/Queries

You can also use the DSum function in a query in Microsoft Access.

For example:

Microsoft Access

In this query, we have used the DSum function as follows:

Expr1: DSum("UnitPrice","Order Details","OrderID = 10248")

This query will return the OrderID value from the Orders table. It will also return the sum of the UnitPrice values from the Order Details table where the OrderID is equal to 10248. (NOTE: The Order Details table contains one record for each item ordered, so there can be more than one record for each OrderID). The results of the DSum function will be displayed in a column called Expr1. You can replace Expr1 with a column name that is more meaningful.

For example:

TotalSum: DSum("UnitPrice","Order Details","OrderID = 10248")

The results would now be displayed in a column called TotalSum. This example is just used for demonstration purposes to show how to use the DSum function and what it would return.