将Excel公式转换为Access查询

时间:2012-07-19 18:01:44

标签: excel ms-access excel-formula

有没有办法将以下Excel公式转换为Access中的查询/条件?

L2 = Date
J2 = Another Date
Z1 = Todays Date

我认为它正在计算两个日期之间的天数,但不确定如何在Access查询中执行此操作。

IF((AND((L2<1),(J2>1))),(NETWORKDAYS(J2,$Z$1)-1),0)

3 个答案:

答案 0 :(得分:1)

正如你现在可能已经聚集一样,这个问题确实没有意义。 NETWORKDAYS确实计算了两个日期之间的“整个工作日不包括周末和节假日中确定的任何日期”(此处J2中的任何日期以及“今天”/ Z1并且IF使得该计算取决于AND函数的结果为TRUE。如果AND中的“日期”在1900年1月1日之前且L2中的日期在19/1年1月1日之后,则J2函数会生成TRUE(因为Excel 1 / 1/1900是日期1,其中涉及日期[除非选择1904年日期制度]。

但Excel无法识别第1天之前的日期,无论是负数还是十进制数。例如,第1.5天是在19/1年1月1日中午,而在相同的格式中,第0.5天显示为0/1/1900。

所以从本质上讲,L2不是公式中任何实际使用的日期,因此我相信为什么还没有回答你的问题。但这太长了,不适合评论,因此我的答案:“不。”!

答案 1 :(得分:0)

设置对Excel的引用。

Option Compare Database

Private Sub Command2_Click()
    MsgBox GetNetWorkDays(#1/29/2017#, #2/8/2017#)
End Sub

Function GetNetWorkDays(startDate As Date, endDate As Date) As Integer
GetNetWorkDays = WorksheetFunction.NETWORKDAYS(startDate, endDate)
End Function

将按钮放在表格上,然后单击按钮!

答案 2 :(得分:0)

如果要计算天数之间的天数,可以使用下面的内置函数“ DateDiff”来解决。 Datediff(“ D” ,,) 例如Datediff(“ D”,L2,Z1)