使用 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