查询中如何对时间范围字段追加针对“项目状态”字段的条件??
老师们,我有问题请教。设计了一个窗体,如图:

查询条件比较多,满足了我的管理需求。现在,我想对“日期范围”这一条件追加一个必要条件,让计算机先列出那个日期范围内对应的所有行,再去掉行中“状态名称”字段取值为“结束”或者“终止”的行,返回给用户。
我研究了好久也实现不了,没有追加时,运行是正常的,如上图所示,只是日期范围中查询出来的行不符合我的管理需要,因为里面“状态名称”字段中属于“终止”和“结束”的行也列了出来,我想去掉它们。
没有追加条件时,日期字段的表达式如下:
Between (IIf(IsNull([Forms]![FrmPrjHolder]![启动日期开始]),#1/1/1980#,[Forms]![FrmPrjHolder]![启动日期开始])) And (IIf(IsNull([Forms]![FrmPrjHolder]![启动日期截止]),#12/31/2099#,[Forms]![FrmPrjHolder]![启动日期截止])) And Between (IIf(IsNull(DateAdd("yyyy",-5,[forms]![FrmPrjHolder]![日期范围开始])),#1/1/1980#,DateAdd("yyyy",-5,[forms]![FrmPrjHolder]![日期范围开始]))) And (IIf(IsNull([Forms]![FrmPrjHolder]![日期范围截止]),#12/31/2099#,[Forms]![FrmPrjHolder]![日期范围截止]))
状态名称字段的表达式如下:
Like IIf(IsNull([Forms]![FrmPrjHolder]![状态名称]),'*','*' & [Forms]![FrmPrjHolder]![状态名称] & '*')
追加条件时,我把“状态名称”字段的表达式改为:
Like IIf(IsNull([Forms]![FrmPrjHolder]![状态名称]),IIf(IsNull([forms]![FrmPrjHolder]![日期范围开始]),IIF(IsNull([forms]![FrmPrjHolder]![日期范围截止]),'*',('进行' or '报告'))),'*' & [Forms]![FrmPrjHolder]![状态名称] & '*')
意思是说:1)当用户在“状态名称”中没有输入东西时,如果此时日期范围内也没有输入日期值,则显示所有记录,如果此时日期范围内有值,则显示那个范围内的记录且“状态名称”字段中只取“进行”和“报告”那些行;
2)当用户在状态名称中输入了值时,显示那些值对应的行。
有没有哪位老师愿意帮助我啊?非常非常感谢。我弄了3个小时也解决不了。