You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MS Access 2016多用户模式下如何避免虚拟条目引发的锁定延迟?

解决方案:直接打开编辑表单添加新记录

核心思路是跳过虚拟条目插入步骤,直接打开编辑表单并进入新增记录模式,彻底消除多用户环境下的锁阻塞问题,同时简化代码逻辑。

修改后的VB代码

Case vbKeyF1                                                                            
' F1 键添加新记录      
' 直接打开编辑表单并进入新增模式
DoCmd.OpenForm "frmSTOKMASTEDIT", DataMode:=acFormAdd

KeyCode = 0
End Select

关键优化说明

  • 移除虚拟条目插入:不再提前插入未完成的空STOCKCODE记录,从根源上避免了多用户场景下的数据库锁冲突和延迟问题。
  • 使用原生新增模式:acFormAdd是Access原生的新增记录模式,表单会直接加载空白新记录,用户填写完成后再保存到数据库,符合多用户并发设计的最佳实践。
  • 延迟列表刷新:将主列表的刷新操作移到编辑表单的保存或关闭事件中,避免不必要的数据库交互,同时确保用户能看到最新数据。

补充:自动刷新主列表的代码

如果需要在用户保存新记录后自动刷新主列表,可在frmSTOKMASTEDIT的VBA代码中添加以下事件处理:

Private Sub Form_AfterUpdate()
    ' 检查主表单是否处于打开状态,防止报错
    If CurrentProject.AllForms("frmSTOKMASTLIST").IsLoaded Then
        [Forms]![frmSTOKMASTLIST]![lst_STOKMASTLIST].Requery
    End If
End Sub

或者在表单关闭时刷新:

Private Sub Form_Close()
    If CurrentProject.AllForms("frmSTOKMASTLIST").IsLoaded Then
        [Forms]![frmSTOKMASTLIST]![lst_STOKMASTLIST].Requery
    End If
End Sub

这种方案既保证了操作流畅性,又彻底解决了多用户下的延迟问题,代码简洁且符合Access的原生设计逻辑。

内容的提问来源于stack exchange,提问作者Techfixes

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 16:20:43