访问VBA - 比较两个变体会返回意外结果

时间:2014-10-24 15:17:11

标签: access-vba variant

我正在比较2个变体,看看是否有一个比另一个更大。简单的东西吧?但是VBA正在回归完全错误的结果。当我比较Variant1> Variant2时,即使变量1小于变体2,该语句也将返回true。

我无法帮助,但认为这与使用变量而不是双打有关,但遗憾的是,因为该值有时可以设置为Null。

Dim max As Variant
Dim val1 As Variant
Dim val2 As Variant

...
max = .Fields("Max") 'These values are pulled from a recordset where the field is a double
...
val1 = .Fields("Val1")
val2 = .Fields("Val2")
...
'val1 = .001
'val2 = .001
'max = .002
If (val1 > max) Or (val2 > max) Then
        outOfSpec = outOfSpec + Description + vbCrLf
End If

1 个答案:

答案 0 :(得分:0)

因为碰巧我将val1和val2设置为数据库中的Text。这是问题发生的地方,因为它是比较字符串和双精度。