プロが教えるわが家の防犯対策術!

いつも大変お世話になっております。m(_ _)m

Accessで以下のようなテーブルを作成します。

テーブル(1)
・生産部門コード
・販売部門コード
・AS部門コード

テーブル(2)
・部門コード
・部門名

テーブル(2)はマスタになります。
00:A生産部
01:B生産部
11:A販売部
12:B販売部
みたいな情報が入っています。

テーブル(1)の「部門コード」は、テーブル(2)の値を参照して入力します。

この2つのテーブルをリレーションして、クエリで部門名を表示させたいのですが、1つのマスタ(テーブル(2))のコードを複数のフィールドで参照するとエラーになります。

このような場合、テーブル(マスタ)を3つ作らないとダメなのでしょうか?

要は、テーブルに部門情報を入力したいのですが、マスタは1つで良いということです。

よろしくお願いします。

A 回答 (1件)

> このような場合、テーブル(マスタ)を3つ作らないとダメなの


> でしょうか?

う~ん、なんと答えればと悩んだりしてるのですが・・・リレーション上3つのテーブルを作らなくてはならないのですが、実際のテーブルは1つでよいです

例えばで、クエリーのSQL文を例の通り作成してみたので、
コピー貼り付けで、デザインビューで参照ください

SELECT [テーブル(1)].生産部門コード, Tbl生産部門.部門名 AS 生産部門名, [テーブル(1)].販売部門コード, Tbl販売部門.部門名 AS 販売部門名, [テーブル(1)].AS部門コード, TblAS部門.部門名 AS AS部門名
FROM (([テーブル(1)] INNER JOIN [テーブル(2)] AS Tbl生産部門 ON [テーブル(1)].生産部門コード = Tbl生産部門.部門コード) INNER JOIN [テーブル(2)] AS Tbl販売部門 ON [テーブル(1)].販売部門コード = Tbl販売部門.部門コード) INNER JOIN [テーブル(2)] AS TblAS部門 ON [テーブル(1)].AS部門コード = TblAS部門.部門コード;

要するに上記SQL文では、同じテーブルをクエリー上で違う名前で3つ定義し、使用してます
    • good
    • 0
この回答へのお礼

回答ありがとうございました。
やはり、基本はないとダメなんですね。
理解しました。

クエリ上の操作やってみます。
ありがとうございました。m(_ _)m

お礼日時:2007/02/14 11:02

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!