roko 25.02.2011 14:36
Predmet:nočni sati

Imama 4 polja Short Time tipa
1.od _1 Short Tim
2.do_2 Short Tim
3.od_3 Short Tim
4.do_4 Short Tim
moram kalkulirat nočne sate između 1. i 2. ili između 3. i 4. (23 do 6)
može i integer
ima li neko kakvu funkciju

zxz 25.02.2011 14:44
Predmet:Re: nočni sati

Napravis petlju.

For i= odstati do sati
if>1 an <2 then
nocni_sati=NocniSati+1
else
osztalistai=ostalisati+1
endif
nex i
Ako uspijkes postavi proceduru a ako ne uspijes javi se pa cemo zajedno rijesiti.

roko 25.02.2011 15:18
Predmet:Re: nočni sati

zapravo sam mislio kroz query IIF neko riješenje jer access 2010 ima u tabelama Calculated Data Type
pa vrijednost nekog polja odradi tabela . neznam možda i if fukcija radi u tabeli
provav ču pa javim

zxz 25.02.2011 16:52
Predmet:Re: nočni sati

Pa i ovo mozes kroz Query. Napravis proceduru u kojoj su ulazni parametri od_sati i do_sati.
Proceduru pozivas kroz Query.
Nisam ni razmisljao dali moze sa iff ali mislim da nece biti neko dobro rjesenje.

roko 26.02.2011 13:34
Predmet:Re: nočni sati

Može sa iif al razbio glavu

zxz 26.02.2011 14:02
Predmet:Re: nočni sati

Daj upisi par redova ovih kolona sa zapisom da vidimo kako to izgleda.
Vjerovatno su kolone pocetka i kraj rada?

roko 26.02.2011 15:25
Predmet:Re: nočni sati

dakle baza access 2010
1.Pocetak_r_2 Short Time
2.Zavrsetak_r_3 Short Time
1.Pocetak_r_2a Short Time
2.Zavrsetak_r_3a Short Time
Izračun Sati rada ukupno i sati rada noču ukupno integer,
Ukupno_5 Calculated fild i radnoču5a Calculated fild

PreuzmiIzvorni kôd (Text):
  1. IIf([Pocetak_r_2]>[Zavrsetak_r_3];IIf(CDbl(Left([Zavrsetak_r_3];2))>=5;5;0)
  2. +IIf(CDbl(Left([Zavrsetak_r_3];2))=4;4;0)
  3. +IIf(CDbl(Left([Zavrsetak_r_3];2))=3;3;0)
  4. +IIf(CDbl(Left([Zavrsetak_r_3];2))=2;2;0)
  5. +IIf(CDbl(Left([Zavrsetak_r_3];2))=1;1;0);0)
  6. +IIf(CDbl(Left([Pocetak_r_2];2))=22;2;0)
  7. +IIf(CDbl(Left([Pocetak_r_2];2))=23;1;0)
  8. +IIf(CDbl(Left([Pocetak_r_2];2))=0
  9. And
  10. IIf((24-CDbl(Left([Pocetak_r_2];2)))-(24-CDbl(Left([Zavrsetak_r_3];2)))<0;
  11. (24-CDbl(Left([Pocetak_r_2];2)))-(24-CDbl(Left([Zavrsetak_r_3];2)))+24;
  12. (24-CDbl(Left([Pocetak_r_2];2)))-(24-CDbl(Left([Zavrsetak_r_3];2))))>=5;5;0)
  13. +IIf(CDbl(Left([Pocetak_r_2];2))=1;4;0)+IIf(CDbl(Left([Pocetak_r_2];2))=2;3;0)
  14. +IIf(CDbl(Left([Pocetak_r_2];2))=3;2;0)+IIf(CDbl(Left([Pocetak_r_2];2))=4;1;0)
  15. +IIf([Pocetak_r_2]>[Zavrsetak_r_3];IIf(CDbl(Left([Pocetak_r_2];2))<21
  16. And CDbl(Left([Pocetak_r_2];2))>0;2;0);0)
  17. +IIf([Pocetak_r_2a]>[Zavrsetak_r_3a];
  18. IIf(CDbl(Left([Zavrsetak_r_3a];2))>=5;5;0)
  19. +IIf(CDbl(Left([Zavrsetak_r_3a];2))=4;4;0)
  20. +IIf(CDbl(Left([Zavrsetak_r_3a];2))=3;3;0)
  21. +IIf(CDbl(Left([Zavrsetak_r_3a];2))=2;2;0)
  22. +IIf(CDbl(Left([Zavrsetak_r_3a];2))=1;1;0);0)
  23. +IIf(CDbl(Left([Pocetak_r_2a];2))=22;2;0)
  24. +IIf(CDbl(Left([Pocetak_r_2a];2))=23;1;0)
  25. +IIf(CDbl(Left([Pocetak_r_2a];2))=0
  26. And
  27. IIf((24-CDbl(Left([Pocetak_r_2a];2)))-(24-CDbl(Left([Zavrsetak_r_3a];2)))<0;
  28. (24-CDbl(Left([Pocetak_r_2a];2)))-(24-CDbl(Left([Zavrsetak_r_3a];2)))+24;
  29. (24-CDbl(Left([Pocetak_r_2a];2)))-(24-CDbl(Left([Zavrsetak_r_3a];2))))>=5;5;0)
  30. +IIf(CDbl(Left([Pocetak_r_2a];2))=1;4;0)+IIf(CDbl(Left([Pocetak_r_2a];2))=2;3;0)
  31. +IIf(CDbl(Left([Pocetak_r_2a];2))=3;2;0)+IIf(CDbl(Left([Pocetak_r_2a];2))=4;1;0)
  32. +IIf([Pocetak_r_2a]>[Zavrsetak_r_3a];IIf(CDbl(Left([Pocetak_r_2a];2))<21
  33. And CDbl(Left([Pocetak_r_2a];2))>0;2;0);0)
