gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 06:59:03 24 4
gpt4 key购买 nike

我正在运行 MS Access 2007,连接到 MS SQL 2008 R2 服务器。我有一个带有多选框的表单,用于更新所选服务器的多个字段的状态。目前我在多选框中使用 ServerName 字段。问题是可能有多个记录具有相同的服务器名称。所以为了解决这个问题,我想将它从 ServerName 更改为记录号 (ID)。当我这样做时,虽然 VB 给出了错误“错误 3622 - 访问具有 IDENTITY 列的 SQL Server 表时,您必须将 dbSeeChanges 选项与 OpenRecordset 一起使用”。我查看了不同网站上的许多不同帖子,但不知道如何将其实现到我的代码中。当我使用 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 IN(" & Criteria & ")"

Debug.Print strSQL
CurrentDb().Execute strSQL, dbSeeChanges

Else
MsgBox "You must select one or more items in the list box!", _
vbExclamation, "No Selection Made"
Exit Sub
End If
End With
MsgBox "Completed", vbExclamation, "Completed"
End Sub

最佳答案

我有一个与删除语句类似的问题,我想执行它并通过以下方式解决它:

CurrentDb.Execute SqlStr, dbSeeChanges

注意 CurrentDb 后面缺少的 ()

关于sql-server-2008 - 错误 3622 - 访问具有 IDENTITY 列的 SQL Server 表时,必须将 dbSeeChanges 选项与 OpenRecordset 一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20004932/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com