我希望从表中删除子主题,条件是它与另一个表中的特定主题相关联。
使用表单中的文本字段选择主题。
我假设我需要INNER JOIN
,但我的删除功能会返回:
"错误3086-无法从指定的表中删除"错误
我的研究表明,如果它是一个只读表,通常就是这种情况,但我可以手动删除表中的条目,所以我也应该有写权限。
我的代码:
'delete all entries from skillsTbl
strDeleteAllSubsFromSkillsTbl = "DELETE TeamSkillsTbl.* " & _
"FROM TeamSkillsTbl, SubTopicTbl " & _
"WHERE (((TeamSkillsTbl.SubTopicName)=[SubTopicTbl].[SubTopicName]) " & _
"AND ((SubTopicTbl.Topic)=[Forms]![frmAdd_Rename_Delete_Topic]![TopicName]));"
代码INNER JOIN
:
'delete all entries from skillsTbl
strDeleteAllSubsFromSkillsTbl = "DELETE TeamSkillsTbl.* " & _
"FROM TeamSkillsTbl INNER JOIN SubTopicTbl ON TeamSkillsTbl.SubTopicName = SubTopicTbl.SubTopicName " & _
"WHERE ([SubTopicTbl].[Topic]=[Forms]![frmAdd_Rename_Delete_Topic]![txtTopicName]);"
我在哪里弄错了?
非常感谢任何帮助!
答案 0 :(得分:0)
请尝试以下方法:
DELETE FROM TeamSkillsTbl
WHERE
TeamSkillsTbl.SubTopicName IN
(
SELECT SubTopicTbl.SubTopicName
FROM SubTopicTbl
WHERE SubTopicTbl.Topic = [Forms]![frmAdd_Rename_Delete_Topic]![TopicName]
)