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.
Ay İçinde Geçen Cumartesi Ve Pazar Günlerinin Toplamını Bulmak
Merhaba. Access'te özellikle 2010 yılından sonra Türkçe Access sorgulamalarında ölçüt konusunda bazı komutlar sorun çıkartmaya başladı. Bu nedenle biraz zorlamayla, ifade biçiminde ve ingilizce olarak yazabiliyoruz komutları. Bu nedenle Access kullanarak bu işi yapmak isterseniz, sorguda birden çok değeri filtrelemek ve sonra da saydırmak gerekiyor. Ben çalışmanız üzerinde keyfime göre bir sorgu hazırladım. İşinizi görürse bu yoldan devam edersiniz. Olmazsa yazın, buluruz bir şeyler mutlaka
İnadına, ille de Accesstr.net...
Merhaba,
Modüle aşağıdaki kodları ekleyip kaydet.
Sorguda yeni alana, iş günü toplamı için
Hafta Sonu toplamı için
Kodları ekle.
Mesajını yeni fark ettim @mehmetdemiral abi. Kusura bakma.
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.
Mesajını yeni fark ettim @mehmetdemiral abi. Kusura bakma.
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.
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.
İnadına, ille de Accesstr.net...
(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.
Merhaba Mehmet Bey,
Evet haklısınız, başlangıçta öyleydi aslında ancak daha sonra diğer formülü yapmaya çalışırken saçmalamışım.
Ozan Bey'in yazmış olduğu formülle sorguları tekrar düzenledim, sorunsuz bir şekilde çalıştı.
İlginize teşekkür ederim.
(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.
Merhaba Ozan Bey,
Bu konuda birşey sormak isterim, verdiğiniz kodla ay içinde geçen günlerin toplamını yazdırabilir miyiz? Mesela Eylül ayı içinde Pazar : 4, Cumartesi: 5 gibi saydırmak için formülü nasıl yazabilirim?
Dosyanın güncel hali ektedir. Umarım diğer arkadaşlara da faydalı olur.
Yardımlarınız için teşekkür ederim.
Konuyu Okuyanlar: 2 Ziyaretçi