AccessTr.neT

Tam Versiyon: Fonksi̇yon Kullanımı
Şu anda arşiv modunu görüntülemektesiniz. Tam versiyonu görüntülemek için buraya tıklayınız.
Sayfalar: 1 2
Tüm arkadaşlara iyi günler dilerim, Aşağıdaki Yıllık izin hak ediş fonksiyonunu sürekli formda hak ediş sonucunu denetim kutusunda nasıl kullanabilirim. Saygılarımla
'-------------------------------------------------------------------------------------------
Function izin$(giris, dtarih, ctarih)
If ctarih = "" Then
ctarih = Now
Else
ctarih = ctarih
End If

' Kıdem Yılı Hesaplama
a = DateDiff("m", giris, ctarih) ' Ay olarak fark
kidem = Fix(a / 12) ' Tam yılı doldurması için aşağı yuvarladık.

'İşe girdiğindeki yaşı
b = DateDiff("m", dtarih, giris) ' Ay olarak fark
yas = Fix(b / 12) ' Tam yılı doldurması için aşağı yuvarladık.

' Bir yıldan beş yıla kadar (beş yıl dahil) olanlara ondört günden,
' Beş yıldan fazla onbeş yıldan az olanlara yirmi günden,
' Onbeş yıl (dahil) ve daha fazla olanlara yirmialtı günden
' Ancak onsekiz ve daha küçük yaştaki işçilerle elli ve daha yukarı yaştaki işçilere
' verilecek yıllık ücretli izin süresi yirmi günden az olamaz.

' İzin Kidem yılını doldurmayanalar
If kidem = 0 Then
Sonuc = 0
' İzin Kıdem yılını beş yıla kadar olanlar
ElseIf kidem > 0 And kidem <= 5 Then
'İşe girme yaşı 18'den küçük olanlar
If yas > 14 And yas < 18 Then
d = kidem - (18 - yas)
If d < 0 Then
fark = 0
Else
fark = d
End If

Sonuc = kidem * 20 - fark * 6
' İşe girme yaşı 19 ile 44 arasında olanlar
ElseIf yas > 17 And yas < 45 Then
Sonuc = kidem * 14
'İşe girme yaşı 45-48 arasında olanlar
ElseIf yas >= 45 And yas < 49 Then
c = kidem - (49 - yas)
If c < 0 Then
fark = 0
Else
fark = c
End If

Sonuc = kidem * 14 + fark * 6
'İşe girme yaşı 49 dan büyük olanlar
Else
Sonuc = kidem * 20
End If

' İzin kıdem yılı beş yıl ile onbeş yıl olanlar
ElseIf kidem > 5 And kidem < 15 Then

'İşe girme yaşı 18'den küçük olanlar
If yas > 14 And yas < 18 Then
d = 5 - (18 - yas)
If d < 0 Then
fark = 0
Else
fark = d
End If

Sonuc = kidem * 20 - fark * 6
' İşe girme yaşı 19 ile 44 arasında olanlar
ElseIf yas > 17 And yas < 45 Then
Sonuc = kidem * 14 + (kidem - 5) * 6
'İşe girme yaşı 45-48 arasında olanlar
ElseIf yas >= 45 And yas < 49 Then
c = kidem - (49 - yas)
If c < 0 Then
fark = 0
Else
fark = c
End If

Sonuc = kidem * 14 + fark * 6 + (kidem - 5) * 6
'İşe girme yaşı 49 dan büyük olanlar
Else
Sonuc = kidem * 20
End If

' İzin kıdem yılı onbeşyıl ve fazla olanlar
Else

'İşe girme yaşı 18'den küçük olanlar
If yas > 14 And yas < 18 Then
d = 5 - (18 - yas)
If d < 0 Then
fark = 0
Else
fark = d
End If

Sonuc = kidem * 20 - fark * 6 + (kidem - 14) * 6
' İşe girme yaşı 19 ile 44 arasında olanlar
ElseIf yas > 17 And yas < 45 Then
Sonuc = kidem * 14 + (kidem - 5) * 6
'İşe girme yaşı 45-48 arasında olanlar
ElseIf yas >= 45 And yas < 49 Then
c = kidem - (49 - yas)
If c < 0 Then
fark = 0
Else
fark = c
End If

Sonuc = kidem * 14 + fark * 6 + (kidem - 5) * 6 + (kidem - 14) * 6
'İşe girme yaşı 49 dan büyük olanlar
Else
Sonuc = kidem * 20 + (kidem - 14) * 6
End If

End If


izin$ = Sonuc

End Function
Kod:
=izin(giris;dtarih;ctarih)
olarak deneyebilirsiniz
giris;dtarih;ctarih bu değerler yerine formdaki ilgili alan/metin kutusu adı yazılabilir.
(13/01/2023, 12:04)berduş yazdı: [ -> ]
Kod:
=izin(giris;dtarih;ctarih)
olarak deneyebilirsiniz
giris;dtarih;ctarih bu değerler yerine formdaki ilgili alan/metin kutusu adı yazılabilir.


Sayın berduş yardımlarınız için teşekkür ederim Saygılarımla...
Rica ederim
İyi çalışmalar)
Tüm Form üyesi arkadaşlara iyi hafta sonları dilerim. Saygıdeğer arkadaşlar ekte gönderdiğim Vt de yine buradan örnek aldığım "İzinFoksiyon" modülündeki fonksiyonu örnek formuma uygulamaya çalıştım fakat form üyelerinden (Sayın; Berduş) yapılan  yardımlara rağmen yapamadım. Ekteki örneğe uygulanmasında yardımcı olmanızı rica eder şimdiden teşekkür eder saygılarımı sunarım.
açıklamanız yetersiz:
izin fonksiyonu 3 girdi istiyor (giris, DTarih, ctarih) bunlar tabloda/formda hangi alanlara denk geliyor?
ayrıca bu konu aslında diğer konuyla aynı yeni konu açmaya gerek yoktu, orda uygulayamadığınızı belirtip devam edebilirdiniz
Not: dilerim örnek dosya eklemenin neden önemli olduğunu anlamışsınızdır)
Sayfalar: 1 2