From: John W. Vinson on 18 May 2010 18:10 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 19 May 2010 08:36 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 19 May 2010 10:32 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 19 May 2010 10:56 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 19 May 2010 13:25
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 > > |