本主題說明如何建立一個程式,以在您的 Access 應用程式在一段指定的時間內未偵測到任何使用者輸入時執行。 它牽涉到建立隱藏的表單 DetectIdleTime,以追蹤閒置時間。
請依照下列步驟建立 DetectIdleTime 表單。
建立一個沒有任何基準資料表或查詢的空白表單,將其命名為 DetectIdleTime。
設定下列表單屬性:
注意事項
[!注意事項] TimerInterval 設定指示應用程式檢查使用者無活動的頻率 (以毫秒計)。 設定 1000 等於 1 秒。
屬性 值 OnTimer [Event Procedure] TimerInterval 1000 為 OnTimer 屬性事件程序輸入下列程式碼:
Sub Form_Timer() ' IDLEMINUTES determines how much idle time to wait for before ' running the IdleTimeDetected subroutine. Const IDLEMINUTES = 5 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 End Sub
然後,在表單模組中建立下列程式:
Sub IdleTimeDetected(ExpiredMinutes)
Dim Msg As String
Msg = "No user activity detected in the last "
Msg = Msg & ExpiredMinutes & " minute(s)!"
MsgBox Msg, 48
End Sub
若要在表單開啟時隱藏DetectIdleTime表單,請將OpenForm方法的WindowMode引數設定為acHidden。
支援和意見反應
有關於 Office VBA 或這份文件的問題或意見反應嗎? 如需取得支援服務並提供意見反應的相關指導,請參閱 Office VBA 支援與意見反應。