[英]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.