Robert Gracie
Subscriptions at servicexp.com
Mon Jun 16 19:15:47 CDT 2003
Ok this is what I have right now, and it "Seems" to work, what do you guys
think?
Robert Gracie
www.servicexp.com
Private Sub cmdCalcTime_Click()
Dim SUX As Date
Dim MOX As Date
Dim TUX As Date
Dim WEX As Date
Dim THX As Date
Dim FRX As Date
Dim SAX As Date
Dim TotalMin As Variant
On Error GoTo HandleErr
SUX = Me.txtSunTotal
MOX = Me.txtMonTotal
TUX = Me.txtTueTotal
WEX = Me.txtWedTotal
THX = Me.txtThurTotal
FRX = Me.txtFriTotal
SAX = Me.txtSatTotal
TotalMin = SUX + MOX + TUX + WEX + THX + FRX + SAX
Me.txtTotalHours = FormatInterval(TotalMin, "H M")
ExitHere:
Exit Sub
' Error handling block added by Error Handler Add-In. DO NOT EDIT this block
of code.
' Automatic error handler last updated at 06-16-2003 20:06:06
'ErrorHandler:$$D=06-16-2003 'ErrorHandler:$$T=20:06:06
HandleErr:
Select Case Err.Number
Case Else
MsgBox "Error " & Err.Number & ": " & Err.Description,
vbCritical, "Form_frmTimeCardDates.cmdCalcTime_Click"
'ErrorHandler:$$N=Form_frmTimeCardDates.cmdCalcTime_Click
'Log Error
Call ErrorRecordSystem(Err.Number, Err.Description, Now,
"Un-Expected Error In Proc; " & "Form_frmTimeCardDates.cmdCalcTime_Click",
CurrentUser) 'ErrorHandler:$$N=Form_frmTimeCardDates.cmdCalcTime_Click
End Select
' End Error handling block.
End Sub
Function FormatInterval(ByVal interval As Variant, Fmt As String)
'
' Formats the difference between 2 dates or sum of 2 times
' to show day as well as hours, minutes, and seconds.
'
' Supports the following formats:
' D H 5 Days 5 Hours
' D H:MM 5 Days 5:15
' D HH:MM 5 Days 05:15
' D H:MM:SS 5 Days 5:15:45
' D HH:MM:SS 5 Days 05:15:45
' H M 125 Hours 15 Minutes
' H:MM 125:15
' H:MM:SS 125:15:45
' M S 7515 Minutes 45 Seconds
'
Dim days As Long, hours As Long, minutes As Long, Seconds As Long
'
' Check for Date or Double
'
If varType(interval) <> 7 And varType(interval) <> 5 Then Exit Function
'
' Parse Days
'
days = Int(interval)
interval = interval - days
If interval > #11:59:59 PM# Then
days = days + 1
interval = 0#
End If
'
' Parse Hours
'
interval = interval * 24
hours = Int(interval)
interval = interval - hours
If interval > 3599# / 3600# Then
hours = hours + 1
interval = 0#
End If
'
' Parse Minutes
'
interval = interval * 60
minutes = Int(interval)
interval = interval - minutes
If interval > 59# / 60# Then
minutes = minutes + 1
interval = 0#
End If
'
' Parse Seconds
'
Seconds = Int(interval * 60 + 0.5)
'
' Normalize
'
If Seconds = 60 Then
minutes = minutes + 1
Seconds = 0
End If
If minutes > 59 Then
hours = hours + 1
minutes = minutes - 60
End If
If hours > 23 Then
days = days + 1
hours = hours - 24
End If
'
' Create format
'
Select Case Fmt
Case "D H"
FormatInterval = days & IIf(days <> 1, " Days ", " Day ") & hours &
IIf(hours <> 1, " Hours", " Hour")
Case "D H:MM"
FormatInterval = days & IIf(days <> 1, " Days ", " Day ") & hours &
":" & Format(minutes, "00")
Case "D HH:MM"
FormatInterval = days & IIf(days <> 1, " Days ", " Day ") &
Format(hours, "00") & ":" & Format(minutes, "00")
Case "D H:MM:SS"
FormatInterval = days & IIf(days <> 1, " Days ", " Day ") & hours &
":" & Format(minutes, "00") & ":" & Format(Seconds, "00")
Case "D HH:MM:SS"
FormatInterval = days & IIf(days <> 1, " Days ", " Day ") &
Format(hours, "00") & ":" & Format(minutes, "00") & ":" & Format(Seconds,
"00")
Case "H M"
hours = hours + days * 24
FormatInterval = hours & IIf(hours <> 1, " Hours ", " Hour ") &
minutes & IIf(minutes <> 1, " Minutes", " Minute")
Case "H:MM"
hours = hours + days * 24
FormatInterval = hours & ":" & Format(minutes, "00")
Case "H:MM:SS"
hours = hours + days * 24
FormatInterval = hours & ":" & Format(minutes, "00") & ":" &
Format(Seconds, "00")
Case "M S"
minutes = minutes + (hours + days * 24) * 60
FormatInterval = minutes & IIf(minutes <> 1, " Minutes ", " Minute ")
& Seconds & IIf(Seconds <> 1, " Seconds", " Second")
Case Else
FormatInterval = Null
End Select
End Function
-----Original Message-----
From: accessd-bounces at databaseadvisors.com
[mailto:accessd-bounces at databaseadvisors.com]On Behalf Of MartyConnelly
Sent: Monday, June 16, 2003 7:57 PM
To: accessd at databaseadvisors.com
Subject: Re: [AccessD] adding Time
How about some variation of this you can use datediff or dateadd functions
Sub diftest()
Dim TheDate As Date
Dim Msg As String
Dim testdate As Date
Dim testtime As Date
testdate = Date + #10:59:00 AM#
Msg = "Minutes from previous: " & Abs(DateDiff("n", Now, testdate))
MsgBox Msg
End Sub
Robert Gracie wrote:
>A2K
>
> I have 7 unbound text boxes that have time amounts listed in HH:MM (8:27)
>format.
>
>How do I go about adding up the time? Everything I try, I get a data
>mismatch error...
>
>
>
>Thanks
>Robert Gracie
>
>
>
>
>
>
>-----Original Message-----
>From: accessd-bounces at databaseadvisors.com
>[mailto:accessd-bounces at databaseadvisors.com]On Behalf Of Charlotte
>Foust
>Sent: Monday, June 16, 2003 6:20 PM
>To: accessd at databaseadvisors.com
>Subject: RE: [AccessD] OpenArgs question
>
>
>And in the report's events, it can't see the OpenArgs string value? Is
>the listbox value a string in the first place? I notice you're
>delimiting it with chr(34)s, but you don't need them if it's not a date
>or numeric value.
>
>Charlotte Foust
>
>-----Original Message-----
>From: Susan Harkins [mailto:harkins at iglou.com]
>Sent: Monday, June 16, 2003 1:51 PM
>To: accessd at databaseadvisors.com
>Subject: Re: [AccessD] OpenArgs question
>
>
>OK, I'm using AXP.
>
>I'm selecting a single item from a list box and trying to pass that
>value (a
>string) to the report via the report's OpenArgs value.
>
>Susan H.
>
>
>
>
>>Susan,
>>
>>I'm getting confused. Where are you trying to recognize it, and where
>>
>>
>
>
>
>>does a form come into the equation? Only A2002 has an OpenArgs
>>argument for reports. Earlier versions didn't have it. We use it in
>>reports without problems, so what are you trying to do that isn't
>>succeeding?
>>
>>Charlotte Foust
>>
>>-----Original Message-----
>>From: Susan Harkins [mailto:harkins at iglou.com]
>>Sent: Monday, June 16, 2003 12:50 PM
>>To: AccessD at databaseadvisors.com
>>Subject: [AccessD] OpenArgs question
>>
>>
>>This should be an easy one. The following event procedure opens a
>>report and passes the list box' value as th OpenArgs setting.
>>
>>Private Sub lstCategories_DblClick(Cancel As Integer)
>> Dim str As String
>> str = Chr(34) & Me.lstCategories.Value & Chr(34)
>> Debug.Print str
>> DoCmd.OpenReport ReportName:="Catalog", _
>> View:=acViewPreview, _
>> OpenArgs:=str
>>End Sub
>>
>>Problem is, I can't get the report to recognize it -- in any report
>>event.
>>
>>Reports!reportname.OpenArgs
>>Me.OpenArgs
>>rpt.OpenArgs
>>
>>I've tried all three in most of the report's events after opening it
>>via the form and the setting isn't making it to the form. Any clue
>>what I'm doing wrong?
>>
>>Susan H.
>>
>>_______________________________________________
>>AccessD mailing list
>>AccessD at databaseadvisors.com
>>http://databaseadvisors.com/mailman/listinfo/accessd
>>Website: http://www.databaseadvisors.com
>>_______________________________________________
>>AccessD mailing list
>>AccessD at databaseadvisors.com
>>http://databaseadvisors.com/mailman/listinfo/accessd
>>Website: http://www.databaseadvisors.com
>>
>>
>>
>>
>
>_______________________________________________
>AccessD mailing list
>AccessD at databaseadvisors.com
>http://databaseadvisors.com/mailman/listinfo/accessd
>Website: http://www.databaseadvisors.com
>_______________________________________________
>AccessD mailing list
>AccessD at databaseadvisors.com
>http://databaseadvisors.com/mailman/listinfo/accessd
>Website: http://www.databaseadvisors.com
>
>
>
>_______________________________________________
>AccessD mailing list
>AccessD at databaseadvisors.com
>http://databaseadvisors.com/mailman/listinfo/accessd
>Website: http://www.databaseadvisors.com
>
>
>
_______________________________________________
AccessD mailing list
AccessD at databaseadvisors.com
http://databaseadvisors.com/mailman/listinfo/accessd
Website: http://www.databaseadvisors.com