2017-03-22 110 views
0

我想完成的是让VBA在备份上运行删除查询。这个问题是我的查询(我希望) 我有分离,我想删除记录的选择查询,但是当我试图使它删除查询我得到这个错误:如何根据查询删除记录?

Specify the table containing the records you want to delete.

OR这个错误:

Reserved error (-3211); there is no message for this error.

我的select语句如下:

SELECT Manhours.*, Tickets.Status, Year([Open Date]) 
FROM Manhours INNER JOIN Tickts ON Manhours.TicketID = Tickets.ID 
WHERE (Tickets.Status) = "Closed" AND ((Year([Open Date]))< Year(DATE())-1 
     OR ((Year([Open Date]))= Year(DATE()-1)) 

select语句将调用我需要的记录,但是当我试着让它删除查询它的错误了。

+1

您可以从一个药片一次只能删除行。你在你的select子句中指定了两个表。应该删除什么? – Kevin

+0

两个表的数据最终都会被删除。我假设我一次只能从一个表中删除数据。在这个例子中,manhours表的记录被删除,因为它们与Tickets表相关。 Tickets表中的标准决定了哪些工时记录应该被删除(Manhours.TicketID = Ticket.ID)。我一直在寻找一种方法来做到这一点,如果有更好的方式做到这一点,请让我知道。 –

回答

0

好消息!

我发现我一直在寻找:

DELETE FROM Manhours WHEN EXISTS (SELECT ID FROM Tickets WHERE (Tickets.Status) = "Closed" AND ((Year([Open Date]))< Year(DATE())-1 OR ((Year([Open Date]))= Year(DATE()-1))