The question can be put this way: What's the best way to set the control source of a list box?
The best question to ask next: Do I want the control source declared with a static method or a dynamic method?
Static would be what your VBA wizard generates for a new list box. Static is simple, and simple is best unless your needs say otherwise. The usual needs are (as birger said) solving a problem with a slow-loading form OR sophisticated forms automation.
If you are using a dynamic method then you are using VBA. If the need you are addressing is speed, you can set your control source when the form loads. If the need is automation, you may or may not take action when the form loads and you will be using triggers like AfterUpdate or command button selections.