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
不幸的是,似乎每个子窗体都可以有自己的"主动控制"。我没有找到一种方法来弄清楚它是哪一个。所以我必须做这个解决方法:
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
显然这不是一个好的解决方案。那么有没有办法在不引发错误的情况下确定子窗体中的哪个控件具有焦点?
试试:
' It's my main form:
If Screen.ActiveForm.Name = "YourFormName" Then
' And it's my subform:
If Forms!YourFormName.ActiveControl.Name = "subform" Then
' And it's my control in subform:
If Screen.ActiveControl.Name = "myCtrlInSubform" Then
Me.subform.Form!otherCtrlInSubform.SetFocus
Me.subform.Form!myCtrlInSubform.Visible = False
End If
End If
End If