Поменяйте событие Open на Load или Me.Refresh запустите.
К сожалению эти уловки не привели к желаемому результату. Если на самом деле к моменту выполнения запроса среда еще полностью не сформарована, то скорее всего поможет создание новой формы (в виде заставки), выполнения ее в течении нескольких секунд (чтобы экран не дергался). Вот можно такой вариант попробовать.
Чаще всего такие запросы делаются в VBA, а далее правильный запрос (строка SQL, без глобальных параметров и переменных) подставляется в форму, тогда будет все работать.
Этот запрос использует другой запрос с переменными и по правде говоря я не знаю как это реализовать иначе чем я сделал.
Тогда надо писать все на родном языке Access (английский) функции, запросы и т.п. Иногда такие задачи решаются легче через ADO.