2017-03-22 8 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

あなたは一度に1錠から行を削除することができます。 select句に2つのテーブルを指定しています。何を削除する必要がありますか? – Kevin

+0

両方のテーブルのデータは最終的に削除されます。私は一度に1つのテーブルからのみデータを削除することができますと仮定しています。この例では、manhoursテーブルにはTicketsテーブルに関連するレコードが削除されています。 Ticketsテーブルの基準は、どのManhoursレコードを削除すべきかを決定するものです(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))

関連する問題