【问题标题】:MS Access Error 3622 vbaMS 访问错误 3622 vba
【发布时间】:2014-05-12 12:39:10
【问题描述】:

我有一个本地的 Access 2010 数据库,此后我已链接到 SQL 2012 数据库。但是,我有一个表单来插入运行以下代码的高亮记录:

Private Sub Command18_Click()
Dim R As Recordset
Set R = CurrentDb.OpenRecordset("SELECT * FROM [tblJobHead]")
R.AddNew
R![Rep Num] = [Forms]![frmMain]![NavigationSubform].[Form]![RepNum]
R![Item Number] = Me.ItemNumber.Value
R![Description] = Me.Desc.Value
R![EmpID] = [TempVars]![EmpID]
R![Status] = 2
R.Update
R.Close
Set R = Nothing
DoCmd.Save
End Sub

但是,当我单击按钮时,我现在收到错误:

错误 3622 - 在访问具有 IDENTITY 列的 SQL Server 表时,您必须将 dbSeeChanges 选项与 OpenRecordset 一起使用

有什么想法吗?

问候,

迈克尔

【问题讨论】:

    标签: sql sql-server vba ms-access


    【解决方案1】:

    错误和它说的一模一样,试试吧:

    Function GetRecordset(sSQL) As DAO.Recordset
    Dim rdao As DAO.Recordset
    Dim db As Database
    
        Set db = CurrentDb
    
        Set rdao = db.OpenRecordset(sSQL, dbOpenDynaset, _
              dbFailOnError + dbSeeChanges)
    
        If Not rdao.EOF Then
            rdao.MoveLast
            rdao.MoveFirst
        End If
    
        Set GetRecordset = rdao
    
    End Function
    

    我强烈建议您避免将单个字母作为变量。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-09-28
      • 1970-01-01
      • 2013-06-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多