使用Access 2010中的设计视图创建以下查询。
查询运行并带来正确的记录,但是当尝试运行它以删除记录时,我收到错误消息:
无法从指定表中删除。
我正在尝试删除状态为"I"
或"p"
的记录,并且年份等于存储在另一个表中的年份。
我非常感谢您能提供的任何帮助。
我尝试以不同的方式构建查询,我搜索了与我类似的解决方案。我是Access新手,以前从未使用过SQL。我正在学习
DELETE Tbl_W.*, Tbl_W.Status, Tbl_Year.[Current Year]
FROM Tbl_W, Tbl_Year
WHERE (((Tbl_W.Status)="p" Or (Tbl_W.Status)="i") AND ((Tbl_AGIFYear.[Current Year])=[current year]));
能够删除查询所标识的记录。
答案 0 :(得分:2)
在MS Access中,您一次只能从一个表中删除记录。也不必指定应删除的字段,因为只能删除整个记录。
鉴于以上信息,您的delete
查询可能变为:
delete from tbl_w
where
tbl_w.status in ("i", "p") and
tbl_w.year in (select tbl_year.[current year] from tbl_year)
或者,如果您仅使用tbl_year
提供包含当前年份的记录,则可以通过以下方式使用Year
和Date
函数:
delete from tbl_w
where tbl_w.status in ("i", "p") and tbl_w.year = year(date())