Sekme Denetİmlİ Formda Alt Formdan İzİn TÜrÜne GÖre İzİn Sayisini DÜŞÜrme

Katılım
26 Şubat 2007
Mesajlar
14
Excel Vers. ve Dili
2003 tr
Herkese Selam Ekte GÖnderdİĞİm İzİn Formunda Sekme Denetİmlİ Bİr Formum Var Bİr Sayfasinda Personel Bİlgİlerİ DİĞerİnde İse İzİn Bİlgİlerİ Var. Bunlarla İlgİlİ Olarak;

Soru 1: İzİn SÜrelerİ (bu Yilkİ İznİ Ve GeÇen Yilkİİznİ) Arasindakİ SÜreyİ Bana Toplam İzİn SÜtununa Yazdiracak.

Soru 2: Alt Formda Bulunan İzİn Tarİhlerİnİ KaÇ GÜn Oalarak Verİ Syafasinda İzİn SÜresİ BÖlÜmÜnde GÖsterİp Bu SÜre Toplam İzİn SÜtunundan Çikrilarak Kalan İzİn Sayisini Verecek. Ve Bu Her İzİn GİrİŞİnde Kalan İzİn SÜresİ Azalacak. Yalinizca Bu AÇilan Kutu Olan Senelİk İzİn Sayisindan DÜŞecek. DİĞeer İzİn TÜrÜ GİrİldİĞİnde Kalan İzİn Sayisi DÜŞmeyecek.

Bu Şekİlde DÜzenleme Yapabİlİrmİsİnİz. Epeydİr Uğraşiyorum İŞİn İÇİnden Çikamadim...Şİmdİden TeŞekkÜr Ederİmmmm...
 
Katılım
22 Ocak 2007
Mesajlar
815
Excel Vers. ve Dili
2003
Dsum olayına bir el atalım herkes öğrensin

öncelikle senin izin tablonda bir sürü gerekesiz alan vardı onları sildim korkma işe yarar bölümler kaldı birde yıl diye bir alan ekledim tablona yılları ayırmak için sonra iki tane sorgu yaptın İZİNA ve İZİNE diye ilk sorgu içinde olduğumuz yılı ayırmak için ikincisi ise geçen yılı ayırmak için sorguların yıl alanının ölçüt kısmı Year(Date()) ve Year(Date())-1 olduğu için sistem tarihi ile ilgili diyelim sen birinin on yıl önceki izinine bakacan o zaman sitemin tarihini 10 yıl geriye getirdiğin zaman o kişinin 10 yıl önceki izinlerini görebileceksin birde sizin prosedürlerinizi bilmiyorum ama bizde devlet memurları 10 yıla kadar 20 gün 10 yıldan sonra 30 gün yıllık izin kullanırlar birde mazeret izni 10 gündür yıllık ve bir sonraki yıla devretmez diğer izinlerin limiti yoktur rapor sağlık gibi fakat onlardada belirli bir sayıdan sonra heyet raporu istendiğinden belki süre aşımı olduğunda uyarı verilebilirdi ama ben asıl sorun olan yıllık ve mazeret izinine yoğunlaştığımdan işin o kısmını başka arkadaşlara bıraktım neyse biz kendi yaptığımıza dönelim nerde kalmıştık 20 gün ve 30 gün diyorduk elimizde kesin bir sayı olması gerkiyordu ki toplamlardan düşelim bu nedenden dolayı kşinin İZİNA sorgusundaki yıllık izin toplamını formdaki sicil noyu baz alarak[SİCİLİ] = Formlar![İZİNLER]![SİCİLİ]") toplar ve bizim şu meşhur yaş kodu ile kişinin ilk göreve başlama tarihini kontrol ederek 10 yıl altında olanlarını yıllık iznini 20 günden 10 yıl üstünü 30 günden düşerek kalanlarını formda Metin15 yazar geçmiş yıl ise yine aynı mantıkla yalnız geçen yıl olduğu için 1 eksiğiyle kontrol edilerek Metin11 e yazılır Metin13 ise bu yıl kullandığı izin toplamı gelir bu arada Dsum olayınada bir göz atalım Dsum bir tablo yada sorguda bulunan bir stunun değerlerini toplamaya yarayan bir ifadedir kullanımı gayet basittir
DSum("[toplanacakstun]", "[tabloyadasorguadı]", "[süzmekiçinkullanılacakalantablodayadasorguda] = 'tırnakiçinde yazlırsa sabit olaraksüzer bizim yaptığımızgbi YILLIK'AND [tbloyadasorgudaekolaraksüzülecekalan] = Formlar![İZİNLER]![SİCİLİ]")
formdan belirli bir kritere bakma biz izinler formundaki sicili alanına bakarak diyelim İZİNA sorgusunda 1456 sicil nolu kişinin İzintürü alanında YILLIK olan İZİNSÜRES ni topladık
bir başka yerde bu topladığımızı 30- diyerek 30 dan çıkardık ikinci olarak yaş kodunu nasıl kullandığımız If Age([İLKGÖRBASTAR]) > 10 Then kodunu kullanarak ilk göreve başlama tarihi itibariyle 10 yılını doldurmuş ise dedik

