可以从控件中删除焦点以在VBA中修改其属性吗?

Cur*_*che 2 arrays data-binding ms-access access-vba

首先,我通过这样做删除控件可见性:

For Each ctl In Me.MySubform.Controls
    ctl.Visible = False
Next ctl
Run Code Online (Sandbox Code Playgroud)

然后,我返回并使用标题和控件源名称数组绑定我将用于当前字段列表的控件.

For i = 0 To UBound(MyArray) Step 2
    Me.MySubform.Controls(i).ControlSource = MyArray(i)
    Me.MySubform.Controls(i + 1).Caption = MyArray(i + 1)
    Me.MySubform.Controls(i).Visible = True
    Me.MySubform.Controls(i + 1).Visible = True
Next i
Run Code Online (Sandbox Code Playgroud)

我遇到的问题是,如果用户点击其中一个字段为其提供焦点,我似乎将控件visible属性设置为false或在下一个刷新事件期间将字段重新绑定到另一个字段.

我认为通过删除控件焦点,我将能够实现这一点; 但是,我有两个问题.

  1. 这在VBA(MS Access 2003)中是否可行?如果是这样的话?
  2. 在这种环境中有没有更好的理想方法来实现这一目标?如果是这样,可以选择哪些选项以及选择解决方案需要考虑哪些因素?

谢谢,

Fio*_*ala 5

您无法更改具有焦点的控件的visible属性.这是问题吗?如果是这样,保持一个小控件以使用SetFocus获得焦点可能很有用:http://msdn.microsoft.com/en-us/library/aa205181( office.10).aspx