Replace the existing Function with this code. Assuming a tblHolidays, this should skip those as well.
Code:
Function BumpDate(InDate As Date, BumpBy As Integer) As Date
' Adjust the InDate by the BumpBy value, skipping weekends and Holidays
' If you want to bump by one then use:
' NewDate = BumpDate(OldDate, 1)
On Error GoTo Err_BumpDate
Dim rst As DAO.Recordset
Dim dbs As DAO.Database
Dim Looping As Boolean
On Error GoTo ErrHandler
Set dbs = CurrentDb
Set rst = dbs.OpenRecordset("tblHolidays", dbOpenSnapshot)
Looping = True
BumpDate = InDate
Do While Looping
BumpDate = BumpDate + BumpBy
If Weekday(BumpDate, vbMonday) < 6 Then
' This is a weekday. Check for a Holiday
rst.FindFirst "[HolidayDate] = #" & Format(BumpDate, "mm\/dd\/yyyy") & "#"
If rst.NoMatch Then
Looping = Weekday(BumpDate, vbMonday) > 5
End If
End If
Loop
Exit_BumpDate:
On Error Resume Next
rst.Close
Set rst = Nothing
Set dbs = Nothing
Exit Function
Err_BumpDate:
MsgBox "Error No: " & lngErrNumber & vbCrLf & _
"Description: " & strErrDescription
Resume Exit_BumpDate
End Function