Selamlar,
Ekte gönderdiğim Access query sorgusunda ay içinde geçen Cumartesi ve Pazar günlerinin toplamını bulmak istiyorum. Ayrıca "geçen iş günü" formülü de tam olarak çalışmıyor. Doğru formül için yardımlarınızı rica ederim.
Teşekkürler.

Public Function HaftaSonuHesapla(IlkTarih As Date, SonTarih As Date) As Long
Dim HaftaSonu As Long, GSayim As Long
HaftaSonu = 0
For GSayim = 0 To DateDiff("d", IlkTarih, SonTarih)
Select Case Weekday(DateAdd("d", GSayim, IlkTarih))
Case 1, 7
HaftaSonu = HaftaSonu + 1
End Select
Next
HaftaSonuHesapla = HaftaSonu
End Function
Public Function IsGunuHesapla(IlkTarih As Date, SonTarih As Date) As Long
Dim IsGunu As Long, GSayim As Long
IsGunu = 0
For GSayim = 0 To DateDiff("d", IlkTarih, SonTarih)
Select Case Weekday(DateAdd("d", GSayim, IlkTarih))
Case 2, 3, 4, 5, 6
IsGunu = IsGunu + 1
End Select
Next
IsGunuHesapla = IsGunu
End Function
IsGunuToplami: IsGunuHesapla(DateSerial(Year([Tarih]);Month([Tarih]);1);DateSerial(Year([Tarih]);Month([Tarih])+1;0))
HaftaSonuToplami: HaftaSonuHesapla(DateSerial(Year([Tarih]);Month([Tarih]);1);DateSerial(Year([Tarih]);Month([Tarih])+1;0))
(03/09/2017, 03:12)mehmetdemiral yazdı: Bu arada, yeni farkettim: Bir de "geçen gün doğru çalışmıyor demişsiniz. Ee yani, ayın ilk günü ile son günü üzerinden işlem yaparsanız başka sonuç çıkmaz ki) O sorgudaki geçen iş gününün kodunu
Geçen İş Günü: WorkingDays([Ayın İlk Günü];[Tarih])
şeklinde düzeltin de, kodcağız her satırda söz konusu tarih yerine, ayın ilk gününü baz almasın.
(03/09/2017, 03:09)ozanakkaya yazdı: Merhaba,
Modüle aşağıdaki kodları ekleyip kaydet.
Public Function HaftaSonuHesapla(IlkTarih As Date, SonTarih As Date) As Long
Dim HaftaSonu As Long, GSayim As Long
HaftaSonu = 0
For GSayim = 0 To DateDiff("d", IlkTarih, SonTarih)
Select Case Weekday(DateAdd("d", GSayim, IlkTarih))
Case 1, 7
HaftaSonu = HaftaSonu + 1
End Select
Next
HaftaSonuHesapla = HaftaSonu
End Function
Public Function IsGunuHesapla(IlkTarih As Date, SonTarih As Date) As Long
Dim IsGunu As Long, GSayim As Long
IsGunu = 0
For GSayim = 0 To DateDiff("d", IlkTarih, SonTarih)
Select Case Weekday(DateAdd("d", GSayim, IlkTarih))
Case 2, 3, 4, 5, 6
IsGunu = IsGunu + 1
End Select
Next
IsGunuHesapla = IsGunu
End Function
Sorguda yeni alana, iş günü toplamı için
IsGunuToplami: IsGunuHesapla(DateSerial(Year([Tarih]);Month([Tarih]);1);DateSerial(Year([Tarih]);Month([Tarih])+1;0))
Hafta Sonu toplamı için
HaftaSonuToplami: HaftaSonuHesapla(DateSerial(Year([Tarih]);Month([Tarih]);1);DateSerial(Year([Tarih]);Month([Tarih])+1;0))
Kodları ekle.