Login | Register   
Twitter
RSS Feed
Download our iPhone app
TODAY'S HEADLINES  |   ARTICLE ARCHIVE  |   FORUMS  |   TIP BANK
Browse DevX
Sign up for e-mail newsletters from DevX


Tip of the Day
Language: VB5,VB6
Expertise: beginner
Oct 17, 2001

Detect whether a field on a form has been edited

Many tip & trick collections report that you can learn if the contents of a text box has been modified by sending a EM_GETMODIFY message to the control. Actually, getting this information is much more simple. Just test the DataChange property: if non zero the field has been modified since the form was loaded.

You might believe that the DataChange property is only active when the text box is bound to a Data control. This is not true, though, so you can test, set and reset this property using simple Visual Basic statements. For instance, you can understand if the user modified any value on the form using this simple function:


Function RecordChanged(Optional reset As Boolean) As Boolean
    Dim ctrl As Control

    ' we need this because not all
    ' controls support DataChanged property
    On Error Resume Next

    For Each ctrl In Screen.ActiveForm.Controls
        RecordChanged = RecordChanged Or ctrl.DataChanged
        ' reset the DataChanged property if so requested
        If reset Then ctrl.DataChanged = False
    Next

End Function
You can optionally pass a True argument if you wish to reset to False the DataChange property for all the controls on the form. Note that this routine is also affected by check box controls and all those controls that expose the DataChanged property.
Francesco Balena
 
Comment and Contribute

 

 

 

 

 


(Maximum characters: 1200). You have 1200 characters left.

 

 

Sitemap