我是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]这意味着如果波段字段为空,它将提取所有波段的所有结果。但如果填充了波段和/或波段2-4字段,它将仅从这些字段中提取结果。这一切都在起作用。
但是,如果用户将波段字段留空,而只在波段2-4字段中输入内容,则会显示所有结果,而不仅仅是那些与波段2-4字段中的数据相关的结果。请建议如何修改我的查询,以便如果用户选择了一个或多个波段,但没有将任何东西放入波段字段,只有选定的结果将填充。
谢谢!
麦克
发布于 2016-02-05 09:47:26
IIF与查询无关。IIF语句是if..的快捷方式。然后..。否则..。END IF语句。
MyResult =IIF (Condition, Make1, Make2)均值
IF Condition THEN
MyResult=Make1
ELSE
MyResult= Make2
END IF您可以嵌套IIF语句,但结果将很难阅读和维护。
因此,在您的情况下,我建议使用您的业务逻辑编写几行代码(IF THEN END IF)或(IF THEN ELSEIF...在窗体的OnCurrent事件中结束IF),从而提高将来代码的可维护性和可读性。
https://stackoverflow.com/questions/35210307
复制相似问题