我一直在用VBA代码解决这个问题,在关闭表单之前先检查该字段是否为空。如果该字段为空,我希望它显示是/否消息框。我遇到的问题是,在消息出现后单击No
(如果该字段为空白),它将继续关闭表单。相反,当我单击No
时,我希望焦点设置在需要解决的字段上。
这是我的代码:
Private Sub Close_Click()
If IsNull(cboTxtBx) Then
MsgBox("Do you want to continue?", vbYesNo, "X is Blank!")
If vbYes Then
DoCmd.Close
Else
cboTxtBx.SetFocus
End If
Else
DoCmd.Close
End If
End Sub
我也用IsNull()
替换了Len(cboTxtBx.value & "") = 0
,但仍然存在相同的问题。我也删除了最后一个DoCmd.Close
语句,但是一旦我按下No
,该表单仍然关闭。
我确定解决方案在我的代码序列之内,但是我对VBA并不熟练,我正在努力使此代码正常工作。
一个小音符,cboTxtBx
是一个组合框。不知道这是否以任何方式中断了代码。
回答消息框后,其结果将无处解释,因此代码将继续。
您必须像这样使用它才能真正检查消息框的结果:
If MsgBox("Do you want to continue?", vbYesNo, "X is Blank!") = vbYes Then
DoCmd.Close
Else
cboTxtBx.SetFocus
End If