在使用VBA关闭Access上的表单之前,检查字段是否为空或空白

问题描述 投票:0回答:1

我一直在用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是一个组合框。不知道这是否以任何方式中断了代码。

vba ms-access ms-access-2016
1个回答
0
投票

回答消息框后,其结果将无处解释,因此代码将继续。

您必须像这样使用它才能真正检查消息框的结果:

If MsgBox("Do you want to continue?", vbYesNo, "X is Blank!") = vbYes Then
    DoCmd.Close
Else
    cboTxtBx.SetFocus
End If
© www.soinside.com 2019 - 2024. All rights reserved.