У меня есть форма с двумя подчиненными формами (на отдельных вкладках). Это проект MDB в Access
2003
Когда он первоначально открывается, Form_Current в активной подчиненной форме запускается один раз, как
это должно.
Но когда вы переходите к другой записи (т.е. из основной формы), она срабатывает
Form_Current на активную подчиненную форму 4 раза. Затем последующие записи-ходы
результат в Form_Current стрельбе 2 раза. Это боль, потому что подчиненные
есть много полей, которые перемещаются и / или скрыты, поэтому он прыгает вокруг
каждый Form_Current, не говоря уже о том, что он медленный.
Я открываю форму с фильтром через DoCmd.OpenForm (на самом деле он отправляет
фильтр через OpenArgs). FilterOn устанавливается только один раз, в Form_Open на
Основная форма, никогда не в подчиненных. Form_Current не вызывается явно
где-нибудь еще в коде.
Когда я смотрю на стек вызовов, когда Form_Current запускает движение в первый раз,
это выглядит так:
my_subform.Form_Current
[<Debug Window>]
my_subform.Form_Current
Так что кажется, что что-то в Form_Current вызывает другое
Событие Form_Current. Но только на первом ходу записи.
Код в Form_Current несколько сложен, включает в себя пользовательские классы и
обратные вызовы событий, но, как правило, не затрагивают данные таблицы. Единственное, что я
может думать, что может запускать Form_Current в том, что он проверяет OldValue на
элементы управления формой - это может быть причиной?
Или что-нибудь еще приходит на ум?
Спасибо.
Эрик