Others

How to Calculate Monthly Subscription Totals and Balances in Access

John WilsonJohn Wilson Oct 28, 2026 868 views

Question details

The user needs to calculate monthly subscription amounts due, total payments, and the remaining balance to display on an editable Microsoft Access form.

How to Calculate Monthly Subscription Totals and Balances in Access
Product
Microsoft Access
Device & OS
not provided
Scenario
Creating an editable form in a database to track double-entry style accounts, specifically running totals for subscriptions due and payments made over time.
Observed behavior
Calculating these values using standard SQL subqueries often makes the form's record source non-updateable, preventing any new data entry or edits on the form.
Before you start

Ensure your tables have clear date fields for the start of the subscription and the dates of received payments before modifying your form's record source.

Solution 1Recommended

Use DSum for Editable Form Record Sources

Utilize domain aggregate functions like DSum instead of correlated subqueries so the Access form remains editable for users.

When you build a query with correlated subqueries to calculate running totals (such as subscriptions due minus payments), Microsoft Access often renders the resulting recordset read-only. To keep your form editable while still displaying dynamic balances, use the DSum function directly in the form's text box control sources.

1
Calculate Subscriptions Due

Create a text box on your form to calculate the total due. Use a formula multiplying the monthly rate by the elapsed months, which can be found using the DateDiff function between the subscription start date and the current date.

2
Calculate Total Payments using DSum

Create another text box for payments. Set its Control Source to use the DSum function, summing the payment amounts from your payments table where the payment date is less than or equal to the current record's date.

3
Calculate the Remaining Balance

Add a final text box to display the balance. Set its Control Source to subtract the DSum calculated in the previous step from your calculated total subscriptions due.

Use DSum for Editable Form Record Sources
Updateable Queries: Using DSum can sometimes perform slower on extremely large datasets compared to subqueries, but it is entirely necessary if you need the end-user to be able to add or edit records on the form directly.
Free Microsoft Office alternative

Track Subscriptions and Balances Easily with WPS Spreadsheet

Dealing with read-only recordsets and complex SQL subqueries in Microsoft Access can be frustrating. For many users and small businesses, managing subscription tracking, running balances, and double-entry accounts is much easier and more visual in a spreadsheet. WPS Office provides a lightweight, highly compatible, and free alternative to Microsoft Office, featuring a powerful Spreadsheet tool that perfectly handles date functions, SUMIFS, and running totals without locking your data.

  1. 1. Create a Tracking Ledger: Open WPS Spreadsheet and create columns for Start Date, Payment Date, Subscription Amount, and Payments Made.
  2. 2. Calculate Elapsed Months: Use the DATEDIF function to calculate the exact number of months between the Start Date and the current Payment Date.
  3. 3. Calculate Running Balances: Multiply the months by your monthly rate to get the Total Due, and use a simple subtraction formula referencing previous rows to maintain a running balance.
Supports complex formulas like SUMIFS and DATEDIF for calculating running balances seamlessly100% compatible with Microsoft Excel (.xlsx) formats for easy data migrationLightweight and fast installation compared to heavy relational database softwareFree to use with an intuitive, familiar tabbed interface
microsoft office alternative - wps office

Frequently Asked Questions

Why does my Access form become uneditable when I use subqueries?

When an Access query uses certain types of complex joins, totals, or correlated subqueries, the database engine cannot determine which base table records correspond to the fields being updated. As a protective measure, it makes the entire recordset read-only.

What is the DSum function in MS Access?

DSum is a domain aggregate function built into Microsoft Access that calculates the sum of a specific set of records (a domain). It is highly useful for calculating running totals directly on forms and reports without relying on complex SQL queries.

Can I calculate running balances in a regular query instead of a form?

Yes, you can use correlated subqueries to calculate a running balance in a standard Select Query. However, you should only use this method for reporting or viewing purposes, as you will not be able to edit the underlying data within that specific query.