我在这里有一个非常简单的 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 语句,它应该简单地返回布尔值并标记发票。