Я не работаю с ADP, но в MDB существуют различия между этими двумя синтаксисами для ссылки на элементы управления в форме:
Me.MyControl
Me!MyControl
Первая заставляет Access создать скрытое свойство, которое возвращает элемент управления. Результатом этого является проверка ссылок на элементы управления во время компиляции.
Второй использует коллекцию по умолчанию текущей формы и не обеспечивает проверку во время компиляции.
Я предполагаю, что VBA работает в ADP так же, как и в MDB, так почему бы не попробовать преобразовать неправильные ссылки на элементы управления в bang вместо точки? Это исключило бы проверку во время компиляции и могло бы позволить проекту компилироваться без необходимости его трудоемкой реконструкции.
Если это сработает, я думаю, что тогда я попытаюсь удалить элемент управления (чтобы удалить скрытое определение свойства) и добавить обратно элемент управления с новым именем, а затем сжать (не знаю, можно ли декомпилировать ADP, но если они могут, это также должно быть декомпилировано). Теоретически, это должно навсегда удалить проблемное определение скрытого свойства, и если это является причиной проблемы, вы сможете вернуться к оператору точки и получить обратную проверку во время компиляции.
Что бы это ни стоило, я видел слишком много проблем с коррупцией с оператором точки и всегда использовал взрыв во всех моих проектах. У меня все в порядке с отсутствием проверки контрольных ссылок во время компиляции.
И, о, кстати, с ударом вы теряете автоматический Intellisense (что в некоторых случаях является благословением, поскольку Intellisense может мешать вам в некоторых контекстах), но вы можете вызвать другой список Intellisense с помощью CTRL-SPACE. Этот список не ограничен типом элемента управления, но как только вы начнете печатать, вы получите обычное автозаполнение, которое приведет вас к соответствующему месту в списке.