在MS Access中使用CCur时如何处理错误“ #Error”

问题描述

如果字符串表达式有效,我正在尝试使用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])