访问iif函数似乎改变了where子句被解释的标准的方式

时间:2013-03-28 21:27:15

标签: ms-access iif

我根据前一个工作日发生的事件自动化Access 2007中的大量报告。在周二到周六,前一个工作日是前一天。星期一,前一个工作日是两天前。其中一份报告涉及有时间戳的小额现金支付。使用Date()函数和Between语句获取前一个工作日的记录很简单:

WHERE Paid_Out_Datetime Between Date()-1 AND Date()

这将返回从前一天到现在的付款清单(将在当天的凌晨4点左右)。但是如果你把它放在一个iif函数中:

WHERE Paid_Out_Datetime =  iif(Weekday(Date())=2,Paid_Out_Datetime Between Date()-2 AND Date(), Paid_Out_Datetime Between Date()-1 AND Date())

...没有返回记录。如果您只使用Paid_Out_Datetime = Date()-1,除非在前一天的同一时间发生支付,否则您将无法获得任何记录。将Between标准放在iif函数中似乎会使其行为与单个标准不同。我的where子句似乎很简单;任何想法为什么它不起作用?

0 个答案:

没有答案