在我的表单中,我有一个“拒绝/接受合同”复选框字段,如果选中此字段,则需要下一个字段(长文本)“拒绝原因”。仅在选择“是”时才需要此字段。我在两个字段的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"
但这只是给了我验证消息,无论点击了哪个字段。它实际上并没有验证拒绝/接受原因中的“是”。
感谢您提供的任何帮助。谢谢。
答案 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