devxlogo

Use DataChanged with unbound controls

Use DataChanged with unbound controls

When you need to learn if a field has been changed by the user, you have at least three options:

  1. you can use a global boolean variable and set it in the control’s Change event, or
  2. you can save the original value in global variable to compare it against the current value
  3. you can use the EM_GETMODIFY message with the SendMessage API functions (only for textboxes)
There is a fourth solution that is not known to all VB programmers, and that at the same time is the simplest of them all. Differently from what the VB documentation states, the DataChanged property is perfectly functional even with unbound controls. When a form is loaded, this property is set to False, and then it is automatically set to True when the program or the user modifies the control’s contents.

This means that you can spot which fields have been modified even if you are using DAO methods without a Data Control, and even if you are not using DAO or the Jet Engine at all. Remember however that it’s up to you to reset the property value to False when you show a new set of values.

See also  Professionalism Starts in Your Inbox: Keys to Presenting Your Best Self in Email
devxblackblue

About Our Editorial Process

At DevX, we’re dedicated to tech entrepreneurship. Our team closely follows industry shifts, new products, AI breakthroughs, technology trends, and funding announcements. Articles undergo thorough editing to ensure accuracy and clarity, reflecting DevX’s style and supporting entrepreneurs in the tech sphere.

See our full editorial policy.

About Our Journalist