【问题标题】:Syntax In Access 2010 IIF QueryAccess 2010 IIF 查询中的语法
【发布时间】:2016-02-04 19:50:20
【问题描述】:

我是 Access 的初级用户,正在尝试在表单中构建查询。

我正在处理我的第一个 IIF 查询,但无法获得所需的行为。

我正在尝试根据 4 个条目提取结果,称为 [band]、[band2]、[band3] 和 [band4]。

这是我所在的地方:

Like IIf(IsNull([forms]![financial_filter]![band]),"*",[forms]![financial_filter]![band]) Or Like [forms]![financial_filter]![band2] Or Like [forms]![financial_filter]![band3] Or Like [forms]![financial_filter]![band4]

这意味着如果 [band] 字段为空,它将提取所有波段的所有结果。但是,如果填写了 [band] 和/或 [band2-4] 字段,它将仅从这些字段中提取结果。这一切正常。

但是,如果用户将 [band] 字段留空并且仅在 [band 2-4] 字段中输入内容,则会显示所有结果,而不仅仅是与 [band 2-4] 字段中的数据相关的结果.请告知如何修改我的查询,以便如果用户选择一个或多个波段但未在 [波段] 字段中输入任何内容,则只会填充选定的结果。

谢谢!

迈克

【问题讨论】:

    标签: mysql ms-access ms-access-2010


    【解决方案1】:

    IIF 与 Query 无关。 IIF 语句是 IF .. THEN .. ELSE .. END IF 语句的快捷方式。

    MyResult =IIF (Condition, Make1, Make2) 表示

    IF Condition THEN
       MyResult=Make1
    ELSE
       MyResult= Make2
    END IF
    

    您可以嵌套 IIF 语句,但结果将难以阅读和维护。

    因此,在您的情况下,我建议您在表单的 OnCurrent 事件中使用您的业务逻辑(IF THEN ELSE END IF)或(IF THEN ELSEIF ... END IF)写几行,以改善未来的维护和代码的可读性。

    【讨论】:

    • 谢谢思科!这是有道理的...我将使用几个 If/Then/Else 语句来隔离所有条件!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-11-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-28
    相关资源
    最近更新 更多