나는 주택 건설업자를 위해 일하는데 동료와 함께 주말을 제외하고 3 일을 계산할 수있는 공식을 얻도록 돕고 자 노력하고 있습니다.Microsoft Access에서 주말을 제외하고 날짜를 계산하는 방법은 무엇입니까?
DateAdd("d",3,[TrussOrderDate])
이 그녀가 사용하고있는 현재의 공식은 그녀가 개최하는이 주말
나는 주택 건설업자를 위해 일하는데 동료와 함께 주말을 제외하고 3 일을 계산할 수있는 공식을 얻도록 돕고 자 노력하고 있습니다.Microsoft Access에서 주말을 제외하고 날짜를 계산하는 방법은 무엇입니까?
DateAdd("d",3,[TrussOrderDate])
이 그녀가 사용하고있는 현재의 공식은 그녀가 개최하는이 주말
나는 테이블을 만들 것을 날짜를 계산하지만, 제외 얻기 위해 찾고 있던 모든 (은행/공공/특별) 공휴일. 뭔가 (tbl_BankHolidays),
holID | bankDate | bankHoliday | workDay
--------+---------------+-------------------+-----------
1 | 01/01/2014 | New years day | Wednesday
2 | 18/04/2014 | Good Friday | Friday
3 | 21/04/2014 | Easter Monday | Monday
4 | 05/05/2014 | Early May | Monday
5 | 26/05/2014 | Spring holiday | Monday
6 | 25/08/2014 | Summer holiday | Monday
7 | 25/12/2014 | Christmas Day | Thursday
8 | 26/12/2014 | Boxing Day | Friday
9 | 01/01/2015 | New Year’s Day | Thursday
:
:
16 | 28/12/2015 | Boxing Day | Monday
그런 다음이 날짜를 계산하는 기능.
Function addWorkDays(addNumber As Long, Date2 As Date) As Date
'********************'
'Code Courtesy of '
' Paul Eugin '
'********************'
Dim finalDate As Date
Dim i As Long, tmpDate As Date
tmpDate = Date2
i = 1
Do While i <= addNumber
If Weekday(tmpDate) <> 1 And Weekday(tmpDate) <> 7 And _
DCount("*", "tbl_BankHolidays", "bankDate = " & CDbl(tmpDate)) = 0 Then i = i + 1
tmpDate = DateAdd("d", 1, tmpDate)
Loop
addWorkDays = tmpDate
End Function
당신은 추가해야하는 경우 N일 DateAdd 함수 기능과 같은 최신, 당신은 단순히 사용의 번호입니다. String 식별자를 지정하지 않으므로 기본값으로 며칠을 추가 할 수 있습니다. 첫 번째 인수는 추가 할 일 수입니다. 두 번째 날짜는 요일을 추가해야하는 날짜입니다.
코드는 한 번에 하루를 반복하여 주말 (1 - vbSunday 또는 7 - vbSaturday)인지 또는 테이블에서 특별한 날에 나열되어 있는지 확인합니다. 휴일이나 주말 인 경우 카운터를 늘리지 않고 하루를 하루 추가하십시오. 카운터는 당신이 통과 한 숫자와 같을 때 종료됩니다!
'do' 루프에'tmpDate = DateAdd ("d", 1, tmpDate)'를 배치하는 것이 더 정확하다고 생각합니다. –
일반적으로 달력 표를 사용하는 것이 좋습니다. 주중뿐만 아니라 휴일 인 모든 날을 채울 수 있습니다. – Fionnuala