我正在尝试在MS Access 查询中将以下内容作为标准运行。基本上我想做的是:

  • 如果checkbox = True,则显示所有记录,包括具有空白或空字段的记录(我的表单组合框[combo9]中的默认值为“*”)
  • 如果checkbox = False,则仅显示与Combo9中的值匹配的记录

  • 我当前的表达式没有给出任何错误,但是也没有产生任何结果!表达式的TRUE和FALSE一半可以单独工作,但结合到iif表达式中则不能工作。
    Like IIf([Forms]![F_leg_reg]![Check25]=True,Like [Forms]![F_leg_reg]![Combo9] Or "" Or Is Null,Like [Forms]![F_leg_reg]![Combo9])
    

    有人可以告诉我我在做什么错吗?提前致谢。

    最佳答案

    不确定是否需要这么多likes,您在返回值中使用了or逻辑运算符,但这没有意义

    IIF (condition, value-if-true, value-if-false)
    

    所以..
    Like IIF ([forms]![foo].[text1] = "1" OR [forms]![foo].[text2] = "1", 'bar', 'foobar')
    

    如果满足任一条件,则IIF将返回“bar”,否则将返回“foobar”

    您可以根据需要嵌套它
    Like IIF ([forms]![foo].[text1] = "1" OR [forms]![foo].[text2] = "1", 'bar',
            IIF ([forms]![foo].[text1] = "2" AND [forms]![foo].[text2] = "2", 'foobar', null)
        )
    

    如果满足任一条件,则IIF将返回“bar”,否则我们将检查text1 text2是否为“2”,如果是,则返回“foobar”,否则我们返回null
    希望这可以帮助

    关于ms-access - 使用OR运算符的IIF查询不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9310098/

    10-10 06:51