MS Access 2013 表单显示“记录被锁定以供其他用户编辑”以及由谁

问题描述

用户尝试编辑其他用户当前正在编辑的 MS Access 2013 数据库表单中的记录时,是否可以构建一个可以弹出显示的表单:

  1. “此记录已被其他用户锁定,无法编辑”
  2. 用户名,例如。 “约翰·史密斯”

表单属性中的记录锁定设置为已编辑记录,以防止第二个用户编辑同一记录。但是,如果第二个用户知道该记录已被锁定以进行编辑以及当前正在编辑该记录的用户的姓名,那将是有益的。

我可以构建弹出表单,但是我需要 vba 代码来检测用户是否在记录中,并且需要 vba 代码在弹出表单上显示用户的姓名。

谢谢,

阿尔

解决方法

您可以尝试捕获特定错误,以便您可以控制/自定义向用户显示的消息。下面的代码将捕获错误 3218 并向用户显示带有自定义消息的消息框。您需要将现有的 VBA 命令包装在此错误处理程序中以捕获错误。如果您使用的绑定表单会在用户导航到锁定记录时引发错误,您可以制作一个宏来识别错误并运行这段代码。

On Error GoTo err1:

    '*CODE THAT MIGHT THROW ERROR GOES HERE*

err1:
    Select Case Err.Number
        Case 3218
            If MsgBox("Cannot edit - record is locked by another user.",vbCritical + vbOKOnly,"System Error") = vbOK Then: Exit Sub
        Case Else
            Exit Sub
    End Select

Microsoft 有一个 long list of trappable errors - 因此您可能希望找到特定于您的问题的问题,并使用每个错误编号更新 CASE 语句。

识别锁定记录的特定用户需要更多的工作,并且需要大量的自定义代码。 This site 有可能满足您需求的解决方案。

,

在下面提到的网站 link 中找到了 Access 数据库 10-09.mdb 的 This site