【发布时间】:2015-03-06 23:18:48
【问题描述】:
我需要每周运行一次报告,在其中查询 Access 数据库中将在 9 个月或更短时间内到期的任何产品。他们希望计算的方式是将日期移至未来 9 个月,并返回在该月末或更早到期的任何内容。如果它只是 270 天或更短,我没有问题。 (如果我可以在 Excel 中完成,我也没有问题,但目前这不是一个选项。
我想出了一个每年每个月都有效的解决方案,除非它恰好是 3 月(更具体地说是在 3 月 6 日到 4 月 5 日之间)。
< DateValue(Month(Date()+270)+1 & "/1/" & Year(Date()+270))
所以基本上我是:
- 今天的日期加上 270 天
- 提取结果月份
- 月份加 1
- 将其作为文本字符串重新组合在一起,以便我可以使用
- 对于这一年,我使用的是从日期 +270 天开始的年份,所以我最终不会意外使用当前年份
问题在于,对于上面的日期范围(我今天不高兴地发现),我在 12 月着陆,当我加上 270 天时,所以下个月是不同的年份。结果,我的报告只生成了已经过期的项目。
换句话说,在 3 月 5 日,我需要一份在 12 月 1 日之前到期的所有内容的清单,但在 3 月 6 日,我需要在明年 1 月 1 日之前的所有内容。
有没有更有效的方法来避免这个问题?我想过使用
【问题讨论】:
-
“我想到了使用” - 如果您想到使用 DateAdd 函数,就像在
DateAdd("m", 9, Date())中那样,那么这将是朝着正确方向迈出的一步。
标签: date ms-access ms-access-2007