Why Access Control Source Expressions Are Not Saved to a Table
Question details
The user needs to understand why calculated expressions in form controls do not automatically save to the database table and how to properly store these values.

- Product
- Microsoft Access
- Device & OS
- not provided
- Scenario
- Designing a form where specific field values are calculated using expressions, and these results need to be referenced or recorded in the underlying database.
- Observed behavior
- Calculated expressions display correctly on the user interface form but are not being saved to the connected table records.
Before attempting to force calculated data into a table, evaluate whether storing the value is absolutely necessary. Database best practices strongly recommend recalculating dependent values on the fly rather than storing them, to prevent data inconsistency.
Calculate Values Dynamically Using Queries
The most efficient and standard way to handle calculated values is to compute them dynamically when needed, rather than storing them in a table.
In a relational database, storing calculated data violates normalization principles because updating the base fields would cause the stored calculation to become inaccurate. Instead, use queries to display the calculations.
Open your database, navigate to the Create tab on the ribbon, and click on Query Design.
Select and add the relevant tables that contain the raw data fields you need for your calculation.
In a blank column of the query design grid, type your expression in the top row. For example, to calculate total cost, type: TotalCost: [Price]*[Quantity].
Save the query. You can now use this query as the Record Source for any forms or reports, and the calculation will always remain accurate and up to date.

Use VBA or Macros to Save Historical Static Values
Use this method if the calculated value must represent an unchanging historical record, such as the price of an item at the exact time of a past sale.
Looking for a Free Alternative for Your Everyday Office Needs?
While Microsoft Access is a powerful relational database tool, many everyday data management, calculation, and reporting tasks can be handled far more easily with a lightweight spreadsheet solution. WPS Office provides an incredibly user-friendly suite equipped with advanced spreadsheet capabilities, offering a familiar interface without the steep learning curve or high subscription costs.
- 1. Download the Software: Visit the official WPS Office website to download the free, lightweight installation package.
- 2. Install and Open: Run the installer. Once installed, launch WPS Spreadsheet to begin managing your data.
- 3. Create or Import Data: Open your existing Excel files seamlessly, or create new tracking sheets using intuitive formulas that automatically recalculate and save your data instantly.

Frequently Asked Questions
Why do my form controls show a #Name? error when calculating?
This usually happens if the control's Name property is the exact same as the field name used in the calculation's expression, creating an infinite circular reference. Rename the control to something distinct from the bound field (e.g., rename 'Total' to 'txtTotal').
Can I set a default value in a table from another form's control?
Yes, you can set the Default Value property of a text box to reference another currently open form using the syntax =Forms!FormName!ControlName. This automatically populates the field for new records, which then gets saved to the table.
How do I make a calculated field directly in an Access table?
In newer versions of Access, you can create a 'Calculated' data type directly in the table design view. However, this feature is limited to simple math and string operations within the same table, and cannot reference fields in other tables.




