Skip to main content

AccessTr.neT


Koşullu Gün Saydırma

Koşullu Gün Saydırma

Çözüldü #1
Ekli dosyamda bulunan sorgular ile izin toplama ve rapor aldığım ay içine denk gelen sürelerin gün sayısını hesap ettiğim GunSayisi() adında bir fonksiyon var. Buraya kadar sıkıntı yok.

Yıl içinde ilk 10 günlük yıllık izne dahil olan izinler hesaba dahil edilmeyecek. Örneğin ay içinde 5+7 günlük iki izin alan kişi için rapor ekranında 2 değerini vermesini istiyorum. bundan sonraki aylar için aldığı her izni. 
Kısacası tbl_izintürlerinde yıllık izne dahil seçeneği olan izinler için ilk 10 günlük izin ücretsiz.

Yardım edecek arkadaşlara teşekkürler.... Yalnız mevcut sistem üzerinden yaparsak çok memnun olurum.

Visual Basic Code
Public Function GunSayisi(Bs, Bt As Date, YilAy As Long) As Long
Dim tarih As Date, SyGn As Long
For tarih = Bs To Bt
If CLng(Format(tarih, "yyyymm")) = YilAy Then SyGn = SyGn + 1
Next tarih
GunSayisi = SyGn
End Function
.rar örnek (1).rar (Dosya Boyutu: 620,18 KB | İndirme Sayısı: 6)
Cevapla
Çözüldü #2
Merhaba,
eklediğiniz örnekte 5+7 gün izne ait veri var mı? 

Belirttiğiniz raporu alabilmem için formdaki alanlara hangi verileri girmem gerekiyor?
Cevapla
Çözüldü #3
Dönüş yapmanızı bekliyoruz.
Cevapla
Çözüldü #4
Arkadaşlar herkese merhaba. Günlerdir yapamadığım bir hesaplama var. Acil olduğu için başaramayınca yardım talep ediyorum.

Aşağıdaki fonksiyon ile form üzerinden seçtiğim tarihe göre ay içine düşen izinli gün sayılarını hesap ediyorum. Ancak sonrada mevzuat değişikliği oldu ve yıl içindeki ilk 12 günlük yıllık izinler ücretsiz oldu. Dolayısı ile bu saydırmada onu dışlamam gerekiyor. Bu konuda fikir sunabilecek olan var mı?


Visual Basic Code
Public Function GunSayisi(Bs, Bt As Date, YilAy As Long) As Long
Dim Tarih As Date, SyGn As Long

        For Tarih = Bs To Bt
        If CLng(Format(Tarih, "yyyym")) = YilAy Then SyGn = SyGn + 1
    
    Next Tarih
GunSayisi = SyGn
End Function

Kişiye ait yıl içindeki bütün izinlerin toplamına da aşağıdaki şekilde bakıyorum.....

Visual Basic Code
Tpl = DSum("[İZİN SÜRESİ]", "Tbl_izinler", "[PERSONEL TC]= '" & TC & "'" & " And [AKTİF]=-1" & " And [İZİN BAŞLAMA]>=#01/01/2017#" & " And [İZİN BİTİŞ]<=#31/12/2017#")
.rar örnek_vt.rar (Dosya Boyutu: 620,18 KB | İndirme Sayısı: 9)
Cevapla
#5
Belirli Şarta Göre Veri Dışlama bağlantısındaki konunuza günlerdir dönüş yapmanızı bekliyoruz, siz aynı içerikli yeni konu açıyorsunuz.

Site Kuralları
1-a) Sorununuz ile ilgili konu açtıysanız aynı soru ile ilgili tekrar konu açmayınız. Aynı konuyu tekrar açmışsanız mesaj içerisinde bulunan “Bildir” butonuna tıklayarak yöneticilere bilgi veriniz.

Açılan iki konu birleştirilmiştir.

Eklediğiniz modül, yıl ve ay kriterli toplama yapıyor. 

Mevzuyu siz biliyorsunuz ancak ben malesef anlamadım. Biraz daha detaylı anlatabilir misiniz. GunSayisi fonksiyonunun nasıl çalışmasını istiyorsunuz?
Cevapla
#6
İki konu için kusura bakmayın tamamen unutma kaynaklı yaşandı. 
Mesela şu normalde girilmiş olan izinleri gunsayısı fonksiyonu ile sayıyorum buraya kadar sorun yoktu. Yeni çıkan mevzuatta kişinin yıl içinde aldığı ilk 12 günlük izin süresi ücretsiz oldu. Dolayısıyla benin hazırladığım raporda ilk 12 güne kadar ki izinler görünmesin istiyorum. 

Şöyle.... 

Koşul
Eğer kişinin yıl içinde 12 günden fazla izni varsa 12 günden sonrasını saymaya başlasın. Ancak yıl ay kriterini göz ardı etmeyecek. 

Veya 

Kişinin yıl içindeki izin gün sayısı 12 den küçükse hiçbir sayma yapmasın, 12 den büyük olduğu anda saymaya başlasın. Tabi yine yıl ay kriterini gözardı etmeyecek.
Son Düzenleme: 30/12/2017, 10:56, Düzenleyen: alperalper.
Cevapla

Bir hesap oluşturun veya yorum yapmak için giriş yapın

Yorum yapmak için üye olmanız gerekiyor

ya da