これ何て呼びますか

ACCESSでクエリを作成しています。テーブルは”売上明細”と”社員マスタ”があります。売上明細には”担当者CD”と”加工者CD”というフィールドがあって、それぞれのフィールドが、同じ社員マスタの”社員CD”をキーに”社員名”を抽出したいのですが、「あいまいな外部結合が含まれているので、SQLステートメントを実行できません。第一次結合を実行する分割クエリを作成し、SQLステートメントにそのクエリを含めてください」とメッセージが出ます。どこにどのように設定すればいいのでしょうか?優先順位は特にありませんが、最初に設定されている担当者CDを第一次結合とする場合どうすればいいのでしょうか?この第一次・第二次はどのような意味があるのでしょうか?まだVBAは手付かずで、初心者です!これから学習しようとしているところです。よろしくお願いいたします。

A 回答 (2件)

ひとつのテーブルの異なるフィールドが同じテーブルを参照しているわけですね


こういう場合はひとつのテーブルを2つのフィールドに結合するのではなく
同じテーブルを別の名前で結合します

クエリデザインビューでの操作だと、社員マスタを2回クエリデザインビューに取り込み
(2つ目は異なる名前で取り込まれます)
担当者と、加工者に別々に結合します
    • good
    • 1
この回答へのお礼

回答ありがとうございます!なんだか回答を頂いて”目からウロコ”状態でした。とても簡単で的確な回答ですぐ解決いたしました!本当にありがとうございます!最初エラーメッセージを読んだときはどうなることかと思いましたが、回答を見てすぐわかりました!なるほど・・・でした!本当に感謝です!

お礼日時:2007/10/03 10:19

<社員マスター>


社員CD__名前
101_____鈴木 一郎
102_____中村 主水

<売上明細>
ID___伝票番号___担当者CD___加工者CD
1____1001_______101________101
2____1002_______102________102

<売上明細_クエリ>
ID___伝票番号___社員マスター_担当者.名前___社員マスター_加工者.名前
1____1001_______鈴木 一郎_________________鈴木 一郎
2____1002_______中村 主水__________________中村 主水

SELECT 売上明細.ID, 売上明細.伝票番号, 社員マスター_担当者.名前, 社員マスター_加工者.名前
FROM (社員マスター AS 社員マスター_担当者 RIGHT JOIN 売上明細 ON 社員マスター_担当者.社員CD=売上明細.担当者CD)
LEFT JOIN 社員マスター AS 社員マスター_加工者 ON 売上明細.加工者CD=社員マスター_加工者.社員CD;

このような<売上明細_クエリ>を作成しようとされているのだと推察します。
<SQL ビュー>を見れば判りますが、例では社員マスターを[担当者.名前参照用]と[加工者.名前参照用]の2つ用意しています。
質問者は、1つのの社員マスターから[担当者.名前]と[加工者.名前]を参照しようとしているのでしょう。
その場合、次のような場合は101と102とに結び付くという曖昧さを生じます。
これを避けるには社員マスターを一つだけではなく二つ配置して別個に結合させます。

<売上明細>
ID___伝票番号___担当者CD___加工者CD
1____1001_______101________102

多分、こういうことだと・・・。
    • good
    • 1
この回答へのお礼

とても詳細に説明いただいてありがとうございます!マスタをそれぞれに配置して解決しました。しかし最初私は社員マスターのテーブル自身を2つ作成するのかと勘違いしてしまいました・・・同じ内容のテーブルを作成するのはちょっと・・・と思ってしまいました。私の早とちりでした。丁寧に記載していただいているのに・・・出来の悪い質問者ですみません!これに懲りず、またよろしくお願いいたします!

お礼日時:2007/10/03 10:27

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

このQ&Aを見た人はこんなQ&Aも見ています

関連するカテゴリからQ&Aを探す


おすすめ情報