From: John W. Vinson on
On Tue, 18 May 2010 14:00:18 -0600, "Bre-x" <cholotron(a)hotmail.com> wrote:

>Hi, Thank you for answering my post
>
>the RoundTime function is not working or I dont know how to use it
>
>Dim the_value As Date
>the_value = "05/18/2010 8:15:01"
>msgbox RoundTime(the_value, 15, True)
>
>this should show 8:30
>
>Rigth?

You're passing it a text string. It's expecting a Date/Time value. Try

the_value = DateValue("05/18/2010 8:15:01")

If it doesn't work (it did for me...) post back with more details. What
happened? No result, wrong result, flames coming out of your monitor?

--

John W. Vinson [MVP]
From: John Spencer on
Replace Punch In and Punch Out with the name of your field or the name of a
variable that contains a DateTime value or a literal DateTime value. Be sure
that you do NOT pass the function a NULL (blank) value. If you do you will
get an error.

Literal example
CDate(Roundto(#8:14:59#,#00:15:00#))

Variable example
Dim dTime as Date
dTime = #8:14:59#
CDate(Roundto(dTime,#00:15:00#))

John Spencer
Access MVP 2002-2005, 2007-2010
The Hilltop Institute
University of Maryland Baltimore County

Bre-x wrote:
> Thank you for answering my post.
>
> I dont understand. What values how to I pass them to the function?
>
> CDate(Roundto([Punch In],#00:15:00#))
>
> punch in is the date?
>
>
>
>
> "John Spencer" <spencer(a)chpdm.edu> wrote in message
> news:uBoytur9KHA.420(a)TK2MSFTNGP02.phx.gbl...
>> Our resident mathematical genius James Fortune recently posted a very
>> clever solution for rounding. His idea can be wrapped in a little
>> function for Access like so:
>>
>> Public Function RoundTo(dblVal As Double _
>> , dblTo As Double _
>> , Optional intUpDown As Integer = -1) As Double
>>
>> ' rounds up by default.
>> ' to round down pass 1 into function as
>> ' optional intUpDown argument.
>> RoundTo = intUpDown * (Int(dblVal / (intUpDown * dblTo))) * dblTo
>>
>> End Function
>>
>> You can use that to round up the time as follows:
>> CDate(Roundto([Punch In],#00:15:00#))
>>
>> And to round down
>> CDate(Roundto([Punch Out],#00:15:00#,1))
>>
>> John Spencer
>> Access MVP 2002-2005, 2007-2010
>> The Hilltop Institute
>> University of Maryland Baltimore County
>>
>> Bre-x wrote:
>>> Hi,
>>>
>>> I am working on a Time Clock.
>>> I need some help to create two rouding functions.
>>>
>>> PUNCH IN TO
>>> between 8:00:01 to 8:14:59 8:15
>>> between 8:15:01 to 8:29:59 8:30
>>> between 8:30:01 to 8:44:59 8:45
>>> between 8:45:01 to 8:59:59 9:00
>>>
>>> PUNCH OUT TO
>>> between 3:00:01 to 3:14:59 3:00
>>> between 3:15:01 to 3:29:59 3:15
>>> between 3:30:01 to 3:44:59 3:30
>>> between 3:45:01 to 3:59:59 3:45
>>>
>>>
>>> Thank you All!!!
>>>
>>> Bre-x
>>>
>>>
>
From: Bre-x on
Hi,

Public Sub temp()
Dim the_value As Date
the_value = DateValue("05/18/2010 8:16:01")
MsgBox RoundTime(the_value, 15, True)
End Sub

The msgbox shows "05/18/2010"
It should show "05/18/2010 8:30"

I must be missing something here!!!



"John W. Vinson" <jvinson(a)STOP_SPAM.WysardOfInfo.com> wrote in message
news:au36v55vsrj43s21hciuv3ksed2b3j3kac(a)4ax.com...
> On Tue, 18 May 2010 14:00:18 -0600, "Bre-x" <cholotron(a)hotmail.com> wrote:
>
>>Hi, Thank you for answering my post
>>
>>the RoundTime function is not working or I dont know how to use it
>>
>>Dim the_value As Date
>>the_value = "05/18/2010 8:15:01"
>>msgbox RoundTime(the_value, 15, True)
>>
>>this should show 8:30
>>
>>Rigth?
>
> You're passing it a text string. It's expecting a Date/Time value. Try
>
> the_value = DateValue("05/18/2010 8:15:01")
>
> If it doesn't work (it did for me...) post back with more details. What
> happened? No result, wrong result, flames coming out of your monitor?
>
> --
>
> John W. Vinson [MVP]


From: Bre-x on
Hi

You are declaring the dTime as a Date Variable
the first variable that the RoundTo Function is expecting is a Double

I am missing something here?





> Literal example
> CDate(Roundto(#8:14:59#,#00:15:00#))
>
> Variable example
> Dim dTime as Date
> dTime = #8:14:59#
> CDate(Roundto(dTime,#00:15:00#))
>

Public Function RoundTo(dblVal As Double _
, dblTo As Double _
, Optional intUpDown As Integer = -1) As Double

' rounds up by default.
' to round down pass 1 into function as
' optional intUpDown argument.
RoundTo = intUpDown * (Int(dblVal / (intUpDown * dblTo))) * dblTo


From: Douglas J. Steele on
Internally, a Date variable is an 8 byte floating point number. In other
words, it's a Double.

--
Doug Steele, Microsoft Access MVP
http://www.AccessMVP.com/DJSteele
(no e-mails, please!)

"Bre-x" <cholotron(a)hotmail.com> wrote in message
news:uF65AO29KHA.3880(a)TK2MSFTNGP04.phx.gbl...
> Hi
>
> You are declaring the dTime as a Date Variable
> the first variable that the RoundTo Function is expecting is a Double
>
> I am missing something here?
>
>
>
>
>
>> Literal example
>> CDate(Roundto(#8:14:59#,#00:15:00#))
>>
>> Variable example
>> Dim dTime as Date
>> dTime = #8:14:59#
>> CDate(Roundto(dTime,#00:15:00#))
>>
>
> Public Function RoundTo(dblVal As Double _
> , dblTo As Double _
> , Optional intUpDown As Integer = -1) As Double
>
> ' rounds up by default.
> ' to round down pass 1 into function as
> ' optional intUpDown argument.
> RoundTo = intUpDown * (Int(dblVal / (intUpDown * dblTo))) * dblTo
>
>