質問: クエリの作り方はこれでよいでしょうか access2010で以下のことをやりたいのですが、助言ください。 ・元データはexcelに入っている。 ・sheet1のa列のみに抽出用の番号(商品番号000000001とか)が入力されています。(数千行) ・sheet2はデータベースで、a列に商品番号(こちらは複数同じものあり)、b列に商品名、c列に国名、d列に価格・・~その後j列まで情報が入っています。(行数は1万行以上・・10万行近かったです) 【やりたいこと、現状】 ・sheet1に入っている商品番号でsheet2のデータベースに抽出をかけて、excelに抽出結果シートを作りたい。 ・最終的にはexcelファイルにしたい。 ・途中経過では現在accessを使っている。 ・sheet1に商品番号があっても、sheet2にないものがある。データベースにない場合も抽出結果シートには反映させたい。(商品番号だけ抽出結果に表示させて、右の列はすべて空欄にしたい) 【やったこと】 ・sheet1をt抽出条件、sheet2をtデータベースとしてaccessにインポートしてテーブルを作りました。 (t抽出条件はa列しかないので、主キーは商品番号、tデータベースはid列を追加して主キーに) ・リレーションを商品番号でかけて、クエリを作成(q結果) →クエリで使った項目 t抽出条件から商品番号 tデータベースからはidと商品番号を除くものすべて。 このq結果をexcelにエクスポートし、完成! と思ったのですが、これだとsheet1にはあって、sheet2にはない商品番号の情報が載ってきません。 sheet1にはあるけど、sheet2にはない情報も載せたいのです。 どのようにしたらよいでしょうか。 また、上記の方法で問題はないでしょうか。 結果が数千も出るので確かめようがありません。 どこがおかしければご指摘ください。 また、確かめ方などもありましたら、ご教授ください。 よろしくお願いします
回答: 正直言えば、何をしたいのかよくわかりません。 >sheet1に入っている商品番号でsheet2のデータベースに抽出をかけて 「抽出をかける」ってどういう意味? sheet2のレコードのうち、商品番号がsheet1にあるものを抽出するってこと? だから外してるかもしれないけど、 >sheet1にはあるけど、sheet2にはない情報も載せたいのです。 というのに注目して書きます。 クエリビルダでsheet1の商品番号とsheet2の商品番号を線で結んでますね? その線を選んで右クリックします。 出てきたメニューから「結合プロパティ」を選びます。 先をダブルクリックしても結合プロパティのウィンドウが開くらしい。 日本語の文字で書いてはあるけれども、私にはほとんど意味不明な三つの選択肢が出てきます。 その中で、「sheet1の全レコードと...」とある選択肢を選びます。 すると、商品番号を結んでいる線が、sheet2に向かう矢印になります。 これで出来上がり。 外部結合っていうんです。 あなたが試したような、両方のテーブルで一致するレコードしか選んでこないのは、内部結合(inner join)。