I didn't know you were a politician, Uncle Gizmo!
Linq
;0)>
I'm getting Mellower with age!
I was a bit stuck when Colin challenge me, I thought, well, why not? I was always told not to do it, right from when I first started, so Colin had me wondering if it was one of those old wife tales things which propagate. When I thought about it properly, I realised it's not that you shouldn't call a Controls Code directly (See Note Below), it's that Code should be modular, therefore if you are calling Code which is within a controls event routine, then you're not structuring your VBA correctly.
There are other possible old wives tales:-
Function or Subroutine
I have often been criticised for using a function where a subroutine would suffice, however I find it more convenient to develop with functions. For some reason this practice upsets some people! I'm not too bothered about it because there are some glaring inconsistencies in MS Access, in that there are certain times you have to use a function. If you try to use a subroutine it won't work! You have to convert your subroutine into a function. To my mind, if MS Access forces you into a position where you have to convert a subroutine into a function, then I can't see any good reason why I should worry about using a Function.
Global Variables
This is another thing I've always been told:- Never use "Global Variables" - This can go wrong that can go wrong. Again it's something we all do! Is it an old wives tale? I suspect it's more akin to that there are better ways to do it, use a function, or a property, in other words, use a structure which gives you the ability to add error checking and handling of the variable. It's more like if you have a "Global Variable", consider changing it to something more robust. And the old wives tale is never use "Global Variables"!
Note:-
I was always told "bad things will happen" when calling a Controls event routine from somewhere else. - It is unsafe for some reason. However that does have the distinct possibility of being some sort of old wives tale. Not too sure. I wonder if it's a practice, a carryover from Pre MS Access developers. There must have been such people, probably VB6 programmers or other languages, and they brought their experience with them, which was applied (rightly or wrongly) to MS Access.