![]() |
Giriş Tarihine Göre Eğitim Planlama - Baskı Önizleme +- AccessTr.neT (https://accesstr.net) +-- Forum: Microsoft Access (https://accesstr.net/forum-microsoft-access.html) +--- Forum: Access Cevaplanmış Soruları (https://accesstr.net/forum-access-cevaplanmis-sorulari.html) +--- Konu Başlığı: Giriş Tarihine Göre Eğitim Planlama (/konu-giris-tarihine-gore-egitim-planlama.html) |
Cvp: Giriş Tarihine Göre Eğitim Planlama - accessman - 21/01/2020 evet ama döngüden bahsettim yani her 24 günde bir tekrar eden bir tablo ilgili günü 03.01.2020 çıkarıp farkı mod 24 göre bulduğumuzda tablodan hangi vardiyanın 08:16 olduğunu buluyoruz mesela 03.02.2020 için bulunan MOD24(03.02.2020 - 03.01.20207) = 7 değerine göre çalışan vardiyalar "4d-4a-4b" yani sabahçı olan "4d" oluyor 0.gün --> 4c-4d-4a ........... 5.gün --> 4c-4d-4a 6.gün --> 4d-4a-4b ........... 11.gün --> 4d-4a-4b 12.gün --> 4a-4b-4c ........... 17.gün --> 4a-4b-4c 18.gün --> 4b-4c-4d ........... 23.gün --> 4b-4c-4d 0.gün --> 4c-4d-4a bu tabloya göre MOD24(11.12.2020 - 03.01.20207) = 7 olduğu için 11.12.2020 de çalışan sabahçı vardiya yine "4d" oluyor Cvp: Giriş Tarihine Göre Eğitim Planlama - accessman - 21/01/2020 function arraybul(ilktarih as date, sontarih as date) as Arraylist dim vardiya as string dim liste as Arraylist for ilktarih to sontarih vardiya = tablodanal(mod((tarih - 03.01.2020),24)) liste.add tarih&vardiya next arraybul = liste end function function tablodanal(mod as integer) as String dim result as string if(mod > -1 and mod < 6) then result = "4c" elseif(mod >5 and mod < 12) then result = "4d" elseif(mod >5 and mod < 12) then result = "4a" elseif(mod >5 and mod < 12) then result = "4b" endif Cvp: Giriş Tarihine Göre Eğitim Planlama - berduş - 21/01/2020 Ben anladiklarimi soyleyeyim 1 - personel tablosu : kisi - vardiya - işe giriş tarihi 2 - vardiya tablosu : tarih - vardiya - saat aralığı ( 8-16 gibi) 3 - eğitim tablosu : tarih - kisi Tabloları varsa bu 3 tabloyu tek sorguda birleştirip kriterlerle sadece gerekli kişiler alabilirsiniz personelden : şubat ayında ise başlayanları seçip vardiya tablosuyla birleştirirseniz hangi gun kim çalışıyor bulabilirsiniz ve eğitim tablosunda yer almayanlari kriter olarak belirlerseniz sadece eğitim almamış kişiler kalır , gerisi sadece do while döngüsü ve günü 1 artırma fonksiyonu Günlerin pazar yada salı olması önemli mi Zaten her gün çalışan 3 vardiya var Cvp: Giriş Tarihine Göre Eğitim Planlama - accessman - 21/01/2020 evet eğitim için çünkü eğitimi verecek kişi sadece hafta içi çalışıyor kotamda yer kaldıysa iki tablo ekleyeyim sn.berduş liste tablosunda id, vardiya,işegiriştarihi var vardiya tablosunda modlara göre saat aralığına göre hangi vardiya sabahçı olacak tablosu var ben fonksiyona değer olarak (03.02.2020, 28.02.2020) göndereceğim oda bana hafta içi günlere göre liste verecek mesela 03.02.2020 ahmet hasan ali 04.02.2020 mesut zeynep fadime Cvp: Giriş Tarihine Göre Eğitim Planlama - accessman - 21/01/2020 problemin birinci kısmı ilgili tarihlerde sabahçı olacak personeli bulmak lakin ikinci kısmı var ki işi biraz daha zorlaştırıyor biz şubat ayı içinde gelecek 400 kişiyi bulduk diyelim elimizde 20 gün kutusu var 400 kişi kartı var bu kartları mümkün olduğu kadar kutulara eşit böleceğiz ali kartını 03.02.2020 kutusuna koyabilmek için şartlarımız - şubatta girmiş olmalı(şubatın 1 inde girmiş olabilir 28 inde de girmiş olabilir farketmiyor) - 03.02.2020 de sabahçı vardiya olan "4c" de olmalı - kutu çok dolu olmamalı ali kartı 20 kutudan beşine konulabiliyor diyelim ki elimizde son bir kart kaldı bunu konulabilecek beş kutudan en az dolu olanına koyarız değil mi bunu accesse anlatmamız lazım ki kutular arasında mümkün olduğu kadar eşit bir dağılım olsun Cvp: Giriş Tarihine Göre Eğitim Planlama - berduş - 21/01/2020 eğitim tablosu da yok muydu? |