SQL已链接Table可插入无法删除运行-时间3086

SQL Linked Table Can Insert Can't Delete Run-Time 3086

我使用 Access VBA 在单个 SQL table 中添加和删除记录,其中包含 2 列 varchar 代码。我是 SQL 服务器数据库上的 dbowner。我为这个 table 添加值的代码有效:

For Each varItm In Me.lstMyAllTypes.ItemsSelected
            AddSQL = "INSERT INTO xyzMyTable ([MyCode1],[MyCode2]) " & _
                     "VALUES ('" & Me.lstMyAllTypes.Column(0, varItm) & "','" & Me.cboType.Column(1) & "');"
            'EXECUTE SQL
            CurrentDb.Execute AddSQL, dbSeeChanges
            'Debug.Print AddSQL
Next varItm

我的删除代码抛出一个 运行 时间错误 3086:

For Each varItm In Me.MylstTypes.ItemsSelected
    RemSQL = "DELETE FROM xyzMyTable " & _
              "WHERE xyzMyTable.MyCode1 = '" & Me.MylstTypes.Column(0, varItm) & _
              "' AND xyzMyTable.MyCode2 = '" & Me.cboType.Column(1) & "'"
            'EXECUTE SQL
            DoCmd.SetWarnings False
            CurrentDb.Execute RemSQL, dbSeeChanges
            DoCmd.SetWarnings True
Next varItm

我调试删除 SQL 字符串,我可以在 SSMS 中 运行 它,但不能在 Access 中。如果我在 Access 查询中创建相同的删除查询,则它不起作用。如果我打开 table 并尝试删除该行,它会发出叮当声,但没有弹出错误。怎么才能增不删?

此 table 在 SQL 服务器中与任何其他 table 没有任何关系,因此参照完整性不会成为问题。

要在链接的 ODBC table 中删除或更新,table 需要有一个 主键

Access 必须识别 PK:在设计视图中打开链接 table,检查 PK 列中是否有“锁”图标。