Hafta İçi Ötelemeleri

07/04/2016, 10:00

notrino

Merhabalar,

Daha önce ekteki güzel çalışmayı göndermiştiniz bana. Öncelikle bunun için tekrar teşekkür ediyorum. Bu çalışma bildiğiniz üzere şunları öteleyerek iş gününü hesaplıyordu;

-Hafta sonlarını (Cumartesi Pazar)
-Tatiller tablosundaki tatil günlerini

Şimdiki ihtiyacım ise, yine bu uygulamanın biraz modifiye edilmesi ile ilgili. Ama nasıl yapacağımı tam olarak bilemedim; Şimdi şunların ötelenmesini istiyorum;

-Hafta içi günlerini (Pztesi......Cuma)
-Tatiller tablosundaki tatil günlerini.

Bu sayede sadece hafta sonu çalışmalarını organize edebileceğim. Yardımcı olursanız sevinirim;

Tşk..
08/04/2016, 06:26

ozanakkaya

Modüldeki fonksiyonu aşağıdaki ile değiştirerek deneyiniz.

Function addWorkDays(addNumber As Long, Date2 As Date) As Date


    Dim finalDate As Date
    Dim i As Long, tmpDate As Date
    tmpDate = Date2
    i = 1
    Do While i <= addNumber
        If Weekday(tmpDate) <> 2 And Weekday(tmpDate) <> 3 And Weekday(tmpDate) <> 4 And Weekday(tmpDate) <> 5 And Weekday(tmpDate) <> 6 And _
            DCount("*", "tblHolidays", "HolidayDate = " & Format(tmpDate, "\#mm\/dd\/yyyy\#")) = 0 Then i = i + 1
        tmpDate = DateAdd("d", 1, tmpDate)
    Loop

    Do While Weekday(tmpDate) = 2 Or Weekday(tmpDate) = 3 Or Weekday(tmpDate) = 4 Or Weekday(tmpDate) = 5 Or Weekday(tmpDate) = 6 Or _
        DCount("*", "tblHolidays", "HolidayDate = " & Format(tmpDate, "\#mm\/dd\/yyyy\#")) <> 0
        tmpDate = DateAdd("d", 1, tmpDate)
    Loop

    addWorkDays = tmpDate
End Function