UndoStack-davegri-v01.zip
I couldn't find this Access functionality addressed anywhere on the internet, so I decided to try it myself. Here's the result.
PROBLEM:
Access built-in Undo will undo the entire form at one click, or force you to manually set the focus to each target control one by one to undo.
Access also does not provide undo methods or events at all for checkboxs, radio buttons or option groups.
SOLUTION:
The attached DB has a form with an undo button that will back out changes to form controls in LIFO order.
The undo stack is simulated by an Access global Collection that holds the change data. Each edit change to form data is "Pushed" onto the stack. Clicking the UNDO button will reverse ("Pop") the last made change, continuing with each button click until no changes remain to be reversed. A counter field on the form displays the number of changes remaining in the stack. Once changes are committed to the table, undo is unavailable.
The code is for a main form only. Subforms are not addressed.
The below form shows that 7 unsaved changes have been made that can be backed out. As each is backed out, the count decreases by one until at zero, the Undo button is grayed out.