Обработчик Load
запускается один раз за время существования объекта.
Если вам нужно запустить его несколько раз, не используйте один и тот же объект повторно. DoCmd.OpenForm
работает с экземпляром формы по умолчанию , поэтому, если вы не выгружаете или иным образом не уничтожаете экземпляр, он остается загруженным, и в следующий раз, когда он отображается, он сохраняет то состояние, в котором он находился на момент последнего закрытия.
Если форма доступа поддерживает выгрузку (не знакома с Access и не может проверить ATM), то Unload MyForm
должен ее выгрузить, что вызовет событие Load
снова при следующей ссылке на форму.
Если вы можете New
создать форму и Show
, как вы могли бы с помощью UserForm
, сделайте это - формы являются объектами со своими собственными правами, и этот глобальный экземпляр по умолчанию скрывает object его природа ... сбой основных предположений (например, ожидается, что обработчик Load
будет запускаться каждый раз, когда отображается форма).
В качестве альтернативы, переместите код Load
вновый обработчик для события Open
, который будет вызываться всякий раз, когда форма открыта , а не просто загружена .