Revision: 45464
Updated Code
at May 1, 2011 03:01 by heislekw
Updated Code
If Me.Dirty Then RunCommand acCmdSaveRecord End If DoCmd.Close acForm, Me.Name Options: To force a record to be saved, you could use: #1. RunCommand acCmdSaveRecord #2. DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70 #3. Me.Refresh #4. Me.Dirty = False #1 fails if the form does not have focus. #2 (generated by wizard in Access 95 to 2003) has the same problem, and also fails with pop-up forms in some versions. #3 works, but older versions of Access do not generate a message if the save fails. #4 specifies which form, and gives an error message if the save fails. The message may not be clear (e.g. "The property could not be set"), and the approach does not work in Access 1 or 2, but it is the most reliable approach unless you are working with the ancient versions.
Revision: 45463
Initial Code
Initial URL
Initial Description
Initial Title
Initial Tags
Initial Language
at May 1, 2011 02:47 by heislekw
Initial Code
If Me.Dirty Then RunCommand acCmdSaveRecord End If DoCmd.Close
Initial URL
http://allenbrowne.com/ser-31.html
Initial Description
Performing a Close action on a form can cause you to lose edits without warning. The problem occurs if there is any reason why the record cannot be saved. e.g.: * a required field was left blank; * the record would create a duplicate in a unique index; * the form's Before Update event was canceled; * a Validation Rule was not met. Access simply discards your edits and closes the form without warning that the record was not saved. Develop the habit of explicitly saving whenever you do anything that requires the record to be saved, e.g. applying or removing a Filter or OrderBy property, changing a RecordSource, or moving to another record. You must explicitly save the record before executing a Close action. For example:
Initial Title
Close Without Record Save
Initial Tags
Initial Language
Visual Basic