(03/09/2017, 04:52)hakan_s yazdı: (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.
Hakan Bey, sanırım benim gönderdiğim örneği incelemediniz. O örnekte yıl ve ay bazında ve cumartesi ve pazar günlerini ayrı ayrı toplam olarak veren bir sorgu vardı. Sorgu 2'yi çalıştırırsanız istediğiniz şey odur. Sanırım gözünüzden kaçmış.
(03/09/2017, 11:49)mehmetdemiral yazdı: (03/09/2017, 04:52)hakan_s yazdı: (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.
Hakan Bey, sanırım benim gönderdiğim örneği incelemediniz. O örnekte yıl ve ay bazında ve cumartesi ve pazar günlerini ayrı ayrı toplam olarak veren bir sorgu vardı. Sorgu 2'yi çalıştırırsanız istediğiniz şey odur. Sanırım gözünüzden kaçmış.
Mehmet Bey,
Sizin hazırladığınız sorguyu inceledim ancak "Query1" sorgusuna ekleyemedim. Yani sizin sorgunuzda yıl ve ay'ı toplayarak çalıştığı için aldırabiliyoruz, diğer sorguda günlerin yanına "1" olarak gelmekte toplamı gelmemektedir. Mesela "Query1" sorgusunun en sağ kolonuna örnek bir alan ekledim. Bu alanda ay içinde bulunan Pazar günlerinin sayısının toplam olarak gözükmesini istorum. Karmaşık gelmiş olabilir bunun için kusura bakmayın.
Dosya ektedir.
Teşekkürler.
İyi de, her işin tek sorguda halledilmesi gerekmediği gibi bazen böyle bir imkan da olmayabiliyor yani. Önce bazı verileri elemek için bir sorgu hazırlanır, bu sorgunun çıktısına göre de bazı sonuçlar filtrelenebilir. Bunu tek sorguda yapmak neden? Bu bir form ya da raporda görüntülenecekse bir sürü sorgudan sonuç alınır yani. Ben teknik olarak kendimce ve bildiğim kadarıyla doğru bir yoldan ilerlediğimi düşünüyorum. Bu işi yapmak için öyle "Pazartoplamı: Say([Günler])" demek yetmez. Hani bu ifadede "pazar" günü? Kriterin adına pazartoplam yazınca bu iş olmuyor yani :
bilmiyorum, pratik çözümlerle size yardımcı olmak istiyorum. Kolay gelsin.
Merhaba, benim eklediğim kod ile @
mehmetdemiral hocanın eklediği örnek uygulamadaki sorgu doğru çalışıyor.
Yazılan cevaplar sorunuzu çözdü mü acaba?
(13/09/2017, 07:12)ozanakkaya yazdı: Merhaba, benim eklediğim kod ile @mehmetdemiral hocanın eklediği örnek uygulamadaki sorgu doğru çalışıyor.
Yazılan cevaplar sorunuzu çözdü mü acaba?
Çözüldü Ozan Bey,
ilginize teşekkür ederim.