使用 VBA 在 Access 上关闭表单之前检查字段是否为空或空白
Check if field is null or blank before closing form on Access using VBA
我一直在使用 VBA 代码来解决这个问题,以在关闭表单之前检查字段是否为空。如果该字段为空,我希望它显示一个 Yes/No 消息框。
我遇到的问题是,当我在消息出现后单击 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
我也用 Len(cboTxtBx.value & "") = 0
替换了 IsNull()
,但仍然有同样的问题。
我还删除了最后一个 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
我一直在使用 VBA 代码来解决这个问题,以在关闭表单之前检查字段是否为空。如果该字段为空,我希望它显示一个 Yes/No 消息框。
我遇到的问题是,当我在消息出现后单击 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
我也用 Len(cboTxtBx.value & "") = 0
替换了 IsNull()
,但仍然有同样的问题。
我还删除了最后一个 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