MS-Access中的倒计时

MS-Access中的倒计时,ms-access,vba,Ms Access,Vba,我正在创建一个Access DB,它需要通过宏每隔300秒自动刷新一次。该表单包含两个文本框,称为: 1) 刷新间隔(此处可更改间隔) 2) 计数器(此字段应显示倒计时) 打开数据库时,宏(M_RUN ALL MACROS)应第一次运行。 完成后,需要开始倒计时。 一旦达到0,宏(M_RUN ALL MACROS)应再次运行。 一旦完成倒计时,应在300秒时再次重新开始,并重复该过程。 如果更改了字段刷新间隔,则倒计时应从该数字开始 如果您在检查web时发现了多个提示,但没有设法将这些提示安装到

我正在创建一个Access DB,它需要通过宏每隔300秒自动刷新一次。该表单包含两个文本框,称为: 1) 刷新间隔(此处可更改间隔) 2) 计数器(此字段应显示倒计时)

打开数据库时,宏(M_RUN ALL MACROS)应第一次运行。 完成后,需要开始倒计时。 一旦达到0,宏(M_RUN ALL MACROS)应再次运行。 一旦完成倒计时,应在300秒时再次重新开始,并重复该过程。 如果更改了字段刷新间隔,则倒计时应从该数字开始

如果您在检查web时发现了多个提示,但没有设法将这些提示安装到一个工件上。
谁能提供帮助?

此响应假定您能够获取用户关于计时器事件的输入。我建议您将计时器事件设置为希望倒计时计时器刷新的频率。使用公共变量,您可以保留已通过的时间间隔的运行总和,当累计时间超过刷新间隔时,运行宏并重置公共变量,以跟踪累计时间总和。我已将刷新率设置为1秒,但这取决于您正在执行的操作,对于试图与其他表单交互的用户来说可能非常讨厌

基本上,您在这里要做的是创建一个
Form_Load
事件,以设置计时器间隔(默认为1秒(1000毫秒),并设置在运行宏之前要从中倒计时的总秒数

此外,如果用户决定更改刷新间隔,则会在您的
刷新间隔
文本框上运行
AfterUpdate
事件

最后是一个
Form_Timer
事件,它监视过去的时间,并在累积时间超过
刷新间隔时运行宏并重置计时器

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事件。Microsoft的官方页面很糟糕,该页面至少给出了一个工作示例:让计时器以5分钟的间隔工作。但是我希望在表单中显示倒计时。这就是为什么我创建了两个文本框来显示它并调整间隔时间ted(需要时)。