问题描述
如果字符串表达式有效,我正在尝试使用Access将具有一列字符串的表转换为Currency。
我的输入
line data
--------------
8 Date
9 66.00
我的查询
SELECT line,CCur([data]) AS data
FROM Input;
line data
--------------
8 #Error
9 $66.00
我的理想输出是
line data
--------------
9 $66.00
我想过滤查询中的#Error。但是,当我使用标准字段(即> 0)时,会提示我数据类型不匹配。
我还尝试将IsError()
或IsNumeric()
与IIF配合使用来捕获错误。但是,它仍然在输出中显示#Error。
我在帖子中也发现Nz()
可以提供帮助。仍然,在我的情况下是同样的#Error。
解决方法
过滤IsNumeric
:
SELECT line,CCur([data]) AS data
FROM Input
WHERE IsNumeric([data])
请注意,这仍然会在内部引发错误,只是不会返回错误。在某些情况下(例如,使用VBA打开记录集时),这可能是个问题。我们可以避免使用IIF:
SELECT line,CCur(Iif(IsNumeric([data]),[data],0)) AS data
FROM Input
WHERE IsNumeric([data])