Я использовал приведенный ниже код для подсчета фактических рабочих дней, исключая выходные.В базе данных доступа есть таблица для выходных и код написан таким образом, чтобы исключить день из подсчета, если это выходной.Когда я запускаю код, я получаю сообщение об ошибке 2950: зарезервированная ошибка.
У меня нет опыта связывания доступа к Excel, но я включил его из инструмента> ссылки Библиотека объектов MS Access 14.0
Public Function WorkingDays(StartDate As Date, EndDate As Date) As Integer
'-- Return the number of WorkingDays between StartDate and EndDate
Error GoTo err_workingDays
Dim intCount As Integer
If IsDate(StartDate) And IsDate(EndDate) Then
If EndDate >= StartDate Then
intCount = 0
Do While StartDate < EndDate
StartDate = StartDate + 1
If Weekday(StartDate, vbMonday) <= 5 And IsNull(DLookup("[Holiday]", "tblHolidays", _
"[HolDate] = " & Format(StartDate, "\#mm\/dd\/yyyy\#;;;\N\u\l\l"))) Then
intCount = intCount + 1
End If
Loop
WorkingDays = intCount + 1
Else
WorkingDays = -1
End If
Else
WorkingDays = -1
End If
exit_workingDays:
Exit Function
err_workingDays:
MsgBox "Error No: " & Err.Number & vbCr & _
"Description: " & Err.Description
Resume exit_workingDays
End Function