forms - 在 Access 数据库中的窗体上手动重新启动倒数计时器
问题描述
我有以下代码可以自动注销 Access 用户。
大多数工作将在 5 分钟或更短的时间内完成,但我想在计数器下方添加一个手动重置按钮,以便在需要时重新启动计时器。
如果需要,我想强制最终用户手动重新启动计时器。
Option Compare Database
Dim TimeCount As Long
Private Sub Form_Open(Cancel As Integer)
Me.TimerInterval = 1000
End Sub
Private Sub Form_Timer()
TimeCount = TimeCount + 1
Me.txtCounter.Value = 1200 - TimeCount
If TimeCount = 1201 Then
DoCmd.Quit acQuitSaveAll
End If
End Sub
我怎样才能完成这项任务?
解决方案
如果用户处于非活动状态,我有退出 Access 的代码。我知道这不是你要找的,但它可能会帮助你......如果不是,祝你好运!
创建一个名为DetectIdleTime的表单。在将 Window Mode 设置为 Hidden 的情况下加载数据库时打开它。
在 DetectIdletime 属性中的 OnTimer 事件中...
子Form_Timer()
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
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
If (PrevControlName = "") Or (PrevFormName = "") _
Or (ActiveFormName <> PrevFormName) _
Or (ActiveControlName <> PrevControlName) Then
PrevControlName = ActiveControlName
PrevFormName = ActiveFormName
ExpiredTime = 0
Else
ExpiredTime = ExpiredTime + Me.TimerInterval
End If
ExpiredMinutes = (ExpiredTime / 1000) / 60
If ExpiredMinutes >= IDLEMINUTES Then
ExpiredTime = 0
IdleTimeDetected ExpiredMinutes
End If
End Sub
将 DetectIdleTime 表单上的 Timer Interval 事件设置为 1000
现在,如果用户不移动鼠标,Access 将关闭...
推荐阅读
- flutter - Flutter中缓存大小的最大限制
- azure-active-directory - Azure Active Directory 是否适合 Internet 应用程序
- arrays - 如何在 TypeScript 中对对象数组进行排序
- python - 如何调整管道内随机森林分类器中的参数?
- python - 为什么删除字符串和更新数据集的代码不起作用?
- python - Python Tkinter GUI 执行 python 脚本错误
- javascript - 重定向未经身份验证的用户nuxt js
- javascript - Puppeteer 经常在 Twitter 上因超时错误导致 waitForNavigation 失败
- python - 如何使用 dask 旋转一个非常大的数据框?
- css - CSS:选择深度嵌套元素的最佳实践