Ну, как правило, в то время как многие платформы разделяют часть пользовательского интерфейса и часть кода? Что ж, Access - это совершенно другой подход - это стандартно справедливо размещать требуемый код внутри формы «класс» (все формы в Access являются «классом», и вы можете даже открыть несколько экземпляров той же формы). потом один раз).
Так, в общем, ваш код должен быть в модуле кода (класса) форм.
Однако вы могли бы и вызвать внешнюю подпрограмму.
Так что в форме , вы могли бы назвать вышеприведенную подпрограмму следующим образом:
Call MySetFocus(me, "NameOfControlToSetFocusTo")
И ваша подпрограмма будет выглядеть следующим образом:
Sub MySetFocus(f as form, sCtrl as string)
f(sCtrl).SetFocus
End Sub
Однако, как уже отмечалось, количество кода выше больше, чем кода просто в модуле кода формы происходит:
me.ControlName.SetFocus
Однако, хотя приведенный выше пример не является идеальным, передача формы "instance" (me) во внешнюю подпрограмму или функцию позволяет ссылаться на любое свойство или метод или функция, которая существует в форме во внешней подпрограмме.
Так что вместо
me("LastName") = "Zoo"
В приведенной выше подпрограмме вы могли бы и могли бы пойти;
f("LastName") = "Zoo"
Таким образом, в любом месте, где вы бы и могли использовать «я» в форме, вы можете использовать экземпляр формы, который вы передали из формы. Как уже отмечалось, рекомендуется использовать «я», поскольку, как я уже отметил, Access позволяет одновременно открывать несколько копий формы - и, следовательно, ваш код не может различить guish между какой экземпляр формы вы используете, если вы не передадите текущую форму "в контексте". Так как в JavaScript, используя «это»?
При доступе этот текущий экземпляр объекта класса - "я", и вы можете свободно передавать этот экземпляр любой подпрограмме или функции, как вы хотите, как указано выше.