Oleg,
Your code would surpress the error but would not move focus where you want it to go because after the Valid returns .T. the LostFocus will set focus to the next control in the tab order.
The best solution is to realize that the purpose of the Valid event is to determine whether or not you will allow focus to leave the control and that is it. Deciding where to go only comes into play aftert you have decided to allow the user to leave. The LostFocus is the event that fires when the control will actually lose focus and that is where you should setfocus.