こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

Accessでのクエリ作成についてですが

【Tジャンル】【T商品】【T仕入先】
↑これらの3つのテーブルを使ってクエリを作成すると仮定します。
それぞれのテーブルにあるフィールドの内容は以下の通りです。
【Tジャンル】
[ジャンルコード(主キー)][ジャンル名]

【T商品】
[商品コード(主キー)][商品名][ジャンルコード]
[仕入先コード][仕入原価][標準価格][終息][備考]

【T仕入先】
[仕入先コード(主キー)][仕入先名][フリガナ][郵便番号]
[住所][建物名][電話番号][FAX番号][担当者名][メールアドレス]

ここで質問があります。
クエリ作成のデザイングリッドのフィールドに
[仕入先コード]を追加するとします。
[仕入先コード]は【T商品】と【T仕入先】両方にあるのですが、
フィールド名が同じならば、どちらから追加しても構わないものなのでしょうか?
それとも、何か決まり事のようなものがあるのでしょうか?

基礎的な部分の質問ですが、ご存知の方がおられましたら、
どうか宜しくお願いします。

投稿日時 - 2007-11-29 12:06:08

QNo.3556394

暇なときに回答ください

質問者が選んだベストアンサー

クエリ結果を表示するだけならどちらから取ってきても同じですが
そのクエリを介して入力を行う場合に差が出ます

簡単なテストをしてみると分かります

既存レコードの仕入先コードを編集する場合
T商品から取ってきた仕入先コードは編集可能ですが
T仕入先から取ってきた方は編集できません

投稿日時 - 2007-11-29 13:15:40

お礼

回答、ありがとうございました。
実は、あるアクセスのテキストの解答を見ていて
「何故、T商品のフィールドを使うのだろう?」と疑問に思ったので、
今回の質問をさせていただきました。
CHRONOS_0さんの回答を読んで、納得出来ました。
表示するぶんには問題がなく、編集する時に問題が出るのですね。
お陰様でスッキリしました。
本当にありがとうございました。

投稿日時 - 2007-11-29 21:31:27

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(4)

普通は、単一 Select 文で書ける方を採用すると思いますよ。

SELECT goods.ID, goods.gname, goods.supplier_ID, supplier.sname
FROM supplier RIGHT JOIN goods ON supplier.ID=goods.supplier_ID;

SELECT goods.ID, goods.gname, supplier.ID, supplier.sname
FROM supplier RIGHT JOIN goods ON supplier.ID=goods.supplier_ID;

そりゃー、確かに、両者のクエリの実行結果は同じです。
だが、前者のクエリは次のようにも書けます。

SELECT ID, gname, supplier_ID, Dlookup("sname","supplier","ID=" & supplier_ID) AS sname
FROM goods;

こういうことですから、わざわざ、主たるテーブルの列ではなく従たるテーブルの列を参照しないでしょう。

投稿日時 - 2007-11-29 12:51:19

お礼

丁寧な回答、ありがとうございました。
恥ずかしながら、SELECT文については理解できていませんでした。
お陰様で、新たな課題がみつかったような気がします。
自分も勉強すれば、Husky2007さんのレベルに近付けるのか・・・
わたしの頭ではちょっと無理っぽいですが、自分なりに頑張ります。
本当にありがとうございました。

投稿日時 - 2007-11-29 21:16:56

ANo.2

どちらからでもいっしよといえばいっしょですが

結合プロパティのところで(右クリックで表示)
1  a b どちらにもある場合のみに出力
2  a の全レコードを出力
3  b の全レコードを出力

のどれを選択するかで出力状況が変ります

1 のa b どちらにもある場合のみに出力
を選択している場合なら 結果は一緒です
2 もしくは 3 の場合なら結合相手が存在しない時には
null(空白) で出力される場合がでてきます

投稿日時 - 2007-11-29 12:35:43

お礼

丁寧な回答、ありがとうございました。
お陰様で勉強になりました。
今度、教えていただいたことを試し、
違いを比べてみたいと思います。
本当に、ありがとうございました。

投稿日時 - 2007-11-29 21:03:14

ANo.1

【T商品】と【T仕入先】を[仕入先コード]でつないであれば
どちらのテーブルから表示させてもクエリーの結果は同じですよ。

投稿日時 - 2007-11-29 12:14:15

お礼

早速の回答、ありがとうございました。
表示させるだけなら結果は同じということですね。
未熟者故、今後も質問することがあるかと思いますが、
宜しくお願いします。
本当にありがとうございました。

投稿日時 - 2007-11-29 20:55:45

あなたにオススメの質問