如果值为空,则QUERY返回错误?

时间:2012-07-19 18:53:19

标签: ms-access

我正在运行以下表达式来比较2个日期的差异。如果两个日期都在单元格中,我希望它返回0,但如果Date2为空,我希望显示差异。现在,如果date2中没有日期,我就会得到#ERROR。任何想法都将不胜感激。

expr2: NetWorkDays([Date1],[Date2])

Option Compare Database 

Public Function NetWorkdays(dteStart As Date, dteEnd As Date) As Integer 

Dim intGrossDays As Integer 
Dim dteCurrDate As Date 
Dim i As Integer 

intGrossDays = DateDiff("d", dteStart, dteEnd) 
NetWorkdays = 0 

For i = 0 To intGrossDays 
dteCurrDate = dteStart + i 
If Weekday(dteCurrDate, vbMonday) < 6 Then 
End If 
Next i 

End Function

1 个答案:

答案 0 :(得分:1)

如果你不从函数中删除NetWorkdays = 0,函数将始终返回0,如果你不在if语句中调用函数的地方,你将继续得到错误这样:

If Not IsNull(Date2) Then
txtResult = NetWorkdays(Date1, Date2)
Else
txtResult = 0
End If

txtResult是您要显示结果的文本框。

您可能需要查看此链接http://msdn.microsoft.com/en-us/library/bb258196(v=office.12).aspx。它是一个用于访问的函数,用于计算两个日期之间的工作日数。

使用此功能,您应该得到您想要的结果:

If Not IsNull(Date2) Then
txtResult = 0
Else
txtResult = Work_Days(Date1, Now())
End If