How to Calculate Monthly Subscription Totals and Balances in Access
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.

- 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.
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.
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.
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.
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.
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.

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. Create a Tracking Ledger: Open WPS Spreadsheet and create columns for Start Date, Payment Date, Subscription Amount, and Payments Made.
- 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. 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.

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.




