Ошибка при вызове .setFocus в форме, хранящейся как переменная - PullRequest
0 голосов
/ 04 сентября 2018

У меня есть приложение 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 без сбоев.

1 Ответ

0 голосов
/ 04 сентября 2018

Вы можете сделать:

Dim sfrm As Subform

Select Case mainForm.tabLists.value
    Case List1.PageIndex
         Set sfrm = Me!subForm1
    Case List2.PageIndex
         Set sfrm = Me!subForm2
    Case List3.PageIndex
         Set sfrm = Me!subForm3
End Select

sfrm.SetFocus
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...