Access: Calculate the number of workdays between two dates in Access 2003/XP/2000/97
Question: In Access 2003/XP/2000/97, I need to calculate the number of workdays between two dates (ie: elapsed days excluding Saturdays and Sundays).
For example, if I have 3/4/2005 and 3/29/2005, the number of workdays is 17. How can I calculate this?
Answer: You can calculate the number of workdays between two dates using our function below:
Open your Access database, click on the Modules tab and create a new Module. Paste in the following code:
Function CalcWorkdays(StartDate, EndDate) As Integer
Dim LTotalDays As Integer
Dim LSaturdays As Integer
Dim LSundays As IntegerOn Error GoTo Err_Execute
CalcWorkdays = 0
If IsDate(StartDate) And IsDate(EndDate) Then
If EndDate <= StartDate Then
CalcWorkdays = 0
Else
LTotalDays = DateDiff("d", StartDate - 1, EndDate)
LSaturdays = DateDiff("ww", StartDate - 1, EndDate, 7)
LSundays = DateDiff("ww", StartDate - 1, EndDate, 1)'Workdays is the elapsed days excluding Saturdays and Sundays
CalcWorkdays = LTotalDays - LSaturdays - LSundaysEnd If
End IfExit Function
Err_Execute:
'If error occurs, return 0
CalcWorkdays = 0End Function
Here is an example of how you might call this function in a query:
