Access 2010 IIF 查询中的语法
Posted
技术标签:
【中文标题】Access 2010 IIF 查询中的语法【英文标题】:Syntax In Access 2010 IIF Query 【发布时间】: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] 字段中的数据相关的结果.请告知如何修改我的查询,以便如果用户选择一个或多个波段但未在 [波段] 字段中输入任何内容,则只会填充选定的结果。
谢谢!
迈克
【问题讨论】:
【参考方案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 语句来隔离所有条件!以上是关于Access 2010 IIF 查询中的语法的主要内容,如果未能解决你的问题,请参考以下文章