I am looking for a way to use the time interval to automatically shut down a database after a period of inactivity. It is health care related and HIPPA requirements dictate this.
Any thoughts on the code would be appreciated.
And where the code should be inserted- into the main data entry form?
I followed these instructions from Microsoft but not sure where to put this form
Private Sub Form_Timer()
Const IDLEMINUTES = 15
Static PrevControlName As String
Static PrevFormName As String
Static ExpiredTime As Variant
Dim ActiveControlName As String
Dim ActiveFormName As String
Dim ExpiredMinutes As Variant
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
'user was idle during 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
'reset expired time to zero
ExpiredTime = 0
'and call the IdleTimeDetected sub
IdleTimeDetected ExpiredMinutes
End If
End Sub
Sub IdleTimeDetected(ExpiredMinutes As Variant)
Dim Msg As String
Msg = "No user activity detected in the last "
Msg = Msg & ExpiredMinutes & " minutes!"
MsgBox Msg, 48
Application.Quit acSaveYes
End Sub
Any thoughts on the code would be appreciated.
And where the code should be inserted- into the main data entry form?
I followed these instructions from Microsoft but not sure where to put this form
Private Sub Form_Timer()
Const IDLEMINUTES = 15
Static PrevControlName As String
Static PrevFormName As String
Static ExpiredTime As Variant
Dim ActiveControlName As String
Dim ActiveFormName As String
Dim ExpiredMinutes As Variant
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
'user was idle during 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
'reset expired time to zero
ExpiredTime = 0
'and call the IdleTimeDetected sub
IdleTimeDetected ExpiredMinutes
End If
End Sub
Sub IdleTimeDetected(ExpiredMinutes As Variant)
Dim Msg As String
Msg = "No user activity detected in the last "
Msg = Msg & ExpiredMinutes & " minutes!"
MsgBox Msg, 48
Application.Quit acSaveYes
End Sub