繁体   English   中英

SQL 链接表可以插入不能删除运行时 3086

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

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

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 查询中创建相同的删除查询,它将不起作用。 如果我打开表格并尝试删除该行,它会发出叮当声,但没有弹出错误。 如何添加但不删除?

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

要在链接的 ODBC 表中删除或更新,该表需要具有Primary Key

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM