Don,
>When is a control Value written to the ControlSource?
This happens during the BaseClass behavior that handles the Valid event.
>Is there a simple way to force it to do it?
As Sylvain showed, calling the SetFocus() causes the Valid event to fire which commits the control value to the ControlSource. As you found calling the Valid() method does not trigger the actual Valid event.