AccessTr.neT
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)

Sayfalar: 1 2 3 4 5 6 7 8 9 10 11


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?