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