访问标准当前月和下个月

时间:2015-04-07 09:29:50

标签: ms-access

我需要访问当前月和下个月的标准

例如:今天我需要01.04.15到31.05.15,但下个月生病需要01.05.15到31.06.15

我写了这个代码的标准,但我无法得到任何解决方案

**

  

BETWEEN DateSerial(Year(Date()); Month(Date()); 1)AND   DateSerial(Year(Date()); Month(Date())+ 2; 0)

**

如果您有解决此问题的方法。请与我分享

由于

Y.Ö。

3 个答案:

答案 0 :(得分:1)

Between DateSerial(Year(Date()); Month(Date()); 1) And DateSerial(Year(Date()); Month(Date()) + 2; 0)

是正确的,所以也许你只是没有这个范围内的任何数据。

答案 1 :(得分:1)

想一想。当当前月份是 11 月和 12 月,然后是月份 + 2 = 13 或 14 并且不是有效月份时会发生什么。因此,您将需要一个 IIf 语句来处理提前到明年的年份,并相应地处理年份和月份。此外,再次考虑这一天,您将需要一个 IIF 语句来处理结束于 28、30 和 31 的月份。

答案 2 :(得分:0)

抱歉,我弄错了 Access 处理年终和月份的方式。这里有更多信息。那张贴在https://access-excel.tips/;上我不相信。

<块引用>

与月份的第一个日期不同,我们不能在 day 参数中直接输入“31”,因为每个月都有不同的天数。相反,我们可以找到下个月的第一天,然后减去 1 天。 Access 非常聪明,当您将 1 个月添加到 12 月时,年份也会增加 1,因此此技巧也适用于年末。下面的公式返回当月的最后一天。

DateSerial(Year(Date()),Month(Date())+1,1)-1

我们也可以在 day 参数中使用 0 而不是使用 -1 来简化这个公式。 0 返回上个月的最后日期。

DateSerial(Year(Date()), Month(Date()) + 1, 0)