I need a little help here. I put the following code on my main switchboard under the "on timer" event, "timer interval" = 60000. This part works fine.
However notice the last part of the code. what i am trying to do is that if a user has not been active for 1 minute, then a message box will pop up and say you have 5 minutes before access closes. if you choose "cancel" then every thing is reset, otherwise the program will just close out by itself after 5 minutes. the code that i have pops up the message box, but has the "ok" button. when I click on it the program exits. what code do I need between:
__________________________
MsgBox "No user activity detected. This program will shut down automatically in 5 minutes."
Application.Quit acQuitSaveAll
_____________________
Thanks!
Steve
Private Sub Form_Timer()
On Error Resume Next
' IDLEMINUTES determines how much idle time to wait for before running the IdleTimeDetected subroutine
Const IDLEMINUTES = 1
Static PrevControlName As String
Static PrevFormName As String
Static ExpiredTime
Dim ActiveFormName As String
Dim ActiveControlName As String
Dim ExpiredMinutes
' 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
End Sub
Sub IdleTimeDetected(ExpiredMinutes)
Dim Msg As String
MsgBox "No user activity detected. This program will shut down automatically in 5 minutes."
Application.Quit acQuitSaveAll
End Sub
However notice the last part of the code. what i am trying to do is that if a user has not been active for 1 minute, then a message box will pop up and say you have 5 minutes before access closes. if you choose "cancel" then every thing is reset, otherwise the program will just close out by itself after 5 minutes. the code that i have pops up the message box, but has the "ok" button. when I click on it the program exits. what code do I need between:
__________________________
MsgBox "No user activity detected. This program will shut down automatically in 5 minutes."
Application.Quit acQuitSaveAll
_____________________
Thanks!
Steve
Private Sub Form_Timer()
On Error Resume Next
' IDLEMINUTES determines how much idle time to wait for before running the IdleTimeDetected subroutine
Const IDLEMINUTES = 1
Static PrevControlName As String
Static PrevFormName As String
Static ExpiredTime
Dim ActiveFormName As String
Dim ActiveControlName As String
Dim ExpiredMinutes
' 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 = ""
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
End Sub
Sub IdleTimeDetected(ExpiredMinutes)
Dim Msg As String
MsgBox "No user activity detected. This program will shut down automatically in 5 minutes."
Application.Quit acQuitSaveAll
End Sub