logo
search
Others

How to Fix Microsoft Access Form Not Saving Changes After On Change Event

Aamir Naveed AkramAamir Naveed Akram Sep 30, 2026 869 views

Question details

The user needs to resolve an issue where a Microsoft Access form fails to save modifications and remains in an unsaved state after an On Change event executes.

How to Fix Microsoft Access Form Not Saving Changes After On Change Event
Product
Microsoft Access
Device & OS
not provided
Scenario
A user edits a date field in a form bound to a complex query, which triggers an On Change macro or VBA procedure intended to update another table.
Observed behavior
The form record remains in an unsaved, dirty state (indicated by a pencil icon in the record selector) after the event procedure finishes.
Before you start

Ensure you identify exactly which tables your form query is bound to and open the form in Design View to safely review your macros and VBA code.

Solution 1Recommended

Save the Form Record Before the Macro Executes

Force the Access form to commit its current data before handing control over to the On Change procedure to prevent saving conflicts.

When a procedure updates related tables while the current form record is still being edited, Access may lock the record or leave it in a dirty state. Explicitly saving the record first prevents this conflict.

1
Open the form in Design View

Right-click your form in the navigation pane and select Design View.

2
Locate the On Change event

Select the date field that triggers the code, open the Property Sheet (F4), and go to the Event tab to find the On Change property.

3
Insert a save command

If using VBA, add 'DoCmd.RunCommand acCmdSaveRecord' at the very beginning of the procedure. If using Macros, insert a 'SaveRecord' action as the first step before it updates the other table.

4
Test the form

Switch back to Form View, change the date field, and verify that the pencil icon disappears and the record commits successfully.

Save the Form Record Before the Macro Executes
Monitor the Pencil Icon: The pencil icon in the record selector will automatically disappear once the record is successfully committed to the database.
Free Microsoft Office alternative

Looking for a Lightweight and Compatible Office Suite? Try WPS Office

While Microsoft Access handles complex relational databases, WPS Office provides a free, highly compatible alternative for all your document, spreadsheet, and presentation needs. It's lightweight, easy to use, and perfect for seamless productivity.

  1. 1. Download the installer: Visit the official WPS Office website and click the free download button.
  2. 2. Install the suite: Run the setup file and follow the simple on-screen instructions to install WPS Office on your computer.
  3. 3. Manage your data: Launch WPS Spreadsheet to easily open, analyze, and manage your exported database files and Excel documents.
Seamless compatibility with Microsoft Excel formats (.xlsx, .csv) for handling flat-file datasets and data processing.Fully compatible with Microsoft Word and PowerPoint formats ensuring a smooth migration.Lightweight application that runs smoothly on Windows, Mac, and Linux without bogging down your system.Free to use with a clean, tabbed interface familiar to Office users.
microsoft office alternative - wps office

Frequently Asked Questions

What does the pencil icon mean in a Microsoft Access form?

The pencil icon located in the record selector on the left side of an Access form indicates that the current record has been modified (is 'dirty') but has not yet been saved to the database.

Why does an On Change event prevent my form from saving?

If the On Change event triggers code that updates related tables or shifts focus without explicitly saving the main form first, Access may leave the current form record in an unsaved state to prevent data locking conflicts or partial updates.

Can a form bound to a complex query update records?

It depends on the query. If the query contains complex joins, calculated fields, or aggregate functions, the resulting recordset might become read-only, preventing the form from saving any changes to the underlying tables.