- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ACCESSテーブルのデータの一部を削除)
ACCESSテーブルのデータの一部を削除
このQ&Aのポイント
- ACCESSテーブルのデータの一部を削除する方法について
- 仕訳伝票と仕訳明細のテーブルでリレーションを設定し、仕訳日が削除日以前のデータを削除する方法について
- DoCmd.RunSQLの実行時エラーとその対処方法
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
間違っていたようで失礼いたしました。 以下 念のためバックアップ等をしてから試してください。 仕訳明細の主キーをIDとします。 delete from 仕訳明細 where ID IN (select 仕訳明細.ID from 仕訳明細 LEFT OUTER JOIN 仕訳伝票 ON 仕訳明細.仕訳ID = 仕訳伝票.仕訳ID WHERE 仕訳伝票.仕訳日 <=[削除日]) これでいかがでしょうか?
その他の回答 (1)
- asteroid-b
- ベストアンサー率61% (16/26)
回答No.1
delete FROM 仕訳明細 LEFT JOIN 仕訳伝票 ON 仕訳伝票.仕訳ID = 仕訳明細.仕訳ID where 仕訳伝票.仕訳日<=[削除日] でいかがでしょう?
質問者
補足
ご回答ありがとうございます。 「 '実行時エラー 3128' 削除するレコードを含んだテーブルを指定してください」となりました。 ACCESS2007を使用しています。 今一度よろしくお願いします。
補足
たびたび恐縮です 仕訳明細の主キーは明細IDです。 DoCmd.RunSQL ("delete from 仕訳明細 where 明細ID IN (select 仕訳明細.明細ID from 仕訳明細 LEFT OUTER JOIN 仕訳伝票 ON 仕訳明細.仕訳ID = 仕訳伝票.仕訳ID WHERE 仕訳伝票.仕訳日 <=[削除日]) ;") としましたが、次のようなパラメータの入力ウィンドが空打ちで次々に表示されます。 ・仕訳明細.仕訳ID ・仕訳伝票.仕訳ID ※ 同じ目的で「質問番号:5525157」を立ち上げました。