我已经构建了一个Access数据库来跟踪我们团队的质量保证监视器。我们的团队有几位领导,负责监督团队的代表。
我想构建一个查询,它将返回当前月份指定潜在客户的所有QA。我有指定潜在客户的标准,并且已经有了工作,但每次我尝试设置当前月份的标准时,最终都没有返回结果。
搜索谷歌一再建议使用Month(Now())
,但这也不起作用。
我该怎么写这个查询?
答案受到@ Justin-rentmeester的启发,但经过精心设计以始终返回所需的结果:
将以下内容添加到查询的WHERE
子句中:
MyDateField BETWEEN
DateSerial(Year(Date()),Month(Date()),1)
AND
DateAdd("s", -1, DateAdd("m", 1, DateSerial(Year(Date()),Month(Date()),1))), DateSerial(Year(Date()),Month(Date()),1)
我建议您使用SQL视图添加此标准。
此方法也适用于包含时间的日期,以及少于31天的月份。
我编辑我的答案!
假设workdate
是你的日期字段。
更短的where clause
可以
where Year(workDate) = Year(Date()) and Month(workDate) = Month(Date())
这将过滤当前月份的所有记录。
如果您想进一步过滤记录,直到今天添加
and workdate <= Date()
如果您未在表中存储未来日期记录,则可能不需要这样做。
祝好运。
要在Access的“设计”视图中执行此操作,请选择报表中所需的所有列以及要限制为当前月份的日期列,以放置条件:
DateSerial(Year(Date()),Month(Date()),1)
和
DateSerial(Year(Date()),Month(Date()),31)