MS Access错误'2110'无法将焦点移动到控件

时间:2017-02-21 16:13:16

标签: ms-access

我是使用MS Access 2016的初学者。 我在表单上有一个保存按钮,它执行最后一分钟的输入验证,这对于最终用户来说是非常直接和有用的。当我们点击保存按钮时,我正在使用一系列文本框来逐步完成验证,这样他们就可以完成整个表单,如果出现错误,则会直接将错误带到该字段。

我的代码似乎有效, 它检测到错误, 将焦点设置为text179, 看到JobNo字段中有错误, 给出一条消息“请输入一个5位数的工号”和 将焦点设置为JobNo。 然后,只有这样,我得到第二个提示,说有错误。 但是为什么它说它不能把重点放在text179上,当它显然已经这样做了,而且应该不再尝试那个时候了?

这是我的代码: Private Sub SaveRecord_GotFocus() If Me.JobNo & "" Like "#####" And Me.ItemNo & "" <> "" Then Exit Sub Else Me.Text179.SetFocus End If End Sub Private Sub Text179_GotFocus() If Me.JobNo & "" Like "#####" Then Me.Text181.SetFocus Exit Sub Else MsgBox "Please enter a 5 digit Job Number", vbOKOnly Cancel = True Me.JobNo.SetFocus Exit Sub End If End Sub

错误: 运行时错误'2110': Microsoft Access无法将焦点移动到控件Text179。

如果需要任何其他信息,请与我们联系。

1 个答案:

答案 0 :(得分:0)

我能够使用更简洁的方法解决这个问题,只使用VB代码而不尝试使用setfocus。我花了一些时间来弄清楚如何正确地嵌套我的if语句,因为我是Access / VB的新手。我将在下面发布代码。

Private Sub SaveRecord_GotFocus() If Me.JobNo & "" Like "#####" Then GoTo Eval_ItemNo Else MsgBox "Please enter a 5 digit Job Number", vbOKOnly Me.JobNo.SetFocus Exit Sub End If Eval_ItemNo: If Me.ItemNo & "" <> "" Then GoTo Eval_QtyFinished Else MsgBox "Please enter an Item Number", vbOKOnly Me.ItemNo.SetFocus Exit Sub End If Eval_QtyFinished: If Me.QtyFinished & "" <> "" Then GoTo Eval_WorkCenter Else MsgBox "Please enter a Qty Finished", vbOKOnly Me.QtyFinished.SetFocus Exit Sub End If Eval_WorkCenter: If Me.WorkCenter & "" <> "" Then Exit Sub Else MsgBox "Please enter a WorkCenter", vbOKOnly Me.WorkCenter.SetFocus End If End Sub