如果在“访问表单”中选中“是”复选框,请设置所需的说明字段

时间:2017-07-27 17:00:52

标签: ms-access access-vba

在我的表单中,我有一个“拒绝/接受合同”复选框字段,如果选中此字段,则需要下一个字段(长文本)“拒绝原因”。仅在选择“是”时才需要此字段。我在两个字段的Before / AfterUpdate属性中尝试了以下变体,但似乎没有任何效果。

If Me.Decline_Accept_Contract = "Yes" And IsNull(Me.Decline_Reason) Then MsgBox "Decline reason is required." Cancel = True Me.Decline_Reason.SetFocus End If

我还尝试在表属性中设置验证规则 [Decline/Accept Reason]="Yes"但这只是给了我验证消息,无论点击了哪个字段。它实际上并没有验证拒绝/接受原因中的“是”。

感谢您提供的任何帮助。谢谢。

2 个答案:

答案 0 :(得分:0)

复选框的默认值为True或False,而不是字符串值"是"。此外,如果已输入和删除文本,则文本框将为空字符串。最好检查这两种情况......

If Me.Decline_Accept_Contract And len(trim(Me.Decline_Reason.Value & vbnullstring))=0 Then
    MsgBox "Decline reason is required."
    Cancel = True
    Me.Decline_Reason.SetFocus
End If

答案 1 :(得分:0)

文本框在空时应为 Null ,因此:

If Me!Decline_Accept_Contract.Value = True And IsNull(Me!Decline_Reason.Value) Then
    MsgBox "Decline reason is required."
    Cancel = True
    Me!Decline_Reason.SetFocus
End If

或者您可以使用 Nz

If Me!Decline_Accept_Contract.Value = True And Nz(Me!Decline_Reason.Value) = "" Then
    MsgBox "Decline reason is required."
    Cancel = True
    Me!Decline_Reason.SetFocus
End If