[I'm still an Access neophyte, so feel free to treat me as such
I'm seeking advice on how to architect my in-progress, bound
form design containing a tabControl. Whichever page of the tabControl is active, the user will move through the Recordset and may make edits to some records and only view others. Via a single operation, they may wish to save all edits or undo all edits*. A bound form default behavior seems to be to save an update whenever an edited control loses focus. Because in my case dirty status must be determined at the Recordset level (controls-dirty is out of the question, seems to me, because the controls on a given tabPage are shared among all records), I'm finding several potential alternatives to handle Undo, such as:
- an in-code temp array to compare against the recordset for changes
- use of clone recordset for comparisons
- a TRANSACTION
Have I discovered all the relevant alternatives?
Any suggestions as to the pitfalls and merits of each of these?
* Additionally, I may implement a per record save if such would not conflict with the batch save/undo; this is not yet in the spec and I consider it optional at this time.