私はこれをさまざまな方法で試しましたが、それらすべてで奇妙な結果が得られます。トランザクションのマスター テーブルがあります:に基づいて一時テーブルから新しいトランザクションを検索Transactions
するクエリです。in = in のトランザクションを削除したいのですが。ArchiveDelete
LastModifyDate
ConfirmationNumber
Transactions
ConfirmationNumber
ArchiveDelete
私の最初の試みは簡単でした:
DELETE Transactions.*
FROM Transactions INNER JOIN ArchiveDelete ON Transactions.ConfirmationNumber = ArchiveDelete.ConfirmationNumber;
「指定されたテーブルから削除できませんでした」というエラーが表示されました。ヘルプをクリックしても意味がありません。私はテーブルに対する完全な権利を持っています。エラーを Google で検索しようとしましたが、代わりにこれを実行することをお勧めします。
DELETE Transactions.*
FROM Transactions Where Transactions.ConfirmationNumber in (Select ConfirmationNumber from ArchiveDelete)
しかし、これには永遠に時間がかかり、単純な削除に一日中費やすことはできません。削除する必要があるトランザクションは 183 件だけです。
また、Exists を使用して削除を試みました: How to delete in MS Access when using JOIN's?
DELETE Transactions.*
FROM Transactions
Where Exists(Select 1 from ArchiveDelete Where ArchiveDelete.ConfirmationNumber = Transactions.ConfirmationNumber) = True
しかし、今では、一致する 183 行だけでなく、テーブル内の 47073 行すべてを削除したいと考えています。
私は何を間違っていますか?なぜこれが難しいのですか?