MS-Access VBA вызывает ошибку, когда me.myControl имеет фокус, и я пытаюсь установить
me.myControl.visible=false
Поэтому я использую Screen.ActiveControl, чтобы выяснить, имеет ли фокус myControl:
if me.myControl.name = Screen.ActiveControl.name then
me.otherControl.SetFocus
end if
me.myControl.visible=false
К сожалению, похоже, что каждая подчиненная форма может иметь свой собственный "ActiveControl". Я не нашел способ выяснить, какой это. Поэтому я должен сделать этот обходной путь:
on error goto setMyfocus
me.subform.Form!myCtrlInSubform.visible = false
exit function
setMyfocus:
me.subform.Form!otherCtrlInSubform.SetFocus
me.subform.Form!myCtrlInSubform.visible = false
exit function
Очевидно, что это не хорошее решение. Так есть ли способ выяснить, какой элемент управления в подчиненной форме имеет фокус, не вызывая ошибки?