Table of contents
Collapse the table of content
Expand the table of content

Sum Function (Microsoft Access SQL)

office 365 dev account|Last Updated: 4/3/2018
3 Contributors

Applies to: Access 2013 | Access 2016

In this articleSyntaxRemarks Example

Returns the sum of a set of values contained in a specified field on a query.



The expr placeholder represents a string expression identifying the field that contains the numeric data you want to add or an expression that performs a calculation using the data in that field. Operands in expr can include the name of a table field, a constant, or a function (which can be either intrinsic or user-defined but not one of the other SQL aggregate functions).


The Sum function totals the values in a field. For example, you could use the Sum function to determine the total cost of freight charges.

The Sum function ignores records that contain Null fields. The following example shows how you can calculate the sum of the products of UnitPrice and Quantity fields:

Sum(UnitPrice * Quantity) 
AS [Total Revenue] FROM [Order Details];

You can use the Sum function in a query expression. You can also use this expression in the SQL property of a QueryDef object or when creating a Recordset based on an SQL query.


This example uses the Orders table to calculate the total sales for orders shipped to the United Kingdom.

This example calls the EnumFields procedure, which you can find in the SELECT statement example.

Sub SumX() 

    Dim dbs As Database, rst As Recordset 

    ' Modify this line to include the path to Northwind 
    ' on your computer. 
    Set dbs = OpenDatabase("Northwind.mdb") 

    ' Calculate the total sales for orders shipped to 
    ' the United Kingdom.   
    Set rst = dbs.OpenRecordset("SELECT" _ 
        &; " Sum(UnitPrice*Quantity)" _ 
        &; " AS [Total UK Sales] FROM Orders" _ 
        &; " INNER JOIN [Order Details] ON" _ 
        &; " Orders.OrderID = [Order Details].OrderID" _ 
        &; " WHERE (ShipCountry = 'UK');") 

    ' Populate the Recordset. 

    ' Call EnumFields to print the contents of the  
    ' Recordset. Pass the Recordset object and desired 
    ' field width. 
    EnumFields rst, 15 


End Sub

Access for developers forum on MSDN
Access help on
Access help on
Search for specific Access error codes on Bing
Access forums on UtterAccess
Access wiki on UtterAcess
Access developer and VBA programming help center (FMS)
Access posts on StackOverflow

© 2018 Microsoft