[AccessD] Unbound Form Check For Changes

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



More information about the AccessD mailing list