Ay İçinde Geçen Cumartesi Ve Pazar Günlerinin Toplamını Bulmak

1 2
03/09/2017, 11:49

mehmetdemiral

(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ış.
04/09/2017, 00:41

hakan_s

(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.
04/09/2017, 03:02

mehmetdemiral

İ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.
09/09/2017, 23:44

hakan_s

(04/09/2017, 03:02)mehmetdemiral yazdı: İ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 : Merhaba Mehmet Bey,
Kusura bakmayın iş yoğunlumdan dolayı ancak cevap yazabiliyorum. Aslında ben bunu daha önce Excel tablosunda yapmıştım. Yapmaya çalıştığım ise ay sonu tahmin raporudur. Ancak access'ten veri tabanına bağlanıp raporu da tablo olarak çektiğim ve ardından filtreleme işlemleri uyguladığım için rapor biraz kasıyordu. Benim size gönderdiğim kalem sayısı çok az, veri tabanında yaklaşık 8-10 bin kalem oluşmaktadır. Bende bu işlemi direkt olarak sorgu üzerinden işlemi hızlandırmak adına böyle bir şey yapmaya çalıştım. Bu yüzden günleri de tek sorguda görmek istemiştim. Excel de hazırlamış olduğum tahmin raporu da ekteki gibidir.

Sorularınıza da şöyle cevap verebilirim.
Yıl içerisinde bulunan her ayın günlerinin sayısını almak gibi, kriter adını bilgi olsun diye o şekilde yazmıştım.

Yıl: 2017, Ay: 9, Pazar Toplamı: 4, Cumartesi Toplamı: 5
Yıl: 2017, Ay: 10, Pazar Toplamı: 5, Cumartesi Toplamı: 4

İlginiz için teşekkür ederim.
13/09/2017, 07:12

ozanakkaya

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?
15/09/2017, 23:33

hakan_s

(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.
1 2