If you have ever had to manage the visibility, the enabled or the locked properties of multiple controls on one or more forms, then you need to take a look at a demo database and the accompanying PDF document that I have posted on the Download page of my website at: http://www.askdoctoraccess.com/DownloadPage.aspx
Here are a few highlights about this technique:
Special Method for Managing Multiple Controls on a Form
I initially started out just using macros to manage these controls. Over the years I then started developing and using VBA code behind the object on my forms like the one described above to manage the various controls on my form. I just created individual lines of code that would make specific controls visible or not based on the button that was clicked. For example, if the Edit button was clicked, I would specifically reference each of the controls that needed to be made visible using one line of VBA code to make each control to make it visible.
Note to my experienced Access colleagues: I am now totally aware of how inefficient and ridiculously time consuming this type of programming was. But hey, we all have to learn and I submit that many of our friends that are new to VBA programming are doing this same kind of programming right now.
Writing VBA code like this was a very time consuming process because I then had to create this type of code had over and over again in the code behind each command button.
This was so time consuming and required such a huge amount of redundant code that I finally figured out that I could create a “user defined function” that would allow me to create the VBA code just one time and, by passing a value of “true” or “false” my function, would cause the referenced list of controls to be visible or not visible based on the value passed to my function.
Although the user defined function made the development of this type of user interface much easier to create and maintain, it still required that I add a single line of code to address each and every control for which I needed to manage various properties.
I recently came across a couple of posting on the Access forums about using the “Tag” property to identify controls that were to be managed in some way. I have now expanded on this concept and come up with what I know to be an even more simple way to use the “Tag” property of controls to accomplish the management of controls on my form. Using my method, I can not only provide all of the same functionality provided by the user defined function method that I have used previously, but I can actually provide even more capability and flexibility for managing the controls on my form. The best news of all is that I can now use one Public function that is defined in a module to manage the appropriate properties of multiple controls on any form I choose by passing the name of the form and a true or false value to the function when it is called.
Note: Previously I had rarely used the “Tag” property of forms and/or controls, and had never found a really significant usage for this property.
In this new method, the “Tag” property becomes an intricate part of the process.
Not only can you define your own values to be used for managing the various properties of the controls instead of using the ones I have suggested, but you could easily add new values that would allow you to manage other properties of the controls.
To download the “ManagingMultipleControls” zip file containing the demo database, the PDF document with the complete explanation of how to implement this technique, including the public function that does the heavy lifting, just visit my website at: http://www.askdoctoraccess.com/DownloadPage.aspx