MS Access错误3622 vba

时间:2014-04-01 15:58:55

标签: sql sql-server vba ms-access

我有一个本地的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表时,必须对OpenRecordset使用dbSeeChanges选项

有什么想法吗?

此致

迈克尔

1 个答案:

答案 0 :(得分:3)

错误与其说的完全相同,请尝试:

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

我强烈建议你避免使用单个字母作为变量。