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

Access窗体AllowEdits=True无法启用编辑,事件选择是否有误?

Access窗体编辑权限问题解决

问题核心原因

用Form_Current事件设置Me.AllowEdits = False本身没错,但该事件的触发时机(每次切换记录、窗体刷新时都会触发)会覆盖你通过按钮设置的AllowEdits = True——哪怕你刚点完按钮切换了记录,Current事件又会把编辑权限重新禁用。此外,可能还存在当前记录未进入编辑模式、窗体记录源不可更新等附加问题。

具体解决方案

  • 用窗体级变量控制状态

    1. 在窗体模块顶部声明一个私有变量,用来标记是否允许编辑:
      Private blnAllowEdit As Boolean
      
    2. 在窗体Load事件里初始化变量:
      Private Sub Form_Load()
          blnAllowEdit = False ' 默认禁用编辑
      End Sub
      
    3. 修改Current事件的代码,根据变量状态设置编辑权限:
      Private Sub Form_Current()
          Me.AllowEdits = blnAllowEdit
      End Sub
      
    4. 编辑按钮的点击事件里更新变量并激活编辑:
      Private Sub cmdAllowEdit_Click()
          blnAllowEdit = True
          Me.AllowEdits = True
          Me.Edit ' 强制当前记录进入编辑模式(绑定窗体适用)
      End Sub
      
  • 替代方案(按需选择)
    如果不需要切换记录时自动禁用编辑,可以把初始禁用逻辑移到Form_Load事件,而非Current事件。这样窗体加载时设置一次Me.AllowEdits = False,按钮修改后状态会保持,直到窗体重新加载。

  • 额外检查项

    • 确认窗体的记录源(表/查询)是可更新的,比如查询中没有聚合函数、没有连接不可更新的数据源;
    • 检查窗体的AllowAdditions、AllowDeletions属性是否限制了编辑操作;
    • 确保当前记录没有被锁定(比如其他用户正在编辑)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 10:53:18