MS Access IIF字段存在

时间:2014-10-16 04:30:35

标签: ms-access-2010

我正在创建一个查询报告,如果是,则字段ABC显示为CAT,如果不是,则显示为MOUSE。但遗憾的是,当存在查询中的表不包含字段ABC的情况时,报告会生成错误弹出窗口。有没有办法绕过这个并运行报告与其他字段除了缺少的字段?

我听说IIF存在功能可以提供帮助,但我在这里真的很空白。我写了如下的访问查询:

Iif (fieldExists(iif([ABC]=5, 'CAT', 'MOUSE'),iif([ABC]=5, 'CAT', 'MOUSE'), ''))  AS TOMnJERRY

1 个答案:

答案 0 :(得分:0)

此功能可能是测试Access中是否存在字段的最短函数:

Function FieldExists(ByVal Table As String, ByVal Field As String) As Boolean
    On Error Resume Next
    FieldExists = (DCount(Field, Table) >= 0)
End Function

工作原理: 如果该字段存在,则表达式(DCount(Field, Table) >= 0)显然始终为true,因为DCount永远不会返回负值。如果该字段不存在,则会发生错误并且程序将跳转到下一行而不设置返回变量FieldExist,因此这个将保持默认值,这是false

所以问题的解决方案应如下所示:

Iif (FieldExists('YourTable','ABC'), iif([ABC]=5, 'CAT', 'MOUSE'), '')