電子書籍の厳選無料作品が豊富!

こんにちは。すみません、タイトルが日本語的に変ですね(汗)
ACCESS 2000 初心者です。

商品CODE表
1
2
3

に対し、

売上9月
1 … 100
3 … 50

売上10月
2 … 30
3 … 70

というデータがあったとします。
これを単純に、選択クエリで結びつけると、

CODE 9月 10月
3   50  70

とだけ表示しますね。
下記のように

CODE 9月 10月
 1  100   0
 2   0   30
 3  50   70

表示させることはできますか?
EXCELでVLOOKUP した場合、#N/A 等で表示してくれますよね。そしたら ISERROR 関数などで0表示するのですが。。
ACCESS はイメージが掴めなくて困っています。ヒントをください。

A 回答 (4件)

SQLでいうところの"LEFT JOIN"を使うことになりますね。


そのまま結合すると"INNER JOIN"になっているので、
結合の左右いずれかが存在しないものは出てきません。
"LEFT JOIN"にすると、左にあって右にないものについては
右側から取る値がNULLになって表示されます。
(ここでは左側は商品CODE、右側は売り上げが相当します)

Accessでデザインビューでこの指定をするには、まず
結合の矢印を右クリックして「結合のプロパティ」を開きます。
そこで2番の、'商品CODE表'の全レコードと売上9(10)月の
同じ結合フィールドのレコードだけを含める、
という項目を選択すればOKです。

この回答への補足

さっそく実行してみました。すると、

商品CODE と売上9月
商品CODE と売上10月

は、それぞれ望む結果が得られた(セル?が空白表示された)のですが、

商品CODE と売上9月 と売上10月
を同じクエリ内に取り込み、実行しようとすると

あいまいな外部結合が含まれているので、SQLステートメントを実行できません。いずれかの結合を最初に実行するために、第一次結合を実行する分割クエリを作成し、SQLステートメントにそのクエリを含めてください。

というエラーメッセージが出ました。
本当に恥ずかしいのですが、意味すらよく分かりません。
ご指導いただければ、ありがたいです。。

補足日時:2005/11/06 23:32
    • good
    • 0
この回答へのお礼

ものすごい早い回答、ありがとうございます!

お礼日時:2005/11/06 23:32

クエリをデザインで開くと、「商品コード表」テーブルと「売上9月」、「売上10月」のテーブルが”商品コード”をキーに結合していると思います。


この結合している線をダブルクリック(又は、[表示]-[結合プロパティ]をクリック)して、「商品コード表の全レコードと売上9月(売上10月)の同じ結合フィールドのレコードだけを含める」という所にチェックを入れる(9月、10月それぞれに行ってください)と出来ると思います。
    • good
    • 0
この回答へのお礼

ありがとうございました!
なんとか結果を出してみることができました!

お礼日時:2005/11/07 14:12

#1さんへの補足を読みました。



うまくいかない理由がよくわかりませんが、とりあえず、エラーの内容どおり、

1.商品codeと9月だけのクエリを一回作る。
2.そのクエリと10月でまたクエリを作る。

でとりあえず解決はできると思います。

根本的な解決は、SQLビューの内容をここに、書いていただければ、解決できるかもしれません。
念のためやりかたは、
選択クエリウインドウのタイトルバーを右クリックしてSQLビューです。
    • good
    • 0
この回答へのお礼

フォローありがとうございます!
家では2000ですが、現在会社で97で同じことをしてみました。
同じようにエラーになり、SQLビューを表示しようとしても同じエラーメッセージです。。が、

9月と10月の間に勝手にできていた結合線を削除してみたら、望んだ結果が出てきました。
な、なんかよくわからないのですが、一つ学習できました。

お礼日時:2005/11/07 14:08

商品code_DB に売上9_DB、売上10_DB を結合します。


この結合の時に、結合線が出ますが、これを選択して右クリックすると、両方存在する場合、商品_code_DBに存在する場合等、どちらを基準にするかの結びつけができます。

今は、商品_code_DB⇔売上_DB
 か、売上9_DB⇔売上10_DB だと思いますので
これを商品_code_DB→売上_DB に変更して下さい。

要は、基準になる元から、何を抽出するかをなるべく単純に行う方法を考えれば、判り易いし速く動作するクエリが出来ますヨ(^^)

売上9、10_DBも分けられているのであれば、キーに年月(日付よりは数値か文字で6桁が入力可能な属性が良いかも)を入れると、後々便利ですよ(^^)v
    • good
    • 0
この回答へのお礼

ありがとうございました!
でもきっと、おっしゃられていることはNo.1のosumitan 様と同じですよね。。
(補足の重複は避けます)

とてもドン臭い私なのですが、社内の部署の中ではそこそこEXCEL(&VBE)が使えるので、今度はACCESS! と押し付けられてしまい、途方にくれています。
ゆくゆくはSQLというものも齧り、マクロの実行まで覚えなければなりません。
またよろしくお願いします。。

お礼日時:2005/11/06 23:55

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