User Idle Time Form (2nd post)

W

WestWingFan

Sorry, my computer cannot find my original post on this. So, here goes again.

I have a form to detect user idle time - adopted from 'from
http://support.microsoft.com/?id=210297. It works just fine. My only problem
is that I have users that are in one form and often using the same control
for more than 20 minutes. The record should be changing. I tried to adapt the
code (below) to set a bookmark on the record, in the same way it is setting
the "active" form. To no avail. Any ideas?

Thanks in advance!


Private Sub Form_Timer()
' IDLEMINUTES determines how much idle time to wait for before
' running the IdleTimeDetected subroutine.
Const IDLEMINUTES = 20

Static PrevControlName As String
Static PrevFormName As String
Static ExpiredTime

Dim ActiveFormName As String
Dim ActiveControlName As String
Dim ExpiredMinutes

On Error Resume Next

' Get the active form and control name.

ActiveFormName = Screen.ActiveForm.Name
If Err Then
ActiveFormName = "No Active Form"
Err = 0
End If

ActiveControlName = Screen.ActiveControl.Name
If Err Then
ActiveControlName = "No Active Control"
Err = 0
End If

' Record the current active names and reset ExpiredTime if:
' 1. They have not been recorded yet (code is running
' for the first time).
' 2. The previous names are different than the current ones
' (the user has done something different during the timer
' interval).
If (PrevControlName = "") Or (PrevFormName = "") _
Or (ActiveFormName <> PrevFormName) _
Or (ActiveControlName <> PrevControlName) Then
PrevControlName = ActiveControlName
PrevFormName = ActiveFormName
ExpiredTime = 0
Else
' ...otherwise the user was idle during the time interval, so
' increment the total expired time.
ExpiredTime = ExpiredTime + Me.TimerInterval
End If

' Does the total expired time exceed the IDLEMINUTES?
ExpiredMinutes = (ExpiredTime / 1000) / 60
If ExpiredMinutes >= IDLEMINUTES Then
' ...if so, then reset the expired time to zero...
ExpiredTime = 0
' ...and call the IdleTimeDetected subroutine.
IdleTimeDetected (ExpiredMinutes)
End If
'from http://support.microsoft.com/?id=210297

End Sub
 
T

Tom van Stiphout

On Fri, 26 Dec 2008 09:33:01 -0800, WestWingFan

I wouldn't use the Bookmark, but the value of the PK field. So to the
static variables add one for the Pk Value, and compare it with the
current value.

-Tom.
Microsoft Access MVP
Sorry, my computer cannot find my original post on this. So, here goes again.

I have a form to detect user idle time - adopted from 'from
http://support.microsoft.com/?id=210297. It works just fine. My only problem
is that I have users that are in one form and often using the same control
for more than 20 minutes. The record should be changing. I tried to adapt the
code (below) to set a bookmark on the record, in the same way it is setting
the "active" form. To no avail. Any ideas?

Thanks in advance!
<clip>
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top