2014-04-01 3 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 옵션을 사용해야합니다 IDENTITY 열이있는 SQL Server 테이블에 액세스 할 때 OpenRecordset 사용

아이디어가 있습니까?

감사합니다,

마이클

답변

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 

나는 강하게 변수로 하나의 문자를 방지 할 수있는 방법을 권합니다.