![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?8acaa2e)
お世話になります。
似たような問題をググッてみたのですが、イマイチ解決に繋がらず、
最終手段と質問させて頂きました。
現在、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
---------------------------------------------------
以上、解決策を伝授頂けないでしょうか?
よろしくお願いします。
No.3ベストアンサー
- 回答日時:
こちらの
・複数のテーブルやクエリを含むクエリで、そのテーブルやクエリが、クエリのデザイン ビューで結合線によって結合されていないと、データを更新できません。この問題を回避するには、データを更新できるようにテーブルを正しく結合します。
ということです。
なるほど、、、
主キーは無い、リレーションは無い、データは重複してる、
という嬉しい状態がやはり良くないんですね(苦笑
一番問題だったのは、データが重複しているのが
問題だったようです。試しにDISTINCTを取って
SQLを実行したら、やはりエラーが出ました。
データの中身をもう少し吟味してから作るべきでした、、、
というか、本当はそれ以前のDB設計や運用手順で
しっかりデータをが作られるようにするべきなんでしょうけど(汗
色々とありがとうございました m(_ _)m
そういえば、お礼ポイントって無くなったんですか?
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);
この回答への補足
今気づきました。
JOINするテーブルをViewにしてるんですね、、、
前はそれをしていなかったからダメだったのか orz
という事でしょうか?
!!!!
ありがとうございます!できました!感動です!!
全体的な構文の(あくまで)イメージは変わらないのに、
何でACCESSだと実行されないのでしょう?
[]の使い方とか、そういう文法的な部分何でしょうか?
No.1
- 回答日時:
こんちくは。
Accessユーザーじゃないので、簡単に参考にもならない参考程度に。。。
http://office.microsoft.com/ja-jp/access/HA10096 …
とりあえずこんなのがあったのでどうぞ。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Access(アクセス) アクセス 削除するレコードを含んだテーブルを指定してくださいのエラー対処方法 1 2022/11/24 15:01
- MySQL SQLです。こんな感じですか?あってますか? うまくいきません教えてくださいお願いします 1 2023/07/08 15:27
- MySQL うまくいきません教えてくださいお願いしますSQLです。クエリ構文です。 1 2023/07/07 12:39
- PHP コメント機能に返信欄を矢印で追加したい 1 2022/05/09 21:17
- Oracle 下記のsqlで取得されるレコード以外を取得する方法ありますでしょうか。 SELECT B.番号, B 2 2022/04/20 23:21
- Access(アクセス) AccessVBAで降順にするテーブル作成クエリを使用して作成したテーブルを削除し同一のテーブル作成 1 2023/01/06 11:17
- MySQL PhpMyAdminで作成して実行せよ。 東京23区を、皇居を中心とした4つのエリア(南東, 南西, 1 2023/06/11 11:58
- Access(アクセス) アクセス 有効なフィールド名、または式として認識できませんのエラー 3 2022/08/19 11:53
- Excel(エクセル) VBA フォルダ見える化のコードについて 2 2023/06/19 15:04
- Oracle 質問です。 下記のテーブルとデータがあり、 取得想定結果のように出力したいです。 下記のsqlだと0 2 2023/05/23 19:10
このQ&Aを見た人はこんなQ&Aも見ています
-
「どうして捨てられないの?」前妻の物を捨てられない男性の心理って?
前妻の物を捨てられない理由に加え、捨てるための手段はあるのかを専門家に聞いてみた!
-
実行時エラー3086 削除クエリができない
Access(アクセス)
-
2つのテーブルに共通するレコードを削除したい
Access(アクセス)
-
アクセスのクエリでレコード削除ができません。
その他(Microsoft Office)
-
-
4
アクセス 削除するレコードを含んだテーブルを指定してくださいのエラー対処方法
Access(アクセス)
-
5
ACCESSでデータ読み取り専用を解除する方法
その他(データベース)
-
6
EXISTSを使ったDELETE文
SQL Server
-
7
更新不可能なクエリに対して更新クエリを実行する方法
Access(アクセス)
-
8
SQLServerで同一条件レコードの削除ができない
SQL Server
-
9
サブフォームに対してGoToRecordするには?
その他(Microsoft Office)
-
10
ACCESS2007 フォーム 「バリアント型でない変数にNull値を代入しようとしました」エラーの
SQL Server
-
11
「RunSQL」と「Execute」の違い
Access(アクセス)
-
12
ACCESS更新クエリで型変換エラー
Access(アクセス)
-
13
Access 削除クエリが重い
その他(データベース)
-
14
accessでクエリの結果だけをリンクしたい。
Access(アクセス)
-
15
アクセスで入力したデータの順番が変わってしまいます
その他(ビジネス・キャリア)
-
16
Accessのマクロでモジュールを実行させたい。
Access(アクセス)
-
17
別テーブルからSELECTした値を持つ行を削除するSQLは?
その他(データベース)
-
18
ACCESS 重複データを1つだけ表示したい(初心者です)
Access(アクセス)
-
19
AccessのDAO.ExecuteとDoCmd.RunSqlの違いについて
その他(データベース)
-
20
Accessを開くと「排他モードじゃないので変更しても保存できない」との旨の表示が出てしまう。
Access(アクセス)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Accessでテーブルからテーブル...
-
Accessでテーブル名やクエリ名...
-
Accessで、複数のテーブルで随...
-
Accessでvlookupみたいなことは...
-
INSERT時にデータ登録とmaxの発...
-
Accessレコードの追加や変更が...
-
グループ集計のカウントについ...
-
Accessでエラー
-
ACCESSに同時アクセス(編集)を...
-
ACCESS ACCESS VBA テーブル ...
-
Access2003 リレーションされ...
-
AccessのテーブルからExcelをイ...
-
Accessのレポートのデータ出力...
-
Accessのテーブルの作り方で
-
MS-ACCESSで、レコードセットを...
-
Excel 2019 のピボットテーブル...
-
IT用語について質問です。 以前...
-
エクセルVBAで5行目からオート...
-
Excelの表、重複データ2行を1...
-
アンドロイド おサイフケータイ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Accessでテーブル名やクエリ名...
-
Accessレコードの追加や変更が...
-
access テーブル内のレコード...
-
ACCESSに同時アクセス(編集)を...
-
3つの表を1つに縦に連結する
-
Accessでvlookupみたいなことは...
-
Accessの追加クエリで既存のテ...
-
Accessクエリでの、LIKE条件
-
Accessでテーブルからテーブル...
-
ツリー構造をRDBで表現するには?
-
デザインビューで、連結式 を...
-
2つのテーブルを比較して一致し...
-
ACCESSで指定されたテーブルか...
-
リンクテーブルを CopyObject ...
-
SQLで日付を条件に削除したい
-
SQLで条件指定結合をしたいがNU...
-
時間の足し算
-
パススルークエリをテーブル作...
-
INSERT時にデータ登録とmaxの発...
-
ODBCで接続するとDBに変更/追加...
おすすめ情報