You can do what you want to do, but the phylosophy of your form design makes
your work harder and will be frustrating for users to use. It really is
better to just allow the form to open to the first record in the form's
recordset as it normally does. The add, find, delete, and undo buttons are
all very useful, but a save button to work as you want it to takes more
coding than perhaps you are aware of.
Any time you move to a different record or close the form, the current
record is automatically saved. This really makes it easier for the user. To
ensure the user has entered valid data, the normal approach is to use the
form's Before Update event to validate all the entried in the control and if
incorrect entried are detected, notify the user with a message box and cancel
the update.
So, the short of it is, I would advise you to rethink your form design.
But, to answer your question, you can use the Form's Allow Edits property to
control whether any editing will be allowed. You do that with:
Me.AllowEdits = True (or False)
Depending, of course on the pressing of a button or some other action. The
controlling of the save button is the hard part. To save the record, you can
use:
If Me.Dirty = True Then
Me.Dirty = False
End If
The problem here is that if you use that and you cancel the form before
update event, it will throw an error. Also, you have to code for a user
moving to a different record or closing the form without first clicking your
save button. That is a tricky bit of work.