>>>That is...weird.
>>>If you need to update some properties in some form then pass it as parameter to the routine.
>>>You can't relay on the current form (maybe only if you have SDI).
>>
>>Current form may just not exist... or it may change on a whim, because of some event somewhere firing (timers, menu skipfor evaluation, anything).
>>
>>In this case, if reference to it was really necessary, I'd just store a reference to the form, and then get any references to controls from it... something like
>>
>>
loFrm=_screen.activeform
>>loCtl=getpem(loFrm, "controlname")
>>
>>The actual code would be at least five times longer, to include all the checks - that loFrm really is a form, that loCtl does exist, etc etc. Then these references would have to be stored into properties of the current form or some other object, and then I'd use these references as controlsources... which would still be bizarre and as flimsy as a house of credit cards.
>
>Switching from _screen.activeform to thisform seems to resolve the problem nicely for that particular block of code.
Of course, but that datum was unknown at the beginning, and I just ignored it temporarily for the sake of this mental exercise. It should be just a bit less stable than leaning on a unicycle.