Uren in rapport optellen

Status
Niet open voor verdere reacties.

Ewergreen

Gebruiker
Lid geworden
15 mrt 2008
Berichten
273
Mijn urenregistratie staat bijna op punt. Het enige waar ik nu nog aan dacht, was dat het wel bijzonder leuk zou zijn moest ik op het einde van elke pagina een totaal van het aantal gewerkte uren kunnen krijgen. Dit moet met een soort van wiskundige functie wel werken, maar wiskunde is nooit mijn ding geweest.

Ik gok dat het niet supermoeilijk is en dat, moest ik het echt willen, ik het zelfs per maand zou kunnen doen, i.p.v. per pagina. Nu heb ik één probleem. Mijn mensen leveren papieren bonnen in met daarop hun uren. Nu is het echter mogelijk dat zij meerdere zaken gecombineed hebben. Zo kan het dat een chauffeur twee bonnen binnenbrengt waarbij hij op één bon gestart is om 8u30 en gestopt om 9.30 en waarbij hij op de tweede bon gestart is om 8.45 en gestopt om 9.45. Het zou niet mogen dat er uit de berekening voor deze dag met deze input een uitkomst van twee uur komt i.p.v. de correcte één uur en één kwartier.

Geen idee hoe moeilijk dit is!

Alvast bedankt als iemand me hiermee kan helpen!

UPDATE: In bijlage mijn nieuwste db. Ik heb een aantal dingen aangepast, maar heb de code voor de berekeningen er terug uit gehaald, wegens geen succes.

Ik was aan het proberen om een verschil te berekenen tussen de beginuren onderling om dan tot een resultaat te komen waarmee ik verder kon. Zoals gezegd, zonder succes.
 

Bijlagen

Laatst bewerkt:
Misschien nog een kleine bij-vraag. In mijn rapport zou ik ook graag oplopend per datum sorteren. Iemand enig idee? Want door dit bij de query's aan te passen kom ik nergens.
 
Sortering

Rapporten hebben een eigen sortering, geef daar aan waarop je je gegevens gesorteerd wilt hebben.
 
Sortering is opgelost. Eens ik wist dat ik het niet bij de query moest oplossen, maar bij de rapporten was het snel gedaan.

Mijn wiskundig probleem blijft wel, zo vrees ik. Ik heb nog eens een upload gedaan van de nieuwste versie (met juiste sortering).

Als iemand enkel het wiskundige inzicht heeft om dit te doen, dan wil ik er ook al wel aan proberen te beginnen!
 

Bijlagen

Controle

Misschien is het handig om een controle op de invoer te zetten zodat er geen overlap ingevoerd kan worden.

Voor de berekening van totalen moet je een rapport-voettekst gebruiken, geen pagina-voettekst.
 
Lijkt me inderdaad de beste oplossing te worden. Want ik betwijfel of het mogelijk is om een dergelijke complexe bereking te gaan maken. En dan denk ik vooral aan mijn beperkingen :).

Kan ik met de berekening in de voettekst ook werken als ik voor langere periodes (een maand) ga berekenen? Want ik wil dan enkel op de laatste bladzijde het totaal, niet op elke blz een deeltotaal.

Enige hulp over hoe ik de controle kan ingeven is ook geapprecieerd.
 
Code:
SELECT tblWerknemers.WerknemersID, tblWerkuren.WerkurenDatum, tblWerkuren.WerkurenStart, tblWerkuren.WerkurenEinde, (select MAX(w.WerkurenEinde) FROM tblWerkuren w WHERE w.werknemersID = tblWerkuren.werknemersID AND w.werkurenDatum = tblWerkuren.WerkurenDatum AND w.WerkurenStart <= tblWerkuren.WerkurenEinde) AS ContiguousPeriodEndTime
FROM tblWerknemers INNER JOIN tblWerkuren ON tblWerknemers.WerknemersID = tblWerkuren.WerknemersID
ORDER BY tblWerknemers.WerknemersID, tblWerkuren.WerkurenDatum, tblWerkuren.WerkurenStart;

Dit heb ik van iemand gekregen, maar al sla je mij dood, ik kan er niets mee beginnen :). Ik volg het eerste stuk, maar dan stopt het wel voor mij... . Als iemand hier iets verder mee staat, help mij dan a.u.b., want ik heb al door dat ik dit zelf niet ga oplossen :D
 
Waarom ga je niet werken met de Bonnummers.
Als jou werknemers die gewoon inscannen met een barcode lezer, dan kan je volgens mij een totaal bereking doen.
Starttijd 08:30 einde werk dag 18:00.
Als gewerkte uren dan groter is dan 8 ===> overuren???

Maar is het noodzakelijk dat er een start en eind uur wordt ingeven?
Waarom niet werken met aantal uren besteed aan een bepaalde taak.
 
Het is een klein bedrijf, dus beperkte infrastructuur. Een barcode lezer zit er niet meteen in, al was het maar omdat er een vijftien verschillende bonnen gebruikt worden, afhankelijk van de opdrachtgever.

Bovendien gaat het hier om chauffeurs, die niet altijd meteen hun bons binnen brengen. Vandaar ook de mogelijkheid voor hun om meerdere opdrachten te combineren (als deze op de route liggen).

Het probleem is niet de berekening einduur - beginuur = totale werktijd. het probleem is dat de overlapping bestaat. Een restrictie maken op de ingave bij overlapping is een mogelijkheid, maar iemand met een beetje wiskundig inzicht (wat ik dus mis :rolleyes:) moet toch een formule kunnen schrijven hiervoor?

Ik heb het probleem aan een vriend van mij voorgelegd en die kon het wel in excell doen voor mij, maar ik ben in access bezig. Maar als het in excell kan, moet het hier toch ook lukken?
 
Als beginuur 2 groter is dan beginuur 1 en kleiner is dan einduur 1 en einduur 2 kleiner is dan einduur 1 dan is er sprake van een overlapping en duurt de totale periode van het kleinste beginuur tot het grootste einduur

indien B2 > B1 AND B2 < E1 AND E2 > E1

De logica heb ik ondertussen wel DENK IK... Nu het nog verwerken.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan