This class uses a high-resolution multi-media timer to track elapsed time. This class is useful for timing user operations, or for bench-marking your applications. Because it uses the Windows multimedia timer, it uses much higher resolution than the built-in VBA/VB6 Timer function.
Procedure Name | Type | Description |
(Declarations) | Declarations | Declarations and private variables for the CMMTimer class. |
ElapsedTime | Property | Get the current Elapsed Time value, scaled by the value of the ScaleFactor property. |
ScaleFactor | Property | Get the current scaling factor. A value of 1000 returns results in portions of seconds. A value of 60000 returns results in portions of minutes. A value of 1 will result in no scaling, so the value will be returned in milliseconds. |
Class_Initialize | Initialize | Set initial values to defaults which may be overridden with property settings. |
ResumeTimer | Method | Resumes a timing operation which was paused with the StopTimer method. If the timer was not started already, it is started automatically. |
StartTimer | Method | Starts a timing operation. The value of ElapsedTime is reset before beginning. |
StopTimer | Method | Stops the timer. Current elapsed time value is not reset. |
GetCurrentElapsedTime | Private | Get the elapsed time since the timer was last started. |
' Example of the CMMTimer class ' ' To try this example, do the following: ' 1. Create a new form ' 2. Add the following controls to the form: ' 3. Add a command button called 'cmdStart' ' 4. Add a command button called 'cmdStop' ' 5. Add a command button called 'cmdResume' ' 6. Paste all the code from this example to the new form's module ' 7. Run the form, test the Stop Watch ' Declarations section code Private mMMTimer As CMMTimer Private Sub cmdStart_Click() Set mMMTimer = New CMMTimer ' Return results in fractions of seconds mMMTimer.ScaleFactor = 1000 Debug.Print "Started: " & Now() mMMTimer.StartTimer End Sub Private Sub cmdStop_Click() mMMTimer.StopTimer Debug.Print "Elapsed: " & mMMTimer.ElapsedTime End Sub Private Sub cmdResume_Click() Debug.Print "Resumed: " & Now() mMMTimer.ResumeTimer End Sub Private Sub Form_Load() Me.cmdStart.Caption = "Start" Me.cmdStop.Caption = "Stop" Me.cmdResume.Caption = "Resume" End Sub
The source code in Total Visual Sourcebook includes modules and classes for Microsoft Access, Visual Basic 6 (VB6), and Visual Basic for Applications (VBA) developers. Easily add this professionally written, tested, and documented royalty-free code into your applications to simplify your application development efforts.
Total Visual SourceBook is written for the needs of a developer using a source code library covering the many challenges you face. Countless developers over the years have told us they learned some or much of their development skills and tricks from our code. You can too!
Supports Access/Office 2016, 2013, 2010 and 2007, and Visual Basic 6.0!
"The code is exactly how I would like to write code and the algorithms used are very efficient and well-documented."
Van T. Dinh, Microsoft MVP