- ベストアンサー
アクセスの更新クエリについて(親子テーブル)
はじめまして。 アクセスを勉強しはじめて2週間の初心者です。 説明がわかりずらいかもしれませんが、ご容赦ください。 以下のようなテーブルがあります。 ●親テーブル(装置名称と装置番号の組み合わせが主キー) ・装置キー ・装置名称 ・装置番号 ・収容No-1 ・収容No-2 ●子テーブル(主キー設定なし) ・装置キー(親テーブルの装置キーと参照整合:1対多) ・収容No-3 ・最新情報 ●参照テーブル(主キー設定なし) ・収容No-1 ・収容No-2 ・収容No-3 ・最新情報 子テーブルの最新情報フィールドを参照テーブルの最新情報に 更新する更新クエリを作成したいのですが、うまく実行ができ ません。 クエリの作り方の基本がわかっていないと思いますが、私が作 った方法は、 1.上記3つのテーブルをクエリのデザインビューで表示 2.親テーブルと参照テーブルの収容No-1、2を結合 3.子テーブルと参照テーブルの収容No-3を結合 4.クエリの種類を更新クエリに変更 5.テーブルに子テーブル、フィールドに最新情報を設定 6.レコードの更新欄に[参照テーブル]![最新情報]を設定 です。 ビューで確認すると殆どのデータが空白で表示されております。 どのあたりに悪さがあるかをご教授いただけますと助かります。 ご不明な点がありましたら、何なりとお伝えください。 よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
>5.テーブルに子テーブル、フィールドに最新情報を設定 >6.レコードの更新欄に[参照テーブル].[最新情報]を設定 のテーブル設定が逆なのでは?と思います。 もし、SQL文がわかるのなら、クエリを「デザインビュー」で開いた後、 クエリのウィンドウのタイトルバーを右クリックして「SQLビュー」を選べばSQL文を 見ること(編集も)ができます。 ANo.1 さんが言っているのは、 参照テーブルを作成してしまうと、親テーブルと参照テーブルで項目が重複している。 そのため、親テーブルでも編集テーブルでもデータを編集することが可能になってしまい、 どちらのテーブルのデータが正しいのかわからなくなってしまう。 (子テーブルと編集テーブルでも同様のことが言える。) 参照「テーブル」ではなく、参照「クエリ」を選択クエリ(=SELECT文)として作成しなさい。 ということだと思います。 私も同意見です。 おそらく、wadawadaさんはデータ編集は親テーブルと子テーブルのみで、 参照テーブルは閲覧用と考えているのだと思います。 そうであれば、なおさら参照「テーブル」ではなく、参照「クエリ」にすべきです。
その他の回答 (1)
- CHRONOS_0
- ベストアンサー率54% (457/838)
>クエリの作り方の基本がわかっていないと思いますが 分かっていないのはクエリの作りかたではなくテーブルの作り方です テーブル作成の基本は「One Fact on One Place」 収容No-1、2、3が複数の場所にあるのはNGです 参照テーブルは作ってはいけません これらは親テーブルからつど取り出すようにします
お礼
CHRONOS_0さん、irija_bariさん 早速のご回答ありがとうございました。 私の説明が良くなかったたので、再度説明させてください。 「参照テーブル」というのは、「親テーブル」と「子テーブル」から作成されるものではありません。更新クエリの参照元のテーブルを表現したかったのですが、書き方がまずかったですね。 他にもありましたら、よろしくお願いします。