Tijden optellen in Access

Status
Niet open voor verdere reacties.

De Vrije Vogel

Gebruiker
Lid geworden
8 apr 2006
Berichten
95
Wie kan mij helpen?
Ik heb al verschillende boeken nagezocht en op internet gesurfd, helaas nog steeds niet met een bevredigend resultaat.
Ik heb in Access een query gemaakt, welke de tijden laat zien, wat iemand per dag heeft gewerkt. Dit werkt prima.
Hoe kan ik deze uren:minuten optellen, zodat ik een week of een maandresultaat te zien krijg per medewerker. Het probleem zijn de uren boven de 24:00 uur.
Op dit moment ga ik van Access naar Excel om daar te uren te berekenen. Dit is mogelijk, door aldaar het Formaat Cel aan te passen naar 37:30:55.
Alvast bedankt.
 
De Vrije Vogel zei:
Wie kan mij helpen?
Ik heb al verschillende boeken nagezocht en op internet gesurfd, helaas nog steeds niet met een bevredigend resultaat.
Ik heb in Access een query gemaakt, welke de tijden laat zien, wat iemand per dag heeft gewerkt. Dit werkt prima.
Hoe kan ik deze uren:minuten optellen, zodat ik een week of een maandresultaat te zien krijg per medewerker. Het probleem zijn de uren boven de 24:00 uur.
Op dit moment ga ik van Access naar Excel om daar te uren te berekenen. Dit is mogelijk, door aldaar het Formaat Cel aan te passen naar 37:30:55.
Alvast bedankt.

Zo zou dit moeten lukken.Maar in een query heb ik nog niet getest. Wel in een formulier.

Uren: Som(Val(Format([Eindtijd]-[Begintijd];"hh")))
Min: Som(Val(Format([Eindtijd]-[Begintijd];"nn")))

Uiteindelijk kan het totaal worden berekend door:

=LTrim(Str(Int([Uren]+[Min]/60+0,0001))) & ":" & Right("00" & LTrim(Str([Min] Mod 60));2)
 
vanzwam zei:
Zo zou dit moeten lukken.Maar in een query heb ik nog niet getest. Wel in een formulier.

Uren: Som(Val(Format([Eindtijd]-[Begintijd];"hh")))
Min: Som(Val(Format([Eindtijd]-[Begintijd];"nn")))

Uiteindelijk kan het totaal worden berekend door:

=LTrim(Str(Int([Uren]+[Min]/60+0,0001))) & ":" & Right("00" & LTrim(Str([Min] Mod 60));2)
 
Rudi.
Ik ga het proberen, ondanks dat ik geen ervaring heb met expressies in formulieren, wel in queries. Misschien heb je nog tips, waar ik wat in dien te vullen.
groeten en bedankt,
Matt
 
De Vrije Vogel zei:
Rudi.
Ik ga het proberen, ondanks dat ik geen ervaring heb met expressies in formulieren, wel in queries. Misschien heb je nog tips, waar ik wat in dien te vullen.
groeten en bedankt,
Matt

In de query kan je bovenste formules, zoals ze nu getoond worden, inzetten, Je kan ook proberen, in je query ook bvb totaal te zetten, bvb. Totaal:LTrim(Str(Int([Uren]+[Min]/60+0,0001))) & ":" & Right("00" & LTrim(Str([Min] Mod 60));2). Maar ik weet niet dat dit gaat werken. Ik verwerkte het totaal altijd in een rapport. dus -> onafhankelijk veld bijplaatsen en daar bij "gegevens bron" de onderstaande code.
 
Kijk even hier naar is FREEWARE

Time Worked Calculator 2.5
www.geocities.com

Je kan het ook downloaden op www.tucows.com , toets even in het zoekgedeelte CALCULATE in en je komt het vanzelf tegen

gr Hans
 
Laatst bewerkt:
Zo zou dit moeten lukken.Maar in een query heb ik nog niet getest. Wel in een formulier.

Uren: Som(Val(Format([Eindtijd]-[Begintijd];"hh")))
Min: Som(Val(Format([Eindtijd]-[Begintijd];"nn")))

Uiteindelijk kan het totaal worden berekend door:

=LTrim(Str(Int([Uren]+[Min]/60+0,0001))) & ":" & Right("00" & LTrim(Str([Min] Mod 60));2)

dit probleem heb ook nog steeds maar ik snap niet waar je de code's moet invullen, kun je nog meer uit te leggen hoe dit gedaan moet worden.
alvast bedankt
 
minuten

ikzelf gebruik altijd de volgende functie om tijden op te tellen:

Code:
Function Ftijdnaarminuten(Stijd As String) As Long
On Error Resume Next
Ftijdnaarminuten = Splitstring(Stijd, ":", 1) * 60
Ftijdnaarminuten = Ftijdnaarminuten + Splitstring(Stijd, ":", 2)
End Function

gewoon minuten van tijden maken en dan optellen, werkt ook in een query supersnel. Het terugrekenen is dan eenvoudig te doen en laat ik aan de creatieve lezer over.



let op, de functie gebruikt ook de functie Splitstring:

Code:
Public Function Splitstring(mytext As Variant, delim As String, groupnum As Long) As String
   ' this is a standard delimiter routine that every developer I know has.
   ' This routine has a million uses. This routine is great for splitting up
   ' data fields, or sending multiple parms to a openargs of a form
   '
   '  Parms are
   '        mytext   - a delimited string
   '        delim    - our delimiter (usually a , or / or a space)
   '        groupnum - which of the delimited values to return
   '
   
Dim startpos As Integer, endpos As Integer
Dim groupptr As Integer, chptr As Integer

chptr = 1
startpos = 0
 For groupptr = 1 To groupnum - 1
    chptr = InStr(chptr, mytext, delim)
    If chptr = 0 Then
       Splitstring = ""
       Exit Function
    Else
       chptr = chptr + 1
    End If

 Next groupptr
startpos = chptr
endpos = InStr(startpos + 1, mytext, delim)
If endpos = 0 Then
   endpos = Len(mytext) + 1
End If

Splitstring = Mid$(mytext, startpos, endpos - startpos)

End Function
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan