У меня есть приложение Access с несколькими подчиненными формами, которые содержат разные типы данных, взятых из разных источников. У меня есть кнопка в верхней части главной формы, которая будет выполнять разные действия в зависимости от выбранной в данный момент подчиненной формы. Я пытался реорганизовать оператор Select, вызываемый этой кнопкой, чтобы не было много повторяющегося кода.
Старый код, который работает:
Dim frm as Access.Form
Select Case mainForm.tabLists.value
Case List1.PageIndex
set frm = subForm1.Form
subForm1.setFocus
Case List2.PageIndex
set frm = subForm2.Form
subForm2.setFocus
Case List3.PageIndex
set frm = subForm3.Form
subForm3.setFocus
End Select
Новый код, который выдает «RunTime error 2449, Недопустимый метод в выражении»:
Dim frm as Access.Form
Select Case mainForm.tabLists.value
Case List1.PageIndex
set frm = subForm1.Form
Case List2.PageIndex
set frm = subForm2.Form
Case List3.PageIndex
set frm = subForm3.Form
End Select
frm.setFocus
Отладка ошибки времени выполнения указывает на
frm.setFocus
но я не уверен, почему это не работает. Установка «frm» в качестве наблюдаемой переменной и пошаговое выполнение кода показывает, что он назначается правильно, а в старом коде «frm» используется в паре других операций после оператора Select без сбоев.