我在這裏有一個非常簡單的SQL查詢 - 重點是查看發票說明並標記發票,如果它不是有效的狀態。下面是我的代碼和功能:SQL查詢返回查詢中的數據類型不匹配 - 爲什麼?
查詢:
CurrentDb.Execute "UPDATE Processing " & _
"SET [Invoice Flag] = True " & _
"WHERE isValidState(getState([Inv Description])) = False"
的getState從發票說明分裂發票的描述字符串
Public Function getState(description As String) As String
Dim s() As String
s = Split(description, ".")
If (UBound(s) > 1) Then
getState = s(UBound(s) - 1)
Else
getState = " "
End If
End Function
IsValidState。如果一個有效的狀態返回布爾或不
Public Function isValidState(st As String) As Boolean
Dim db As Database
Dim rs As Recordset
Set db = CurrentDb
Set rs = db.OpenRecordset("tblStates", dbOpenSnapshot)
rs.FindFirst ("StateCode = '" & st & "'")
If rs.NoMatch Then
isValidState = False
Else
isValidState = True
End If
rs.Close
End Function
任何線索或幫助表示讚賞。我發現這個錯誤在日期中發生了很多,但這裏並不是這種情況。數據記錄可能有一些行是空的 - 所以這可能與它有關?無論哪種方式,我都無法對這些空洞的描述做任何事情 - 我也不知道應該如何起作用。由於存在IF/ELSE語句,它應該簡單地返回布爾值並標記發票。
太棒了!謝謝!工作出色。 – user2296381