使用“允许添加”属性时无法设置焦点

时间:2018-01-06 02:12:21

标签: vba ms-access

我已经使用名为Task Tracker的MS Access构建了一个数据库。我把我的主表单设置为splitform。我试图强制用户使用我创建的“添加新记录”按钮,而不是点击splitform数据表中的*行。为此,我将属性“Allow Additions”设置为No,这显然阻止我使用此表单创建新记录。

为了解决这个问题,我尝试使用由“添加新记录”按钮触发的VBA将“允许添加”属性设置为“是”,创建新记录,然后再将其设置为“否”。唯一的问题是:在设置表单以允许添加后,将焦点设置到表单上的控件的一行代码会生成错误“任务跟踪器无法将焦点移动到控件所有者”。这是在我将“Allow Additions”属性设置为false之前。

如果我不包含Allow Additions行,则没有错误。

我移动了一些代码,现在将焦点设置在完全不同的控件上会产生问题,因此它不是特定于控件的。

这两件事情如何相关?

以下是本节中的代码:

Public Sub NewTaskSetup()
On Error GoTo NewTask_btn_Click_Err
    Me.AllowAdditions = True
    Me.Owner.SetFocus
    DoCmd.GoToRecord , "", acNewRec
    Me.TaskName = TempVars!newTaskName
    Me.Assignees.SetFocus
    For i = 0 To Me.Assignees.ListCount - 1

其余的代码在这里无关紧要。在此配置中,生成错误的控件是Me.Assignees。

有关详细信息:“新建记录”按钮将打开“模态对话框”表单,提示用户输入任务名称。单击此窗体上的“确定”将关闭模式对话框,然后调用NewTaskSetup()函数(上图)。

感谢您抽出宝贵时间考虑我的困境。

更新

我更改了代码,以便在打开模式窗体之前发生以下代码。我仍然在Me.Assignees.SetFocus线上出现“无法移动焦点”错误:

Private Sub NewTask_btn_Click()
On Error GoTo NewTask_btn_Click_Err

    Me.AllowAdditions = True
    DoCmd.GoToRecord , , acNewRec
    Me.Owner = TempVars!userIdNum
    Me.Assignees.SetFocus
    For i = 0 To Me.Assignees.ListCount - 1

在设置焦点时,记录已经有一个自动编号ID并已保存。我不明白是什么阻止了焦点的设定。

0 个答案:

没有答案