Access 2010 IIF查询中的语法

时间:2016-02-04 19:50:21

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

我是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 个答案:

答案 0 :(得分:0)

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

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

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

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

所以,在你的情况下,我建议你在你的表格的OnCurrent事件中用你的业务逻辑(如果那么结束IF)或(如果那么ELSEIF ...结束IF)写几行,改善未来的维护和代码的可读性。