我正在尝试验证从级联组合框(名为cboSite)中选择的站点是否与名为SLA的表中“10以内”列中的任何不同站点名称匹配。如果是这样我想要它计算一个函数我已经提出了代码。表达式的第一位被执行但是如果我选择一个不在SLA的10列内的站点,那么我的elseif语句不会被执行。
Private Sub txtRTF_Click()
If Not ISNull (DLookup("Within10", "SLA", "Within10 = '" & Me.cboSite.Value & " '")) Then
Me.txtRTF = DateAdd("h", 2, [Date Fault Lodged])
ElseIf Not ISNull (DLookup("10_50", "SLA", "10_50 = '" & Me.cboSite.Value & " ' ")) Then
Me.txtRTF = DateAdd("h", 4, [Date Fault Lodged])
ElseIf Not ISNull (DLookup("50_80", "SLA", "50_80 = '" & Me.cboSite.Value & " ' ")) Then
Me.txtRTF = DateAdd("h", 8, [Date Fault Lodged])
ElseIf Not ISNull (DLookup("80_100", "SLA", "80_100 = '" & Me.cboSite.Value & " ' ")) Then
Me.txtRTF = DateAdd("d", 2, [Date Fault Lodged])
ElseIf Not ISNull (DLookup("Over100", "SLA", "Over100 = '" & Me.cboSite.Value & " ' ")) Then
Me.txtRTF = DateAdd("d", 10, [Date Fault Lodged])
End If
End Sub
我想要实现的内容与在ms访问中创建登录访问时非常相似。当有人输入用户名和密码时,它会在表格中检查用户名和密码是否正确,然后允许使用表格等。
我不是要检查值是空还是空或不正确。我正在尝试验证所选值是否在Where10列中的表SLA中,如果这样执行Me.txtRTF = DateAdd("h", 2, [Date Fault Lodged])
,或者检查表SLA中的下一列。
答案 0 :(得分:1)
检查 Null :
Private Sub txtRTF_Click()
If Not IsNull(DLookup("Within10", "SLA", "Within10 = '" & Me.cboSite.Value & "'")) Then
Me.txtRTF = "Something"
End If
End Sub
你的:
DateDiff("hm", 0, 8, [Date Fault Lodged])
根本没有意义,所以请仔细阅读语法;不要猜测你想要做什么。
答案 1 :(得分:0)
无论您希望在txtRTF
中显示什么,当前type mismatch
错误都在IF
语句中:您正在检查Variant/String
,这不是布尔值。你想要的是检查查找结果是否为空:
If DLookup("[Within10]", "SLA", "[Within10] = '" & Me.cboSite.Value & "'") <> Empty Then
Me.txtRTF.Value = "..."
End If