我正在尝试根据输入到表单中的参数开发查询。我想确保即使用户选择不输入参数(例如开始和结束日期)或用户只输入一半参数(例如用户只输入开始但不输入结束日期或结束但不是开始日期)。这就是我要的:
如果开始日期和结束日期为空,则返回所有日期,
否则,如果开始日期为空,则返回小于或等于给定结束日期的日期,
否则,如果结束日期为空,则返回大于或等于给定开始日期的日期,
否则,返回给定开始日期和结束日期之间的所有日期
我想出的东西似乎没有超出第一个真实陈述的评估,我不知道为什么。
IIf(IsNull([forms]![Volunteer_Hours_By_Person]![Volunteer_Hours_By_Person_Start_Date]
And [forms]![Volunteer_Hours_By_Person]![Volunteer_Hours_By_Person_End_Date]),
[Volunteer_Date],
IIf(IsNull([forms]![Volunteer_Hours_By_Person]![Volunteer_Hours_By_Person_Start_Date]),
<= [forms]![Volunteer_Hours_By_Person]![Volunteer_Hours_By_Person_End_Date],
IIf(IsNull([forms]![Volunteer_Hours_By_Person]![Volunteer_Hours_By_Person_End_Date]),
>= [forms]![Volunteer_Hours_By_Person]![Volunteer_Hours_By_Person_Start_Date],
(Between [forms]![Volunteer_Hours_By_Person]![Volunteer_Hours_By_Person_Start_Date]
And [forms]![Volunteer_Hours_By_Person]![Volunteer_Hours_By_Person_End_Date]))))