如何列出MS Access报告中的下三个月?

时间:2015-03-04 12:58:57

标签: ms-access-2007

嘿,我有 Emp 表,其中有

名称 + 签证号 + 签证到期日

我如何在报告中显示当前月份未来3个月

例如

现在我在 3月 我需要在 3月 + 中列出 Emp 签证 exp 强>

4月可能

尝试使用表达式构建器,但我没有找到解决方案或者不可能做到这一点?

1 个答案:

答案 0 :(得分:1)

我确定您的报告将有一个基于它的查询,因此您需要在查询中创建一个过滤器。例如,如果您的报告具有记录来源 查询的名称,则转到查询设计视图。

SQL应该是类似的,

SELECT
    EmployeeName,
    EmployeeVisaNo,
    EmployeeVisaExpiry
FROM
    EmployeeTable
WHERE 
    Month(EmployeeVisaExpiry) = Month(Date); 

要获取当月和接下来两个月的信息,您的查询将会是。

SELECT
    EmployeeName,
    EmployeeVisaNo,
    EmployeeVisaExpiry
FROM
    EmployeeTable
WHERE 
    EmployeeVisaExpiry BETWEEN Date() AND DateAdd("m", 3, Date()); 

我创建的查询仅从日期开始形成日期和90天/ 3个月,所以如果它也在6月份通过一些条目也不要感到惊讶。 然而如果您只需要三个月,那么您可以将其作为,

SELECT
    EmployeeName,
    EmployeeVisaNo,
    EmployeeVisaExpiry
FROM
    EmployeeTable
WHERE 
    Month(EmployeeVisaExpiry) BETWEEN Month(Date) AND Month(DateAdd("m", 3, Date())) ; 

以上内容将为您提供三个月内的所有数据,如果您希望过滤当前年份的数据,只需在条件中添加AND即可。像,

SELECT
    EmployeeName,
    EmployeeVisaNo,
    EmployeeVisaExpiry
FROM
    EmployeeTable
WHERE 
    ((Month(EmployeeVisaExpiry) BETWEEN Month(Date) AND Month(DateAdd("m", 3, Date())))
    AND
    (Year(EmployeeVisaExpiry) = Year(Date()))) ;