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

Runtime Error 3622:dbSeeChanges在VBA代码中的添加位置及原因

问题解决:Runtime Error 3622 修复方案

代码修改位置

在OpenRecordset方法中添加dbSeeChanges参数,修改后的完整代码如下:

Public Sub LogIt(description As String, Optional notes As String = "")
    
    Dim userID As Long
    Dim RecordID As Long
    Dim LeadProvider As Long
    
    Dim db As Database
    Dim rs As Recordset
    userID = Nz(Forms!mainmenuf!UserIDtxt)
    RecordID = Nz(Forms!recordviewertemplatef!RecordID)

    
    Set db = CurrentDb()
    ' 新增dbSeeChanges选项
    Set rs = db.OpenRecordset("logt", dbOpenDynaset, dbSeeChanges)
    

    rs.AddNew
    rs!userID = userID
    rs!RecordID = RecordID
    rs!description = description
    If notes <> "" Then rs!notes = notes
    rs.Update
    rs.Close
    Set rs = Nothing
    Set db = Nothing

End Sub

原因说明

  • 你的SQL Server后端logt表包含identity列(自动递增主键),Access通过VBA操作这类表时,必须显式启用dbSeeChanges选项。
  • 该选项的核心作用是让Access能够读取SQL Server自动生成的identity值,确保新增记录时同步主键信息,避免因无法获取自动生成的ID而触发3622错误。
  • 手动创建记录时Access会自动处理identity列的逻辑,但通过OpenRecordset编程操作时必须显式声明该参数,否则会出现权限/同步类错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 09:22:07