通用资源访问检测是检测什么_访问中的不活动检测

通用资源访问检测是检测什么

介绍

Access中的许多开发人员都需要能够检测用户何时处于非活动状态一段时间。 如果/在一定时间内未使用系统,要求运行某些程序是很常见的。 示例包括运行操作查询以更新数据,关闭数据库,甚至是一段时间未使用Access本身。

方法

与在网络上可以找到的许多类似方法一样,我的方法是检测并记录当前所选表单的状态并在屏幕上进行控制。 不过,我走得更远,并检测项目中打开的所有表格和报告。 对于用户,尤其是那些主要进行数据输入的用户,在每次完成记录输入时最终会出现完全相同的对象的情况并不少见-因此给代码留下了深刻的印象,该代码仅检查当前选择了哪些对象(表单和控件),检查之间没有任何活动。 因此,检查当前控件中的当前数据也很重要。

以来

Twinnyfo的问题- 不活动检测问题-确保整个检测期间定期运行此过程也很重要。 如果在任何时候暂停检查,那么结果可能会产生误导。
'IdleSince() returns the time of the last detected activity.
'NB. Code must run live (Full speed - Not tracing) to capture data correctly.
Public Function IdleSince(Optional ByVal blnSet As Boolean = False) As Date
    Static strPrevState As String
    Static datPrevious As Date
    Dim strState As String
    Dim objVar As Object 
    On Error Resume Next
    With Screen
        strState = strState & "," & .ActiveDatasheet.NAME
        strState = strState & "," & .ActiveDatasheet.SelTop
        strState = strState & "," & .ActiveDatasheet.SelLeft
        strState = strState & "," & .ActiveForm.NAME
        strState = strState & "," & .ActiveReport.NAME
        strState = strState & "," & .ActiveControl.NAME
        strState = strState & "," & .ActiveControl.Text
    End With
    On Error GoTo 0
    strState = strState & ";Forms"
    For Each objVar In Forms
        strState = strState & "," & objVar.NAME
    Next objVar
    strState = strState & ";Reports"
    For Each objVar In Reports
        strState = strState & "," & objVar.NAME
    Next objVar
    'If we pop up a new form to notify the user then strState will change -
    '  even without human intervention - so we allow for this with blnSet.
    If strState <> strPrevState Then
        strPrevState = strState
        If Not blnSet Then datPrevious = Now()
    End If
    IdleSince = datPrevious
End Function
...
If Now() >= DateAdd("n", 420, IdleSince()) Then ...
代码说明

这是关于检测非活动状态,而不是在找到后如何处理非活动状态,因此参数(blnSet)不太相关。 但是,出于好奇,添加了它是为了使代码能够在屏幕上显示一个表单,以通知用户不活动,并可能警告他们除非有活动,否则系统将在设定的时间内关闭自身。检测到。 显然,显示该表格将导致该程序在正常运行时检测活动,因此提供了blnSet作为替代。

代码块A

第04-05行这些变量会记住先前调用的值。

第09-19行这些记录了Screen必须说的所有内容。 这些行中的某些可能引用未设置的对象-因此,围绕这些行的错误处理。

第20-27行这些行记录了所有可能打开的表单和报告。

第30-33行这些行在必要时保存当前状态。

第34行这将返回上次检测到活动的时间。

代码块A

这就是调用此过程的方式。 在这种情况下,420是您要检查的分钟数。 满足此条件后,您可以运行所需的任何代码,这取决于不活动的时间长度。

结论

尽管此操作无法检测到用户进行的鼠标移动或击键操作,但它确实可以检测到Access会话中几乎所有活动发生的情况。

翻译自: https://bytes.com/topic/access/insights/951897-inactivity-detection-access

通用资源访问检测是检测什么

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值