この応答は、タイマーイベントに対してユーザーの入力を取得できることを前提としています。私が提案しているのは、タイマーイベントをカウントダウンタイマーでリフレッシュする頻度に設定することです。パブリック変数を使用すると、経過したインターバルの合計を保持し、その累積時間がリフレッシュ間隔を超えたときにマクロを実行し、累積合計時間を追跡しているパブリック変数をリセットすることができます。私はリフレッシュレートを1秒に設定しましたが、あなたがやっていることによっては、これは他のフォームとやり取りしようとするユーザーにとっては本当に嫌なことがあります。
基本的には、イベントを作成してタイマー間隔(デフォルトは1秒(1000ミリ秒))を設定し、カウントダウンする秒数をマクロが実行されるまで設定します。
また、あなたのREFRESH_INTERVAL
テキストボックスにAfterUpdate
イベントは、ユーザーが更新間隔を変更することを決定した場合に実行される。最後に
時間過去を監視し、累積時間が上回ったら、マクロを実行すると、タイマーがリセットされますForm_Timer
イベントREFRESH_INTERVAL
。
Option Compare Database
Public lTimer As Long
Public lTimeTotal As Long
Private Sub Form_Load()
If IsNull(Me.REFRESH_INTERVAL) Then
Me.TimerInterval = 1000
Me.lTimeTotal = 300000
Else
Me.TimerInterval = Me.REFRESH_INTERVAL * 1000
End If
End Sub
Private Sub Form_Timer()
lTimer = lTimer + Me.TimerInterval
If lTimer >= lTimeTotal Then
DoCmd.RunMacro "M_RUN ALL MACROS"
Me.COUNTER = 0
Me.COUNTER = lTimeTotal/1000 & " Seconds Remaining..."
Else
Me.COUNTER = Int((lTimeTotal - lTimer)/1000) & " Seconds Remaining..."
End If
DoEvents
End Sub
Private Sub REFRESH_INTERVAL_AfterUpdate()
lTimeTotal = Me.REFRESH_INTERVAL * 1000
End Sub
フォームのOnTimerイベントを見たいと思うでしょう。マイクロソフトの公式ページでは、このページは少なくとも実用的な例を提供しています。http://www.blueclaw-db.com/access_event_programming/timer.htm –
5分間隔でオンタイマーを稼動させました。しかし、私はカウントダウンをフォームに表示したい。そのため、2つのテキストボックスを作成して表示し、必要に応じて間隔時間を調整しました。 –