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