uren van een week optellen

Status
Niet open voor verdere reacties.

dinoshop

Terugkerende gebruiker
Lid geworden
8 sep 2000
Berichten
1.100
ik heb dit gemaakt maar werkt niet goed krijg geen foutmeldingen.
=Som(Val(Format([Zondag]+[Zaterdag]+[Maandag]+[Dinsdag]+[woensdag]+[Donderdag]+[Vrijdag];"hh")))

wat is er verkeerd aan .
 
Ik neem aan dat je in Zondag+Zaterdag etc Uren hebt staan, en dat zijn getallen. Waarom zou je die opmaken als urennotatie?
Code:
=Som(Val([Zondag]+[Zaterdag]+[Maandag]+[Dinsdag]+[woensdag]+[Donderdag]+[Vrijdag]))
 
kijk we werken met een urenkaart
dus zondag tot zaterdag en geven de gewerkte uren daarin.
nu moet acces de uren optellen voor deze week .
van daar dus de vraag
Formulier als invul en dan een rapport per week

hoop dat je het nu begrijpt.

maar vast dank
 
Nee, dat helpt niet. Als ik op Zaterdag 6 uur werk, op Zondag 4 uur, op Maandag 8 en op Dinsdag 8, dan heb ik in totaal 6+4+8+8=26 uur gewerkt. Dat is, hoe je het ook wendt of keert, het getal 26. En dat kun je nooit in een urennotatie gooien.
 
Hallo,
Bezorg mij eens uw access databestand of een voorbeeld, mischien kan ik u helpen

Groetjes,
Marc.
 
Hierbij een opzettje

octa je hebt helemaal gelijk
maar er moet toch iets een mogelijkheid zijn om dit te realiseren.
zal ff opzetje maken.
als dus een rapport draai moet de totaal uren te zien zijn, al heel veel geprobeerd maar lukt net niet

Bekijk bijlage Database27.zip
 
Ik heb naar je db gekeken, en er zitten een paar hele vreemde zaken in.
1: De velden [Zondag] t/m [Zaterdag] en [Totaal tijd] zijn allemaal tekstvelden? Je wilt toch getallen opslaan en er mee rekenen? Dan moeten het toch echt numerieke velden zijn! Wat is het voordeel van tekstveld als type?
2: Het veld [Totaal tijd] is géén berekend veld (kan ook niet, met een tekstveld). Niet dat ik er een voorstander van ben (van berekende velden), maar in dit geval zou het prima kunnen werken.
3. De berekening moet je in een query onder het rapport zetten, waarbij het veld [Totaal tijd] dan de berekening is.
Die berekening zou ik dan zo doen (na het aanpassen van de veldeigenschappen uiteraard)
Code:
Totaal tijd:Nz([Zondag];0)+Nz([Maandag];0)+Nz([Dinsdag];0)+Nz([woensdag];0)+Nz([Donderdag];0)+Nz([Vrijdag];0)+Nz([Zaterdag];0)
En dan heb je netjes de totalen.
 
Ik heb uw database aangepast met vba code ..
U dient hier wel de macro's en vba code te activeren anders werken die niet.
 

Bijlagen

@scotty: een nogal ingewikkelde constructie die ook niet echt geweldig werkt omdat je alleen een herberekening krijgt als je een waarde wijzigt. Dus als je in de tabel de Totaal tijd wijzigt of leegmaakt, klopt je berekening niet meer. En ook voor jou geldt: met een hele simpele berekening in een query ben je er ook!
Code:
Totaaltijd: ([Zondag]+[Maandag]+[Dinsdag]+[woensdag]+[Donderdag]+[Vrijdag]+[Zaterdag])*24
Overigens is het opmaken van de dagvelden als Datum/Tijd natuurlijk ook veel beter als werken met een tekstveld.
 
Hallo Oscafish,

Het is wel niet de bedoeling Totaaltijd te wijzigen of in te voeren best is dan ook het vak Totaaltijd te vergrendelen,
Nadeel van uw query is dat deze het totaal niet een urenstelsel weergeeft, dus een niet echt correcte weergave.
Het is dan ook logisch dat in de volledige rij het urenstelsel wordt gebruikt.

gr
Marc.
 
Dat is niet logisch, omdat het urenstelsel een 24-uren systeem is, en een werkweek daar al gauw overheen gaat. Rekenen met uren doe je door ze te vertalen naar gehele getallen, dus door de tijd met 24 te vermenigvuldigen (doe je zelf ook). Het is niet nodig om de uitkomst daarna terug te zetten naar een tijdnotatie. Die Access overigens ook niet kent.
Het is een iets ander verhaal als TS de werktijden opslaat, met per dag begin- en eindtijd. Dan reken je per dag automatisch al de gewerkte tijd uit in Tijdnotatie. Maar daar is hier geen sprake van. Overigens zie je ook in dat geval dat de totaalberekening altijd wordt omgezet naar normale getalnotatie.
Het is wel niet de bedoeling Totaaltijd te wijzigen of in te voeren best is dan ook het vak Totaaltijd te vergrendelen,
We hebben het over een database, waarin je gegevens opslaat die identificeerbaar en quantiseerbaar zijn. Een berekening is dat niet, want is een afhankelijk gegeven. En die sla je, zeker als ze zijn gebaseerd op redelijk vaste gegevens zoals werkuren, niet op. Het veld [Totaal Tijd] moet dus gewoon weg uit de tabel. De berekening doe je altijd middels een query. Heeft iemand toevallig een keer een typfout gemaakt (en je geeft zelf aan dat zoiets wel niet de bedoeling is, maar ja, we blijven mensen) dan moet je in de tabel een waarde kunnen veranderen, en dan moet het eindresultaat nog steeds kloppen. Ergo: een query is de juiste oplossing :).
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan