>>>>Update: the last sentence gave me the idea. I'm now doing this:
>>>>
replace (this.ControlSource) with this.Value
>>>>nodefault
>>>>thisform.de.CalculateIM()
>>>>And it works. Thanks to
Auntie Emma.
>>>
>>>this.value = this.value should have been sufficient. The question is: what do you do in that routine? May be you're doing some SELECT statements? If this is the case and you're working with the buffered data, your changes would not be seen until commited.
>>
>>This is a created cursor. No buffering, and yes I do select.
>
>Interesting. It sounds like your cursor is not getting updated. Can you investigate why?
It's not being updated at that moment - i.e. until the .InteractiveChange exits. However, since this is a checkbox, it doesn't lose focus (someone's smart decision at M$ or maybe even at Xerox, few geological eras ago), so .lostFocus still doesn't fire. So I'm trying to run some code when the checkbox has updated its controlsource. Didn't try valid, lostfocus doesn't fire until I click elsewhere, and .interactivechange is too early. So, I replaced the interactivechange base code with some manual code, and now it does it when I need it, not later.