[ACC] ユーザーのアイドル時間または非アクティブを検出する方法

文書翻訳 文書翻訳
文書番号: 128814 - 対象製品
警告: 基本的なマクロ、コーディング、および相互運用性のスキルが必要です。
すべて展開する | すべて折りたたむ

目次

概要

ここでは、Microsoft Access アプリケーションでユーザー入力が時間の指定した期間検出されない場合に実行されるプロシージャ作成する方法。

この資料は、Visual Basic for Applications や、Microsoft Access 付属のプログラミング ツールによる Microsoft Access アプリケーションの作成に精通しているユーザーを対象としています。 アプリケーションの Visual Basic の詳細については、アプリケーションを構築する」のマニュアルを参照してください。

注: アプリケーション (Microsoft Access 7. 0 で Microsoft Access 97 使用) の呼びます Access バージョン 2. 0。

注: この資料では、サンプル ファイル (Windows 95 バージョン 7. 0 用の Microsoft Access) 用の FrmSampl.exe と FrmSmp97.exe (Access 97) の技法について説明します。 これらのサンプル ファイルの入手方法についてには、次の記事「サポート技術情報」(Microsoft Knowledge Base) を参照してください。
150895ACC95: Microsoft Access のサンプル フォーム ダウンロード センターで利用可能です
175066[ACC97]: Microsoft Access 97 のサンプル フォーム利用可能なダウンロード センターで

詳細

DetectIdleTime フォームを作成する方法

  1. 任意のテーブルやクエリに基づいていない空白フォームを作成し、DetectIdleTime という名前を付けます。
  2. 次のフォーム プロパティを設定します。
    OnTimer/タイマー時": [イベント プロシージャ]
    "TimerInterval/タイマー間隔": 1000年
    注: 設定をどのくらいの頻度 (ミリ秒単位で示します、TimerInterval、アプリケーションの無操作ユーザー状態をチェックします。 1000 の設定は 1 秒を等しくなります。
  3. 次コード OnTimer/タイマー時"プロパティのイベント プロシージャを入力します。

    注 : 次のコード例では、行末尾のアンダースコア (_) は継続行文字として使用されています。 Access Basic でこのコードを再作成した場合には、行末尾のアンダースコア (_) を削除してください。
          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 フォームを非表示するには、次の AutoExec マクロを作成:
   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
				
で Access 2. 0:
   Sub IdleTimeDetected (ExpiredMinutes)
      Application.Quit A_SAVE
   End Sub
				
この手順により、ダイアログ ボックスを表示せずすべてのオブジェクトを保存するアプリケーションを終了します。

関連情報

タイマー イベントの詳細については タイマー イベント のヘルプを検索しています。

プロパティ

文書番号: 128814 - 最終更新日: 2007年1月19日 - リビジョン: 2.3
この資料は以下の製品について記述したものです。
  • Microsoft Access 2.0 Standard Edition
  • Microsoft Access 95 Standard Edition
  • Microsoft Access 97 Standard Edition
キーワード:?
kbhowto kbprogramming kbusage kbmt KB128814 KbMtja
機械翻訳の免責
重要: このサポート技術情報 (以下「KB」) は、翻訳者による翻訳の代わりに、マイクロソフト機械翻訳システムによって翻訳されたものです。マイクロソフトは、お客様に、マイクロソフトが提供している全ての KB を日本語でご利用いただけるように、翻訳者による翻訳 KB に加え機械翻訳 KB も提供しています。しかしながら、機械翻訳の品質は翻訳者による翻訳ほど十分ではありません。誤訳や、文法、言葉使い、その他、たとえば日本語を母国語としない方が日本語を話すときに間違えるようなミスを含んでいる可能性があります。マイクロソフトは、機械翻訳の品質、及び KB の内容の誤訳やお客様が KB を利用されたことによって生じた直接または間接的な問題や損害については、いかなる責任も負わないものとします。マイクロソフトは、機械翻訳システムの改善を継続的に行っています。
英語版 KB:128814
Microsoft Knowledge Base の免責: Microsoft Knowledge Baseに含まれている情報は、いかなる保証もない現状ベースで提供されるものです。Microsoft Corporation及びその関連会社は、市場性および特定の目的への適合性を含めて、明示的にも黙示的にも、一切の保証をいたしません。さらに、Microsoft Corporation及びその関連会社は、本文書に含まれている情報の使用及び使用結果につき、正確性、真実性等、いかなる表明・保証も行ないません。Microsoft Corporation、その関連会社及びこれらの権限ある代理人による口頭または書面による一切の情報提供またはアドバイスは、保証を意味するものではなく、かつ上記免責条項の範囲を狭めるものではありません。Microsoft Corporation、その関連会社 及びこれらの者の供給者は、直接的、間接的、偶発的、結果的損害、逸失利益、懲罰的損害、または特別損害を含む全ての損害に対して、状況のいかんを問わず一切責任を負いません。(Microsoft Corporation、その関連会社 またはこれらの者の供給者がかかる損害の発生可能性を了知している場合を含みます。) 結果的損害または偶発的損害に対する責任の免除または制限を認めていない地域においては、上記制限が適用されない場合があります。なお、本文書においては、文書の体裁上の都合により製品名の表記において商標登録表示、その他の商標表示を省略している場合がありますので、予めご了解ください。
サポート期間が終了した「サポート技術情報」資料に関する免責事項
この資料は、マイクロソフトでサポートされていない製品について記述したものです。そのため、この資料は現状ベースで提供されており、今後更新されることはありません。

フィードバック

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com