pa ko se snađe
crazy:

zxz 26.02.2011 17:17
Predmet:Re: nočni sati

Au necu ni pokusavati da razumijem.
Reci mi samo jel pocetak rada i krada moze biti manji od cijelog sata hocu reci jel moze biti upisano 22:30 ili 11:25 itd..

roko 26.02.2011 19:36
Predmet:Re: nočni sati

Forma za unos daje samo puni sat 1.30 -1 1.31 2 jedino je problem ,da ima dolazak u ponoč i odlazak u ponoč al takvog uvjeta nema (možd i to rijeÅ¡im jednim poljem) .PokuÅ¡o sam sve kalkulacije koje se mogu izvuči iz ulaza i izlaza ( količina sati , rad u smjenama , rad noču , dvokratni rad , prekovremenni sati )tako da jedno polje može imati i podataka za dva dana recimo (ulaz 19.00 izlaz 07.00 i ulaz 18.00 i izlaz 05.00.) odradi taj "Calculated fild" jer iz jednog reda mogu dobiti informacije koje sam dobijo iz dva reda pa kad imam takvu informaciju za 500 jedinica 18 puta mjesečno puta gdinu dana je 90000 redova manje u jednoj godini. jer zbog pregleda naručitelja kad sam sve te horizontalne kolone trebao poredati u vertikalni pregled (10452 točno za 1 mjesec ) ime prezime pa od 01-31.01 Crosstab 25 sekundi , create TMPtable(iz crostab table) 35 sekundi i sad naručitelj oče on dbl click da ukloni neki unos ili doda + requeri može zapalit cigaru dok se to izvrti . sad sam na pristojnih 7 sekundi .

zxz 27.02.2011 12:42
Predmet:Re: nočni sati

Ako bi htio racunati vise od 24 h da traje radno vrijeme onda bi morao uzeti u obzir datum.
PreuzmiIzvorni kôd (Visual Basic):
  1. Function Sati(V1 As Date, V2 As Date) As Date
  2. Dim Vr As Single
  3.  
  4. If V1 > V2 Then
  5. V2 = V2 + 1
  6. End If
  7. Do While V1 <= V2
  8. If V1 >= "23:00" Or V1 <= "6:00" Then
  9. Vr = Vr + 0.001
  10. End If
  11. V1 = V1 + 0.001
  12. Loop
  13. Sati = Vr
  14. End Function
U Queryu U polje Fields upises:
S: sati([Imepoljavrijemeod];[Imepoljavrijemedo])