如何确定哪个子窗体具有焦点

时间:2014-08-26 16:54:53

标签: vba indexing focus

我有一个包含多个子表单的表单。在其中一个子表单中,如果您单击另一个子表单,我需要运行更新查询(您已完成控件,如果有任何更改,则必须更新)。这部分效果很好。我遇到的麻烦是,每次点击任何子表单时,我都不想通过运行更新(它是一个更新查询循环)来阻止所有内容。

如果您使用的是非常特定的子窗体(PageIndex 2),那么它应该运行更新。下面是我必须确定哪个标签/页面/子表单的代码。 PlanSpecs是Page的名称。

问题在于,无论我目前在哪个标签上,如果总是说'#34;我在那个子表单上。"知道为什么会这样,或者我可以做什么的任何建议呢?

If (Me.PlanSpecs.PageIndex = 2) Then
    MsgBox ("I'm on that subform")
Else
    MsgBox ("Different Subform, move along")
End If

1 个答案:

答案 0 :(得分:0)

我认为您不能通过该索引引用它们,除非它们位于制表符控件中,否则您将拥有PageIndex属性。

你可以这样做,

If (Screen.ActiveControl.Parent.Name = "SubFormNameHere") Then
    MsgBox ("I'm on that subform")
Else
    MsgBox ("Different Subform, move along")
End If

但是这段代码可能需要额外的条件,例如,如果你向该子表单添加一个制表符控件,那么它将返回TabControl的名称,而不是父表单(表单)。

additional reference