我是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]字段中的数据相关的结果。请告知如何修改我的查询,以便如果用户选择一个或多个波段但未在[波段]字段中添加任何内容,则只会填充选定的结果。
谢谢!
麦克
答案 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)写几行,改善未来的维护和代码的可读性。