• ベストアンサー

ACCESSで指定されたテーブルから削除できませんでしたとエラー

お世話になります。 似たような問題をググッてみたのですが、イマイチ解決に繋がらず、 最終手段と質問させて頂きました。 現在、ACCESS2007で削除クエリを作成していますが、 題名のエラーが表示されてしまいます。 ・テーブルAとBが存在します。 ・テーブルBのレコードを削除したいです。 ・削除条件は、テーブルAでSELECTした結果に対し、  テーブルAとテーブルBで一致するものを削除します。 ・A/B両テーブルともに主キーは設定されていません。 ・また、リレーションも張っていません。 ・データシートビューは想定したものが表示されます ・作成したSQLは以下のような感じです。 --------------------------------------------------- DELETE T2.* FROM T2, ( SELECT * FROM T1 WHERE T1.Fld1 = "01" AND T1.Fld2 = "002" AND T1.Fld3 BETWEEN #2008/4/1# AND #2009/3/31# AND (T1.Fld4 ="A" OR T1.Fld5 = "B") ) AS T1a WHERE T2.Fld1 = T1a.Fld1 AND T2.Fld2 = T1a.Fld2 AND T2.Fld3 = T1a.Fld3 --------------------------------------------------- 以上、解決策を伝授頂けないでしょうか? よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • bonaron
  • ベストアンサー率64% (482/745)
回答No.3

http://support.microsoft.com/kb/328828/ja こちらの ・複数のテーブルやクエリを含むクエリで、そのテーブルやクエリが、クエリのデザイン ビューで結合線によって結合されていないと、データを更新できません。この問題を回避するには、データを更新できるようにテーブルを正しく結合します。 ということです。

yasu_3
質問者

お礼

なるほど、、、 主キーは無い、リレーションは無い、データは重複してる、 という嬉しい状態がやはり良くないんですね(苦笑 一番問題だったのは、データが重複しているのが 問題だったようです。試しにDISTINCTを取って SQLを実行したら、やはりエラーが出ました。 データの中身をもう少し吟味してから作るべきでした、、、 というか、本当はそれ以前のDB設計や運用手順で しっかりデータをが作られるようにするべきなんでしょうけど(汗 色々とありがとうございました m(_ _)m そういえば、お礼ポイントって無くなったんですか?

その他の回答 (2)

  • bonaron
  • ベストアンサー率64% (482/745)
回答No.2

動作確認はしていませんが、これでいかがでしょうか? DELETE DISTINCTROW T2.* FROM T2 INNER JOIN [SELECT * FROM T1 WHERE T1.Fld1 = "01" AND T1.Fld2 = "002" AND T1.Fld3 BETWEEN #2008/4/1# AND #2009/3/31# AND (T1.Fld4 ="A" OR T1.Fld5 = "B") ]. AS T1a ON (T2.Fld3 = T1a.Fld3) AND (T2.Fld1 = T1a.Fld1) AND (T2.Fld2 = T1a.Fld2);

yasu_3
質問者

お礼

!!!! ありがとうございます!できました!感動です!! 全体的な構文の(あくまで)イメージは変わらないのに、 何でACCESSだと実行されないのでしょう? []の使い方とか、そういう文法的な部分何でしょうか?

yasu_3
質問者

補足

今気づきました。 JOINするテーブルをViewにしてるんですね、、、 前はそれをしていなかったからダメだったのか orz という事でしょうか?

  • STICKY2006
  • ベストアンサー率29% (1536/5269)
回答No.1

こんちくは。 Accessユーザーじゃないので、簡単に参考にもならない参考程度に。。。 http://office.microsoft.com/ja-jp/access/HA100963161041.aspx とりあえずこんなのがあったのでどうぞ。

yasu_3
質問者

お礼

回答ありがとうございます! ・・・既に試した後でした・・・ 結果は上手く動かずでして・・・

関連するQ&A