Microsoft access time counters

Amine400
Amine400 used Ask the Experts™
on
I am using a button in a form to extract 7 reports to 7 pdf files.
I wanna add some counters to my form :
-start time (button click)
-Elapsed time ( a chronometer format 00:00:00:00 hh:mm:ss:00) should refrech every millisecond )
-end time( all pdf files created with success )
if possible , i don't want a sample for download, i want a detailed code by steps.
Comment
Watch Question

Do more with

Expert Office
EXPERT OFFICE® is a registered trademark of EXPERTS EXCHANGE®
Top Expert 2016

Commented:
<i don't want a sample for download, i want a detailed code by steps. >
why not post in gig  https://www.experts-exchange.com/gigs/
Distinguished Expert 2017

Commented:
I would not use a timer to refresh the form.  I would simply update the form after each export. Create the necessary form with fields named as below.

Dim FileNum as Int
FileNum = 0
Me.txtStartTime = Now()
Me.txtFileName = "whatever the first filename is"
Me.txtFileNum =  FileNum + 1
Me.Refresh
"your export code"
Me.txtElapsedTime = DateDiff("ss", Me.txtStartTime, Now())
Me.txtFileName = "whatever second file name id"
Me.txtFileNum =  FileNum + 1
Me.Refresh
"your export code"
....

Me.txtEndTime = Now()

Author

Commented:
The elapsed time should increment every second
Ensure you’re charging the right price for your IT

Do you wonder if your IT business is truly profitable or if you should raise your prices? Learn how to calculate your overhead burden using our free interactive tool and use it to determine the right price for your IT services. Start calculating Now!

John TsioumprisSoftware & Systems Engineer

Commented:
Use the on timer event..with interval 1000 --> 1000ms --> 1s
or use the stopwatch class
You create a class module and you paste the following code

Private mlngStart As Long
Private Declare Function GetTickCount Lib "kernel32" () As Long

Public Sub StartTimer()
    mlngStart = GetTickCount
End Sub

Public Function EndTimer() As Long
    EndTimer = (GetTickCount - mlngStart)
End Function

Open in new window


The code is used like this
Dim sw as StopWatch
Set sw = New StopWatch
sw.StartTimer

Open in new window

Paul Cook-GilesSenior Application Developer

Commented:
1.  Dim a public variable in the form's module:  Public dtStartTime As Date
2.  Drop an unbound text field on the form, named txtTimeDisplay
3.  In your button that generates the PDFs, put    
dtStartTime = Now()

Open in new window

before the output commands  
4.  In the Form_Timer event, put
If dtStartTime > #12:00:00 AM# Then   
   Me.txtTimeDisplay = DateDiff("s", dtStartTime, Now())
   Me.Refresh
End If

Open in new window

5.  In your button that generates the PDFs, put
dtStartTime = #12:00:00 AM#

Open in new window



This will give you an updating display of the number of seconds passing between the two variable population lines.

I can provide code that converts the number of seconds to HH:MM:SS, and/or populates another display field with the elapsed time.  :)

Author

Commented:
And what is the code ?
Paul Cook-GilesSenior Application Developer

Commented:
Get the elapsing seconds display working, and I'll work on the conversion code (which is a separate function).
Senior Application Developer
Commented:
Function that converts the number of seconds into a string formatted HH:MM:SS:

Public Function TimeString(lngSeconds As Long) As String
'Paul Cook-Giles 3/17/2017
Dim lngHours As Long, lngMinutes As Long
   lngHours = Int(lngSeconds / 3600)
   lngMinutes = (Int(lngSeconds / 60)) - (lngHours * 60)
   lngSeconds = Int(lngSeconds Mod 60)

If lngSeconds = 60 Then
    lngMinutes = lngMinutes + 1
    lngSeconds = 0
End If

If lngMinutes = 60 Then
    lngMinutes = 0
    lngHours = lngHours + 1
End If

TimeString = Format(CStr(lngHours), "#####0") & ":" & _
  Format(CStr(lngMinutes), "00") & "." & _
  Format(CStr(lngSeconds), "00")

End Function

Open in new window

Author

Commented:
Thanks

Do more with

Expert Office
Submit tech questions to Ask the Experts™ at any time to receive solutions, advice, and new ideas from leading industry professionals.

Start 7-Day Free Trial