I think the reason you're having this problem is because frmMain isn't completely closing. Your sub (SympDur_DblClick) is still active during this whole process, since it's the calling routine. You may be closing the Form, but the Form isn't able to completely Unload because it still has code to run in the background.

Instead of setting the default vlaue in your table, could you assign a default value to the form's control? This would cause the desired value to be written to the table when the record changes are saved, or when the user moves to another record.

HTH