No.3ベストアンサー
- 回答日時:
No.2、DexMachinaです。
> どうして削除されないのかわかりません。
私の場合、ヘルプを頼りにトライ&エラーでの経験則で覚えてきたので、
この件についての原理・理論的な説明はできないのですが(汗)、
とりあえず対処法について、説明します。
(一対多のリレーションシップが設定された複数テーブルからクエリを作成
した場合、多側の削除は可能ですが、一側は削除不可のようです:
No.1の補足欄で「ちなみに」として触れられている例が該当)
> これを踏まえて、上記の手順を確認しながらクエリを作成してみました
とのことから、リレーションシップの設定で、「参照整合性」と「連鎖削除」
の設定は済んでいるものと思います。
でしたら、「伝票ヘダー」テーブルだけを元にした削除クエリを作成すれば、
『連鎖削除』の設定により、「伝票明細」の該当レコード(=「伝票ヘダー」
で削除されたのと同じ「発注番号」を持つレコード)も同時に削除されます。
SQL文:
Delete 伝票ヘダー.* From 伝票ヘダー Where (伝票ヘダー.出力フラグ = 1);
DexMachinaさん、こんにちわ。
>SQL文:
>Delete 伝票ヘダー.* From 伝票ヘダー Where (伝票ヘダー.出力フラグ = 1);
だけで両方のtbl削除ができました。
リレーションシップの設定で、「参照整合性」と「連鎖削除」の設定がされていれば、このSQL文で削除されるのですね。
おかげさまですっきりしました。
また、すごく勉強になりました。
丁寧な回答もしていただいて本当にありがとうございました。
また、よろしくお願いします。
No.2
- 回答日時:
> Atbl.発注No.1つに対して、Btblは複数レコードあります。
Atblの発注No.は、重複するものはないと考えてよろしいでしょうか。
そうであれば、「リレーションシップ」の設定を使用することで、1つの
削除クエリで対応できます。
そうではない場合は、Atbl用とBtbl用の削除クエリをそれぞれ作成
するしかありません。
以下、前者(=Atblの発注No.は重複なし)での対応法を説明します。
(なお、1~3の操作は、対象フィールドが主キーの場合は不要です:
No.1の補足では「主キーではない」とのことなので、今回は必要)
1)Atblをデザインビューで開き、『発注No.』にカーソルを移動
2)画面下方の領域の『標準』タブ内にある『インデックス』の設定値を
「はい (重複なし)」に設定
3)Atblを保存して閉じる
4)『データベース ツール』リボンを選択し、『表示/非表示』内にある
『リレーションシップ』ボタンをクリック
5)『デザイン』リボンの『リレーションシップ』内にある『テーブルの表示』
ボタンをクリック
(または、リレーションシップ画面(画面右下のグレーの領域)を
右クリックして「テーブルの表示(T)」を選択しても可)
6)『テーブルの表示』ダイアログが開くので、AtblとBtblをそれぞれ追加
7)Atblの発注No.を、Btblの発注No.の位置にドラッグ&ドロップ
8)『リレーションシップ』ダイアログが開くので、ダイアログ下方の
『リレーションシップの種類』が「一対多」になっているのを確認し、
『参照整合性(E)』のチェックをオンにする
※「1~3」の操作をしていない(もしくは主キーではない)場合は
「多対多」と表示され、参照整合性のチェックはオンにできません。
9)『レコードの連鎖更新(D)』が使用可能になるので、そのチェックも
オンにする
10)『作成(C)』ボタンをクリックして『リレーションシップ』ダイアログを閉じる
11)『リレーションシップ』画面で、Atblの発注NoとBtblの発注Noの間に
結合線が表示され、Atbl側に「1」、Btbl側に「∞」が表示されている
ことを確認し、『リレーションシップ』画面を閉じる
・・・以上です。
これで、Atblのレコードを削除クエリなどで削除すると、削除対象と同じ
発注NoをもつBtblの全てのレコードが削除されるようになります。
この回答への補足
DexMachinaさん、いつもありがとうございます。
>Atblの発注No.は、重複するものはないと考えてよろしいでしょうか
重複はありません。
前に、Atblの発注No.は主キーかとあったのですが、よく見ると主キーになっていました。
これを踏まえて、上記の手順を確認しながらクエリを作成してみましたが、”指定されたテーブルから削除できません”とエラーになります。
クエリのSQLビューは下記のとおり
DELETE 伝票ヘダー.出力フラグ, 伝票明細.*, 伝票ヘダー.*
FROM 伝票ヘダー INNER JOIN 伝票明細 ON 伝票ヘダー.発注番号=伝票明細.発注番号
WHERE (((伝票ヘダー.出力フラグ)=1));
どうして削除されないのかわかりません。
ちなみに
DELETE 伝票ヘダー.出力フラグ, 伝票明細.*
FROM 伝票ヘダー INNER JOIN 伝票明細 ON 伝票ヘダー.発注番号=伝票明細.発注番号
WHERE (((伝票ヘダー.出力フラグ)=1));
とすると、
伝票明細tblは該当レコードが削除されていますが、伝票ヘダーtblは
削除されていません。
期待する結果は、伝票ヘダー&伝票明細tbl療法の該当レコードを削除したいのです。
どこがおかしいのでしょうか。
知恵をお貸しください。
よろしくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
好きなおでんの具材ドラフト会議しましょう
肌寒くなってきて、温かい食べ物がおいしい季節になってきましたね。 みなさんはおでんの具材でひとつ選ぶなら何にしますか? 1番好きなおでんの具材を教えてください。
-
これ何て呼びますか
あなたのお住いの地域で、これ、何て呼びますか?
-
「これはヤバかったな」という遅刻エピソード
寝坊だったり、不測の事態だったり、いずれにしても遅刻の思い出はいつ思い出しても冷や汗をかいてしまいますよね。
-
許せない心理テスト
私は「あなたの目の前にケーキがあります。ろうそくは何本刺さっていますか」と言われ「12本」と答えたら「ろうそくの数はあなたが好きな人の数です」と言われ浮気者扱いされたことをいまだに根に持っています。
-
「お昼の放送」の思い出
小学校から中学校、ところによっては高校まで お昼休みに校内放送で、放送委員が音楽とかおしゃべりとか流してましたよね。 最近は自分でもラジオができるようになって、そのクオリティもすごいことになっていると聞きます。
-
2つのテーブルに共通するレコードを削除したい
Access(アクセス)
-
accessのレポートであとから他のテーブルのフィールドを追加する方法
Access(アクセス)
-
Accessで別テーブルの値をフォームに表示したい
その他(データベース)
-
-
4
access別のテーブルを参照してテキストボックスに値を表示、編集したい
Access(アクセス)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・チョコミントアイス
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・あなたの習慣について教えてください!!
- ・ハマっている「お菓子」を教えて!
- ・高校三年生の合唱祭で何を歌いましたか?
- ・【大喜利】【投稿~11/1】 存在しそうで存在しないモノマネ芸人の名前を教えてください
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・家の中でのこだわりスペースはどこですか?
- ・つい集めてしまうものはなんですか?
- ・自分のセンスや笑いの好みに影響を受けた作品を教えて
- ・【お題】引っかけ問題(締め切り10月27日(日)23時)
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・架空の映画のネタバレレビュー
- ・「お昼の放送」の思い出
- ・昨日見た夢を教えて下さい
- ・ちょっと先の未来クイズ第4問
- ・【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・10秒目をつむったら…
- ・人生のプチ美学を教えてください!!
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
データの二重表示の原因
-
3つ以上のテーブルをUNIONする...
-
ACCESSにて全項目(レポート)...
-
2つの項目が重複するレコード...
-
Access 1レコードずつcsvで出力...
-
Accessにインポートしたら並び...
-
Access VBA Me.Requery レコー...
-
access入所退所日のデータから...
-
数百万件レコードのdelete
-
SQLServerで同一条件レコードの...
-
Excel→Accessテーブル インポ...
-
DB INSERT 時の排他制御について
-
ACCESS【更新クエリの中断がで...
-
ACCESSのBookmarkプロパティの...
-
AccessのSQLについて教えてくだ...
-
非連結サブフォームのレコード...
-
「マスタ」と「テーブル」の違...
-
ACCESS2007 フォーム 「バリア...
-
accessのロック
-
実行時エラー3086 削除クエリ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
3つ以上のテーブルをUNIONする...
-
Accessにインポートしたら並び...
-
データの二重表示の原因
-
Access 1レコードずつcsvで出力...
-
Access VBA Me.Requery レコー...
-
2つの項目が重複するレコード...
-
数百万件レコードのdelete
-
非連結サブフォームのレコード...
-
Access 削除クエリが重い
-
ACCESSのBookmarkプロパティの...
-
ManagementStudioからのデータ削除
-
SQLServerで同一条件レコードの...
-
Access カレントレコードがあり...
-
Accessでの禁止文字チェック
-
Accessでの排他制御
-
Accessの重複クエリで最小以外...
-
テーブルのレコード削除ができ...
-
(ACCESS)並び替えをしないで...
-
Accessで重複したデータを一件...
-
Accessでレコードが更新された...
おすすめ情報