2

我有一个 Access 查询,上面有一些复杂的字段。基本上,我正在根据其他派生标准搜索某个值。该函数要么工作,要么给出#Func!错误。我可能会收到错误的原因有几个。没关系,因为在这些情况下我想 return Null

如何测试和处理#Func!查询中的错误?另外,我尝试将表达式包装在一个IsError()方法中,并处理这种情况。那仍然没有用。

4

3 回答 3

0

例如,如果您将 Instr 与可能为 null 或不为 null 的字段一起使用,并且这会导致问题,您可以只选择那些不为 null 的字段,或者将一个空字符串与该字段连接起来。

 SELECT Mid(AField & "",Instr(Afield & "","x")) FROM Table
于 2012-08-10T14:14:35.390 回答
0

我认为这不是最佳解决方案,但是,我希望 Microsoft 内部管理 Microsoft Access 的“更高权力”了解异常处理,并在适当的情况下提供某种测试和处理/忽略错误的方法。

无论如何,就我而言,我发现了解决问题的方法。我按原样保存查询并将其导出到表中。由于这是一次性练习,因此我能够提取必要的数据,然后Null从新创建的表中过滤掉所有值。

它有效,但感觉就像一个非常糟糕的黑客。

于 2012-08-10T14:22:15.907 回答
-1

OMGGGGG 我知道我晚了 6 年,但这是我第一次在博客上发帖,因为我实际上解决了这个问题!你不知道我有多兴奋。好的,事实证明这正是我想要做的:Mid(AField,Instr(Afield,"x"))。在我的情况下,我知道 InStr 函数并不总是在 Afield 中找到 x,在这些情况下,理想情况下我想要一个 Null。但它实际返回的是 0。在访问中,Right、Left 和 Mid 等函数不能在 0 处“开始”,它们必须从 1 开始(或者我想是 -1)。这是导致#Func!错误!

一种解决方案....如果您的 Instr fuction=0 做一件事,则另做一件事。

如果我想到其他解决方案,我会告诉你。

于 2018-07-19T22:00:05.000 回答