使用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]));
能够删除查询标识的记录。
在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())