gpt4 book ai didi

SQL 查询在查询中返回数据类型不匹配 - 为什么?

转载 作者:行者123 更新时间:2023-12-04 02:52:36 25 4
gpt4 key购买 nike

我这里有一个非常简单的 SQL 查询 - 重点是查看发票说明并标记发票(如果它不是有效状态)。以下是我的代码和函数:

查询:

CurrentDb.Execute "UPDATE Processing " & _
"SET [Invoice Flag] = True " & _
"WHERE isValidState(getState([Inv Description])) = False"

getState From Invoice Description 拆分发票描述字符串

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 如果状态有效则返回 bool 值

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 语句,它应该简单地返回 bool 值并标记发票。

最佳答案

如果 [Inv Description] 可以是 Null 那么你不能将你的函数声明为

Public Function getState(description As String) As String

你需要声明为

Public Function getState(description As Variant) As String

然后使用类似的方法处理 Null 情况

If IsNull(description) Then
getState = "" ' or whatever
Else
' remaining code as before

关于SQL 查询在查询中返回数据类型不匹配 - 为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17348701/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com