我試圖驗證從級聯組合框(名爲cboSite)中選擇的站點是否與名爲SLA的表中的「10內」列中的各種站點名稱匹配。如果是這樣,我想要它來計算一個函數,我已經拿出了代碼。表達式的第一位被執行,但是如果我選擇一個不在SLA中的10列以內的站點,那麼我的elseif語句不會被執行。運行時錯誤3464在crietria表達式中不匹配
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訪問中創建登錄訪問時非常相似。當有人輸入用戶名和密碼它會檢查表中,看看用戶名和密碼是否正確,然後允許使用表格等。
我不想檢查值是空還是空或不正確。我試圖驗證所選的值是否在列10內的表SLA中,如果這樣執行Me.txtRTF = DateAdd("h", 2, [Date Fault Lodged])
或者檢查表SLA中的下一列。
你能把「'」改成「'」嗎?例如沒有空間。 – Vityata
由於'''''',如果'Me.cboSite.Value'的值是''''''''''''''''在'10'=&'&Me.cboSite.Value& 「foo」,它會變成「foo」。我想你應該刪除這裏的空格(''''') –
另外,你的'DateDiff(「hm」,0,8,[Date Fault Lodged])對我來說似乎不是一個有效的語法。我對'access-vba'不太瞭解,只用'excel-vba',所以我可能在這裏錯了,但我認爲你不能使用''hm''作爲間隔,加上'[Date Fault Lodged]似乎不是一個有效的論點。 –