【发布时间】:2011-10-12 13:49:35
【问题描述】:
我正在 VBA 中准备一个函数来创建一个查询来搜索数据库。其中一个参数“Value”可以是字符串(例如:“ON”)或数字(例如:123),如果是字符串,我必须选择与其不同的值(例如:“OFF”)和如果是数字,我必须选择大于它的值(例如:234)。
我准备了下面总结的函数,将值传递给比较“valueParam”作为变体,然后尝试检测“valueParam”是字符串还是整数。问题是函数 VarType 每次都将“valueParam”视为字符串。
Function prepareQuery(ByVal valueParam As Variant) as String
Dim STR_Query as String
STR_Query = "Select * FROM tablename"
If VarType(valueParam) = vbInteger Then
STR_Query = STR_Query & " WHERE Value>" & valueParam
ElseIf VarType(valueParam) = vbString Then
STR_Query = STR_Query & " WHERE Value<>'" & valueParam & "'"
End If
prepareQuery = STR_Query
End Function
有没有人知道为什么 VarType 不能识别 Integer 或者有其他想法来区分数字和字符串?
非常感谢
【问题讨论】: