Access 2007查询日期计算

时间:2016-02-04 17:00:46

标签: sql access-vba ms-access-2007

Query Example

我有以下Access查询(参见上文),以便从表中存在的实际WorkDte中提供日期,X周数。但是,由于银行假日等,这些表达式计算出来的日期可能实际上并不存在于“CIB_Results”表中。有没有办法生成相同类型的数据,但是说它是否正在运行“Wk1”计算并计算出来2016年1月1日(由于新年假期不存在),而不是[WorkDte] -7,它将继续[WorkDte] -14,依此类推,直到找到实际的日期存在于“CIB_Results”表?我想将相同的逻辑应用于查询中的所有字段......这样,它们将根据“CIB_Results”表中存在的实际日期进行自我调整。任何有关这方面的帮助将不胜感激!

1 个答案:

答案 0 :(得分:0)

有一个功能IsHoliday(SomeDate)可以在您的假期表中查找 SomeDate ,如果找到则返回 True

然后创建一个循环:

Public Function PreviousWorkWeekday(ByVal SomeDate As Date) As Date

    Do
        SomeDate = DateAdd("ww", -1, SomeDate)
    Loop Until Not IsHoliday(SomeDate)
    PreviousWorkWeekday = SomeDate

End Function

现在在查询中使用函数PreviousWorkWeekday