AccessTr.neT

Tam Versiyon: Perşembesiz İki Tarih Arasındaki İş Günü Hesaplama (Farklı Bir Konu)
Şu anda arşiv modunu görüntülemektesiniz. Tam versiyonu görüntülemek için buraya tıklayınız.
Öncelikle yardımlarınız için şimdiden teşekkür ederim.

Uzun zamandır siteyi takip etmekteyim ve problemim ile ilgili bütün konuları taradım diyebilirim. Lakin her hangi bir örneğe rastlayamadım.

Şöyle ki; 3 lü vardiya sistemine göre çalışmaktayız ve hafta tatillerimiz Perşembe, Cuma, Cumartesi ve Pazar günleri olmak üzere haftanın bu dört gününe dağılmıştır.

Örneğin, Hafta Tatili Perşembe günü olan bir personelimizin senelik izin kullanmak istedi. Ben İzne ayrıldığı tarih ile iş başı yapacağı tarihi Perşembe günlerini dahil etmeden hesaplatmak istiyorum.

Sitede Hafta tatili Cumartesi ve Pazar olan örnekler ile Hafta tatili sadece pazar günü olan örnekler mevcut. Ama hafta içi bir gün için hiç örnek bulamadım.


Ekteki örnek, hafta tatili c.tesi ve pazar günü olanlar içindir. Bu örnekte İzne Başlama tarihi ile İzin Bitiş tarihi arasında olan C.tesi ve Pazar günlerini saymamaktadır. Ben bu örnekteki kodları, İzne Başlama tarihi ile İzin Bitiş tarihi arasında olan sadece perşembe günlerini saymasın ( diğer tüm günleri saysın) olarak bir türlü uyarlayamadım.

Bunu Vba kodu ile yapma imkanımız var mıdır?
aşağıdaki kodlama istediğim gibi çalışmıyor, neyi yanlış yaptığımı da bulamadım.

Function isgunuPersembesiz(txt_Izin_Baslangic_Tarihi, txt_Is_Yerine_Katilis_Tarihi)

Dim hafta As Integer
Const PERSEMBE = 5

Select Case Weekday(txt_Izin_Baslangic_Tarihi)

Case PERSEMBE

txt_Izin_Baslangic_Tarihi = txt_Izin_Baslangic_Tarihi + 1

End Select

Select Case Weekday(txt_Is_Yerine_Katilis_Tarihi)

Case PERSEMBE

txt_Is_Yerine_Katilis_Tarihi = txt_Is_Yerine_Katilis_Tarihi - 1

End Select

hafta = DateDiff("ww", txt_Izin_Baslangic_Tarihi, txt_Is_Yerine_Katilis_Tarihi)
isgunuPersembesiz = hafta * 6 + Weekday(txt_Is_Yerine_Katilis_Tarihi) - Weekday(txt_Izin_Baslangic_Tarihi)

If isgunuPersembesiz < 0 Then isgunuPersembesiz = 0

End Function
Örneğinizin düzenlenmiş hali ektedir, forma ayrıca gün seçimi için açılan kutu eklendi. İnceleyip olumlu/olumsuz bildirimde bulununuz.
Ozan Hocam, ben sadece perşembe demiştim siz bütün günler için hesap yaptırmışsınız. Emeğinize sağlık hocam, kod mükemmel çalışıyor. Ayırdığınız vakit için, uğraşlarınız için ve jestiniz için ayrı ayrı teşekkür ederim.