A.D.TEJPAL
adtp at airtelbroadband.in
Wed Dec 6 00:05:18 CST 2006
Doris, The functions are to be placed in a general module in VBA code. Go to VBA editor window (Press Alt + F11). On the editor menu bar, click Insert > Module. In the resulting module, paste both the functions, click the save icon (or press Ctrl + s) and compile by clicking Debug > Compile on the menu bar (Or press Alt, d, l). Come out of VBA editor (Press Alt + q). You can use the functions in queries as well as controls on reports/forms. Much better to use in the query itself. For example, the expression for calculated field showing elapsed time in minutes (as seen in query design grid) will be : ElapsedMinutes: Fn_GetMinutes(StartTime, FinishTime) (StartTime & FinishTime are the names of respective date/time type fields in the table) Similarly, for showing elapsed time formatted as Hrs:mins string, the expression for calculated field (as seen in query design grid) will be : ElapsedTime: Fn_FormatMinutes(Fn_GetMinutes(StartTime, FinishTime)) Caution: As stated earlier, the formatted string (ElapsedTime) is not to be used in any further mathematical calculations. No such problem for ElapsedMinutes. Best wishes, A.D.Tejpal --------------- ----- Original Message ----- From: DorisH3 at aol.com To: accessd at databaseadvisors.com Sent: Wednesday, December 06, 2006 04:06 Subject: Re: [AccessD] Question on hours Hi, Sorry that I am being such a pest but I didn't know where I should put this routine which I assume is Visual Basic. Does it go in a text box control on the report? I definitely need help with this report....it has to show hours and minutes...and then it must sum each volunteers total hours and minutes. Doris Fn_GetMinutes() (Computes time elapsed in minutes) ============================== Function Fn_GetMinutes(ByVal TimeStart As Variant, _ ByVal TimeFinish As Variant) As Single Fn_GetMinutes = 0 ' Default If IsDate(TimeStart) And IsDate(TimeFinish) Then TimeFinish = IIf(TimeFinish >= TimeStart, TimeFinish, _ 1 + TimeFinish) Fn_GetMinutes = (TimeFinish - TimeStart) * 1440 End If End Function ============================== Fn_FormatMinutes() (Formats minutes As Hrs:Mins string) ============================== Function Fn_FormatMinutes(ByVal Minutes _ As Variant) As String Dim Txt As String, Hrs As Long, Mins As Long Txt = "00:00" ' Default If Minutes > 0 Then Hrs = Int(Minutes / 60) Mins = Minutes Mod 60 Txt = Format(Hrs, "00") & ":" & _ Format(Mins, "00") End If ExitPoint: Fn_FormatMinutes = Txt End Function