Function İZİNHESAP()
If (Age([İLKGÖRBASTAR]) - 1) > 10 Then
Metin11 = 30 - DSum("[İZİNSÜRESİ]", "[İZİNE]", "[İZİNTÜRÜ] = 'SENELİK'AND [SİCİLİ] = Formlar![İZİNLER]![SİCİLİ]")
End If
If (Age([İLKGÖRBASTAR]) - 1) < 10 Then
Metin11 = 20 - DSum("[İZİNSÜRESİ]", "[İZİNE]", "[İZİNTÜRÜ] = 'SENELİK'AND [SİCİLİ] = Formlar![İZİNLER]![SİCİLİ]")
End If
If Age([İLKGÖRBASTAR]) > 10 Then
Metin15 = 30 - DSum("[İZİNSÜRESİ]", "[İZİNA]", "[İZİNTÜRÜ] = 'SENELİK'AND [SİCİLİ] = Formlar![İZİNLER]![SİCİLİ]")
End If
If Age([İLKGÖRBASTAR]) < 10 Then
Metin15 = 20 - DSum("[İZİNSÜRESİ]", "[İZİNA]", "[İZİNTÜRÜ] = 'SENELİK'AND [SİCİLİ] = Formlar![İZİNLER]![SİCİLİ]")
End If
Metin13.Value = DSum("[İZİNSÜRESİ]", "[İZİNA]", "[İZİNTÜRÜ] = 'SENELİK'AND [SİCİLİ] = Formlar![İZİNLER]![SİCİLİ]")
Metin9.Value = 10 - DSum("[İZİNSÜRESİ]", "[İZİNA]", "[İZİNTÜRÜ] = 'MAZERET'AND [SİCİLİ] = Formlar![İZİNLER]![SİCİLİ]")
End Function

Private Sub Form_BeforeUpdate(Cancel As Integer)
Call İZİNHESAP 'bu çağırma ile fonksiyonu çağırıyoruz
End Sub

Private Sub Form_Current()
Call İZİNHESAP
End Sub

bununlada izinler alt formunda dönüştarihi alanına çıkış tarihinin üzerine izin süresini ekliyoruz ayrıca süzmelerde yardım edecek yılı alanına ise çıkış tarihinin yıl kısmını yazdırıyoruz
Private Sub Metin4_AfterUpdate()
Call sürehesap
End Sub
Function sürehesap()
İZİNDENDÖNÜŞTARİHİ.Value = İZNEÇIKIŞTARİHİ.Value + İZİNSÜRESİ
YILI.Value = Year(İZNEÇIKIŞTARİHİ)
End Function

eğer kalanlarda -5 gibi bir ibare görürseniz kişi yıllık izin yada mazeret izinini fazladan kullnmış olur tabi kod ile bunlara izin verilmeyebilirdi ama sanırım arkadaş bira ileri götürünce programını kendisi yada gerekirse biz yaparız

umarım işinize yarar
 
Katılım
26 Şubat 2007
Mesajlar
14
Excel Vers. ve Dili
2003 tr
gülsüm hanım verdiğiniz cevap için teşekkür ederim. Bir nebze istediğim gibi oldu ama bende bir devlet kurumunda memur olarak çalışıyorum. Mesela çalıştığım yere yeni personel geldiği zaman bu kişinin evvelki sene izni 15 diyelim. Bu seneden 30 günlük izni var ve toplamda 45 gün izni var. Sizin yaptığınıza göre ilk memuriyete başlayanlar için ideal. Ama bizim kurum devamlı surette yer değiştirmeye müsait olduğu için bu bana fazla gelir.

Benim istediğim basit bir yöntemdi. Buna benzer bir örneği kurum arkadaşların yaptığı vardı ama kendime uyarlayamadım. o yüzden bu şekilde yapmak zorunda kaldım. Bana sadece gelen personele doldurttuğum bilgi formunda geçen yıldan kalan izin sayısı ve bu yıl izin sayısı bölümü var. ve izin ayı sütunu.

