ACC: 如何偵測使用者閒置時間或非使用狀態

重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,而非使用人工翻譯而成。Microsoft 同時提供使用者人工翻譯及機器翻譯兩個版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,機器翻譯的文章可能不盡完美。這些文章中也可能出現拼字、語意或文法上的錯誤,就像外國人在使用本國語言時可能發生的錯誤。Microsoft 不為內容的翻譯錯誤或客戶對該內容的使用所產生的任何錯誤或損害負責。Microsoft也同時將不斷地就機器翻譯軟體進行更新。

按一下這裡查看此文章的英文版本:128814
本文已封存。本文係以「現狀」提供且不會再更新。
中級使用者: 需要基本巨集]、 [程式碼撰寫,] 以及 [交互操作性技巧。
結論
本文將告訴您,如何建立程序,如果您的 Microsoft Access 應用程式不會偵測任何使用者輸入指定的一段時間將會執行。

本文假設您已熟悉使用 Visual Basic 應用程式以及建立 Microsoft Access 應用程式使用程式設計與 Microsoft Access 所提供的工具。如需有關 Visual Basic 應用程式,請參閱 < 建置應用程式"手冊。

注意: 應用程式 (用在 Microsoft Access 7.0 與 Microsoft Access 97) 的 Visual Basic 稱為存取基本 2.0 版中。

注意: 這篇文章說明中範例檔案 FrmSampl.exe (對於 Microsoft Access 在 Windows 95 7.0 版的) 和 FrmSmp97.exe (如 Microsoft Access 97) 示範一種技術。如需有關如何取得這些範例檔案,請參閱下列文件 「 Microsoft 知識庫 」 中的資訊:
150895ACC95: Microsoft Access 範例表單可用在下載中心
175066ACC97: Microsoft Access 97 範例表單可用在下載中心
其他相關資訊

如何建立 DetectIdleTime 表單

  1. 建立不以任何資料表或查詢為基準的空白表單,並命名 DetectIdleTime。
  2. 設定下列表單屬性:
    OnTimer: [事件程序]
    TimerInterval: 1000年
    注意: 設定值是表示頻率 (以毫秒為單位) 的 TimerInterval 應用程式檢查使用者閒置時間。如果設定為 1000年等於 1 秒。
  3. 請輸入下列程式碼 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						
  4. 在表單模組中建立下列的程序:
           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 表單

若要隱藏 DetectIdleTime 表單應用程式開啟時,建立下列的自動執行巨集:
   Macro Name   Action   ---------------------   AutoExec     OpenForm   AutoExec Actions   ----------------------------   OpenForm:      Form Name: DetectIdleTime      View: Form      Filter Name:      Where Condition:      Data Mode: Edit      Window Mode: Hidden				
您可以將程式碼加入至 IdleTimeDetected 程序中,所以如果沒有任何使用者活動 IDLEMINUTES 常值中所指定的時間的長度,程序執行。例如,您可以有下列的事件程序而結束的 Microsoft Access:

在 Microsoft Access 7.0 和 97:
   Sub IdleTimeDetected (ExpiredMinutes)      Application.Quit acSaveYes   End Sub				
在 Microsoft Access 2.0:
   Sub IdleTimeDetected (ExpiredMinutes)      Application.Quit A_SAVE   End Sub				
此程序會導致 Microsoft Access 在結束應用程式不須顯示對話方塊,儲存所有的物件。
参考
如需計時器事件的相關的詳細資訊,搜尋 計時器事件 的 [說明] 索引]。

警告:本文為自動翻譯

內容

文章識別碼:128814 - 最後檢閱時間:12/04/2015 11:14:45 - 修訂: 2.3

Microsoft Access 2.0 Standard Edition, Microsoft Access 95 Standard Edition, Microsoft Access 97 Standard Edition

  • kbnosurvey kbarchive kbmt kbhowto kbprogramming kbusage KB128814 KbMtzh
意見反應