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