Bill Benson
bensonforums at gmail.com
Sun Mar 23 18:04:58 CDT 2014
Re: Dirty, even if bound, a change would mean the user began to edit the form, not that they necessarily "made" a change. As for storing the control values, if all you care about is testing if ANY controls changed, I would put a tag in every control where this is a possibility and loop through all controls, test for this tag - then you won't have to worry about labels and controls with no value throwing off a runtime error. I would just store all values in a single string using a pipe separator, and check this again later. 'Warning air code!!! Option explicit Dim m_Initial_Control_Values as String Form_Load() For each ctrl in controls If ctrl.tag = "ValidateMe" then m_Initial_Control_Values = _ m_Initial_Control_Values &"|" & NZ(ctrl.value,"") &"|" End If Next '... End Sub Have a function named FormChanged Function FormChanged() as Boolean Dim strValidate as string For each ctrl in controls If ctrl.tag = "ValidateMe" then strValidate = _ strValidate &"|" & NZ(ctrl.value,"") &"|" End If Next FormChanged = (strValidate <> m_Initial_Control_Values) End function