>Basically, what you can't do in the Form.Init() is opening tables, if those are required for some of the form objects (through the objects' ControlSource or RecordSource). Since the objects instantiate before the form does, Form.Init() is too late, so you have to open the tables in Form.Load(), or in the form's DataEnvironment.
If you set .bindcontrols=.f. at design time, this is no longer an issue, you can open your aliases in form.init(), and then set .bindcontrols=.t. and then they will bind.
However, that's a one-time thing, i.e. the controls won't unbind if you set form.bindcontrols=.f. again, or if you add a control at runtime and try to give it delayed binding.