Buna göre izin sayılarına elle giriş yapacağım. Ve bana bir sütunda toplamını verecek. Ve bu personel her izne ayrılışında başka bir metin kutusunda (kalan izin) ayrıldığı süre kadar izin sayısı düşecek.

Sizinki gibi fazla detaya bence gerek yok. yukarıdaki örneğe uygun tekrar yapabilirseniz sevinirim.
 
Katılım
22 Ocak 2007
Mesajlar
815
Excel Vers. ve Dili
2003
e be karde&#351;im biz hangi tarihteyiz 20.06.2007 sen kay&#305;ta yeni gelen personele diyelim maksat ge&#231;en y&#305;ldan kalan&#305;n&#305; programa tan&#305;tmakya o nedenden dolay&#305; &#246;ylesine 15.02.2006 tarihine 9 g&#252;n girdin mesela sen formu bir daha a&#231;y&#305;&#287;&#305;nda 2006 ya girdi&#287;in kayd&#305; g&#246;rmezsin ama o ge&#231;mi&#351; y&#305;ldan izin kullanm&#305;&#351; say&#305;l&#305;r adam diyelim 9 y&#305;ll&#305;k b&#246;ylece ge&#231;en y&#305;ldan kalan izni otomotikmen 11 g&#252;n olarak forma gelir bunu formun mant&#305;&#287;&#305;na bak&#305;nca anlaman laz&#305;md&#305;
ben sana her &#351;eyi otomotik hesaplayan bir program yap&#305;yorum sense ben b&#252;t&#252;n bilgileri elle girecem bir tek akutusu=(bkutusu+ckutusu)-dkutusu yaps&#305;n yeter diyorsun sen galiba yapt&#305;&#287;&#305;m program&#305;n mant&#305;&#287;&#305;n&#305; anlamad&#305;n program o y&#305;l &#231;&#305;k&#305;lan izinleri toplar i&#231;inden y&#305;ll&#305;k izinleri ay&#305;r&#305;r toplar ve e&#287;er adam 10 y&#305;ldan b&#252;y&#252;kse 30 dan d&#252;&#351;er sana o y&#305;lki kalan iznini verir e&#287;er ge&#231;en y&#305;ldan kalan izni varsaki onuda program kontrol eder ve kalan&#305; yazar sonrada iki kalan&#305; toplar ve ka&#231; g&#252;n daha kullanabilece&#287;ini sana s&#246;yler sen bir tek izine &#231;&#305;kt&#305;&#287;&#305; tarihi izin t&#252;r&#252;n&#252; ve kullanaca&#287;&#305; izin g&#252;n&#252;n&#252; yazacan di&#287;er b&#252;t&#252;n i&#351;lemleri program kendi yapar yok ben ge&#231;en y&#305;l&#305; yazay&#305;m bu y&#305;l&#305;da bilgisayarda hesap maki&#351;nesi var ondan &#231;&#305;kar&#305;r&#305;m ne varki dersen senin program &#246;nceki halinden 1 ad&#305;m ileri gidemez senin be&#287;enmedi&#287;in programa ben ka&#231; saat u&#287;ra&#351;t&#305;m bilyormusun tam 5,5 saat bence o program&#305; iyi incele bundan sonra ben bu program&#305;n daha ileri nas&#305;l g&#246;t&#252;r&#252;l&#252;r a&#351;amas&#305;nda yard&#305;m ederim geriye gidi&#351; olmaz yukarda tane tane anlatt&#305;m benden ba&#351;kada b&#246;yle tane tane anlatan bulamazs&#305;n ben yapt&#305;m koydum bak bilyorsan anlars&#305;n derler
 
Son düzenleme:
Katılım
26 Şubat 2007
Mesajlar
14
Excel Vers. ve Dili
2003 tr
g&#252;ls&#252;m han&#305;m kusura bakmay&#305;n tam olarak yapamam&#305;&#351;t&#305;m o y&#252;zden o &#351;ekilde yazd&#305;m. ama &#351;imdi mant&#305;&#287;&#305; anlad&#305;m. ve sorunu &#231;&#246;zd&#252;m her&#351;ey i&#231;in te&#351;ekk&#252;r ederim
 
Katılım
30 Haziran 2008
Mesajlar
10
Excel Vers. ve Dili
Excel 2003
te&#351;ekk&#252;rler....
 
Üst