Data related code should go in form load event IMO. I wouldn't be surprised that if on form opening, the query manages to retrieve 2 or so records before hitting the stop line. Code branching can cause certain events to repeat (e.g. because of Requery) or even get cancelled. You might want to try stepping through the code right at the form open event and watch the sequence of events. Or create a db copy, compact/repair and zip it and post it here so we can watch the sequence.
The more we hear silence, the more we begin to think about our value in this universe.
Paraphrase of Professor Brian Cox.