相关疑难解决方法(0)

错误3622 - 访问具有IDENTITY列的SQL Server表时,必须对OpenRecordset使用dbSeeChanges选项

我正在运行MS Access 2007,连接到MS SQL 2008 R2服务器.我有一个带有多选框的表单,我用它来更新所选服务器的多个字段的状态.目前我在多选框中使用ServerName字段.问题是可能有多个具有相同服务器名称的记录.所以为了解决这个问题,我想将它从ServerName更改为记录号(ID).当我这样做虽然VB给出了错误"错误3622 - 您在访问具有IDENTITY列的SQL Server表时必须使用带有OpenRecordset的dbSeeChanges选项".我查看了不同网站上的许多不同帖子,但无法弄清楚如何将其实现到我的代码中.当我使用ServerName时,脚本工作正常,如果我转到SQL服务器并将字段更改为Identity = False,它也可以正常工作.问题是我无法使用自动编号创建新记录.如果我在更新查询中硬编码行号,它也可以完美地工作.问题是我无法对使用数据库的每个人的行号进行硬编码.该问题似乎只与VB有关.以下是我目前的情况.如您所见,我尝试将dbSeeChanges添加到Execute行.

Private Sub btnRoarsStatus_Click()
Dim strSQL As String
Dim Criteria As String
Dim Itm As Variant

With Me.lstServerNames

    If .ItemsSelected.Count > 0 Then
          For Each Itm In .ItemsSelected
              Criteria = Criteria & "," & .ItemData(Itm)
           Next Itm

          ' remove leading comma
           Criteria = Mid(Criteria, 2)

           ' execute the SQL statement
            strSQL = "UPDATE buildsheet SET [Roars Status] = " & Chr(34) & _
            Me.cboRoarsStatus & Chr(34) & " WHERE ID …
Run Code Online (Sandbox Code Playgroud)

vba ms-access-2007 sql-server-2008

4
推荐指数
1
解决办法
1万
查看次数

标签 统计

ms-access-2007 ×1

sql-server-2008 ×1

vba ×1