Access 2010:如何将错误值转换为 null 或空白?
Access 2010: How to convert erroneous value to null or blank?
我正在使用设计视图在 Access 2010 中执行一个简单的 select 查询。我的源文件是一个 excel 工作表,我已将其链接到 Access 中的 table。我可以查看源代码,但无法以任何方式修改它。
源文件中的一列可能有以下错误:“#NAME?”
当我看到错误时,我只想将值作为空字符串“”读取,但当没有错误时,我只想要值。我研究了使用 Nz、IIF、Switch 和 IsError 的不同变体,但尚未取得任何成功。
我正在设计视图的 "Field" 参数中尝试以下代码。
Program_Temp: IIf(IsError([Program]), "", [Program])
这失败了,因为 IIf 计算了 "truepart" 和 "falsepart",所以即使错误被正确检测到,函数也会出错,因为“[Program]”仍然被计算。
有办法实现吗?
Excel 会将值作为字符串传递给访问。
现在你只需要使用空字符串替换错误。
Replace ( string1, find, replacement, [start, [count, [compare]]] )
Replace ( Program_Temp, "#NAME?", "" )
或
Replace ( Program_Temp, "#NAME?", vbnull )
另外,我会提出与@serakfalcon 相同的建议。导入 table,而不是 link,当需要新信息时,删除数据并导入新数据。这样做的一个很好的副作用是错误将被 null 替换。
我正在使用设计视图在 Access 2010 中执行一个简单的 select 查询。我的源文件是一个 excel 工作表,我已将其链接到 Access 中的 table。我可以查看源代码,但无法以任何方式修改它。
源文件中的一列可能有以下错误:“#NAME?”
当我看到错误时,我只想将值作为空字符串“”读取,但当没有错误时,我只想要值。我研究了使用 Nz、IIF、Switch 和 IsError 的不同变体,但尚未取得任何成功。
我正在设计视图的 "Field" 参数中尝试以下代码。
Program_Temp: IIf(IsError([Program]), "", [Program])
这失败了,因为 IIf 计算了 "truepart" 和 "falsepart",所以即使错误被正确检测到,函数也会出错,因为“[Program]”仍然被计算。
有办法实现吗?
Excel 会将值作为字符串传递给访问。 现在你只需要使用空字符串替换错误。
Replace ( string1, find, replacement, [start, [count, [compare]]] )
Replace ( Program_Temp, "#NAME?", "" )
或
Replace ( Program_Temp, "#NAME?", vbnull )
另外,我会提出与@serakfalcon 相同的建议。导入 table,而不是 link,当需要新信息时,删除数据并导入新数据。这样做的一个很好的副作用是错误将被 null 替换。