访问查询,返回上一年的记录,直到当天,同一个月,但是前一年

时间:2015-08-20 15:47:02

标签: ms-access access-vba

我需要帮助在日期字段上指定访问条件,该日期字段会将我的数据库中的记录从去年1月1日开始拉到与当天相同的日期和同一个月的日期。这些信息的原因是能够比较今年的年初至今记录(以及后来的计数)与去年的年初至今的数量...因此,如果今天和#39 ; s日期是2015年8月20日,我希望能够从2015年1月1日到2015年8月20日,然后将其与2014年1月1日至2014年8月20日进行比较。 只是为了单挑,我使用相同的查询和表单来计算基于每周,每季度日期范围的记录,因此我不能使用带有"开始"的文本框。和"结束"日期。另外,我无法在查询中预先指定任何日期。任何想法将不胜感激。谢谢你们。

3 个答案:

答案 0 :(得分:3)

要获得去年的年初至今DateSerial,我们会做你想做的事。

Where [DateColumn] >= DateSerial(year(now)-1,1,1) 
      and [DateColumn] <= DateSerial(year(now)-1,month(now),day(now))

另一个选择

Where [DateColumn] >= dateadd("yyyy", datediff("yyyy", 0, now)-2, 2 )
      and [DateColumn <= DateAdd("yyyy",-1, now)

答案 1 :(得分:2)

您需要在SQL中使用Date():

Where [DateColumn] >= DateSerial(Year(Date())-1,1,1) 
      And [DateColumn] <= DateAdd("yyyy",-1,Date())

答案 2 :(得分:-1)

以下表达式可用作查询设计器

中日期字段的条件
>="01/01/" & (Year(Date())-1) AND <=Day(Date()) & "/" & Month(Date()) & "/" & Year(Date())-1

警告:应尽可能避免使用字符串构建日期。 DateSerial()是一种更好的方法,但这可以在MS Access(Jet / ACE)中使用。