June is so far into this that I hesitate to go over the same ground, and June is more capable than me for sure. But I do have a suggestion to shorten code that you might be able to make use of. Instead of 50-ish lines that set properties such as .visible, consider something like
Code:
dim ctl as control
For each ctl in me.controls
if ctl.type='acControlTypeGoesHere' AND ctl.tag="yourTag" then
ctl.visible = true or false as you wish
end if
next ctl
If you want to apply this to more than one type, it's probably easier to trap the error that is generated when you try to set a property on a control which does not have that property. In the error handler, you RESUME for that error number. I don't remember the number...