У меня есть база данных Access с огромным количеством форм (300+) и кода VBA. Бэкэнд этого db доступа находится в MS SQL.Открыть код активной формы VBA
Когда я нахожусь в элементе управления в форме (в форме вида), я хочу «перейти» непосредственно к коду VBA этой формы, не закрывая или не помещая форму в режим разработки. Я могу сделать это с помощью сочетания клавиш, которые я назначаю функции.
Это хорошо работает, когда элемент управления не находится в подчиненной форме. Но когда это так, в коде возникает ошибка, сообщающая мне, что модуль формы не найден.
Это код я использую:
Dim sFrmName As String
sFrmName = Screen.ActiveControl.Parent.Name
If Nz(sFrmName, "") = "" Then Exit Function
'Open forms module
DoCmd.OpenModule "Form_" & sFrmName
Как я могу изменить этот код так, что я не должен поставить форму в режиме конструктора, чтобы перейти к коду VBA этой формы, которая также будет работать для подформ? Я знаю, что могу сделать это вручную в VBE, но я хотел бы сделать это в VBA.
Всех форм в нашей базе данных Access имеют модули в форме, что я знаю точно. Функция выше работает отлично, когда activecontrol находится в mainform, но не тогда, когда она находится в подчиненной форме. Я получаю правильное имя (под) форму, но затем docmd.openmodule дает мне ошибку, что модуль не может быть найден. Когда я устанавливаю одну и ту же субформу как основную форму, просто для теста, тот же код выше работает без ошибок. У нас есть много подформ в использовании, и вышеприведенная функция может сэкономить нам много времени при разработке или устранении неполадок. – mkc