簡體   English   中英

運行時錯誤 3464 crietria 表達式不匹配

[英]run time error 3464 mismatch in crietria expression

我正在嘗試驗證從級聯組合框(名為 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 access 中創建登錄訪問時非常相似。 當有人輸入用戶名和密碼時,它會檢查表中的用戶名和密碼是否正確,然后允許使用表單等。

我不是要檢查該值是否為 Null 或為空或不正確。 我正在嘗試驗證所選值是否在列內 SLA 中的表 SLA 中,如果是這樣,請執行Me.txtRTF = DateAdd("h", 2, [Date Fault Lodged])或檢查表 SLA 中的下一列.

檢查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])

完全沒有意義,所以請仔細閱讀語法; 這不是猜測你想用這個做什么。

無論您想在txtRTF顯示txtRTF ,當前type mismatch錯誤都在IF語句中:您正在檢查Variant/String ,它不是布爾值。 你想要的是檢查查找的結果是否為空:

If DLookup("[Within10]", "SLA", "[Within10] = '" & Me.cboSite.Value & "'") <> Empty Then
    Me.txtRTF.Value = "..."
End If

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM