Link to home
Start Free TrialLog in
Avatar of Amine400
Amine400

asked on

Microsoft access time counters

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.
Avatar of Rey Obrero (Capricorn1)
Rey Obrero (Capricorn1)
Flag of United States of America image

<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/
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()
Avatar of Amine400
Amine400

ASKER

The elapsed time should increment every second
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

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.  :)
And what is the code ?
Get the elapsing seconds display working, and I'll work on the conversion code (which is a separate function).
ASKER CERTIFIED SOLUTION
Avatar of Paul Cook-Giles
Paul Cook-Giles
Flag of United States of America image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Thanks