2014-04-01 84 views
3

我有一个Access 2010数据库是本地的,我已经链接到SQL 2012数据库。但是,我有一个表格插入运行下面的代码的一大亮点纪录:MS访问错误3622 vba

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 - 你必须使用dbSeeChanges选项使用OpenRecordset访问具有IDENTITY列的SQL Server表时

任何想法?

问候,

迈克尔

回答

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 

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