• ベストアンサー

Accessのクエリの抽出式について

アクセスの基本しか知らないため、質問がわかりにくいかもしれませんがお教えください。 AテーブルとBテーブルがあり、共通の商品コードがあるとします。 そしてAテーブルにあるが、Bテーブルにはない商品コードがあった場合に、その該当分だけ表示できるようにしたいのです。 これはクエリで、できるものでしょうか? クエリでできるとしたら、デザインビューの画面で言うとどこをどのように設定したらいいのか、わかりやすく教えていただけたら幸いです。 この問題が解決したら、続きでもうひとつ質問したいと思っています。申し訳ありませんが、よろしくお願いいたします。

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

  • ベストアンサー
  • ja7awu
  • ベストアンサー率62% (292/464)
回答No.2

クエリのデザイン画面でA、Bの両テーブルを追加表示します。 双方の[商品コード]どうしをドラッグして結合させます。 結合線を右クリックして「結合プロパティ」で「'A'の全レコード・・・」を 選び[OK]します。 Aテーブル側から表示したいフィールドをOBEグリッド(画面下部)にドラッグします。 Bテーブル側の[商品コード]をその右フィールドにドラッグし、その下の「抽出条件」欄に Is Null と記入します。「表示」欄のチェックを外します。 このクエリを実行してみてください。 ご希望のデータが表示されたと思いますが、如何でしょうか。

mayayann
質問者

お礼

実は今日会社でやってできなくて、試すのは明日でないとできなくって。 試してみます。ご親切にありがとうございました。 もしおわかりになれば、もうひとつの質問も見ていただけたら幸いです。

その他の回答 (1)

  • taka_tetsu
  • ベストアンサー率65% (1020/1553)
回答No.1

不一致クエリーを作ってください。

mayayann
質問者

お礼

おおっ不一致クエリとは、なんかできそうなネーミングですねぇ。 『選択クエリウイザード』でクロス集計までしか使ったことなかったので、試してみようと思います。 ありがとうございました。

関連するQ&A

  • ACCESSのクエリの作り方

    テーブル名   在庫 商品コード 品名 入庫日 在庫量 ・・・ があります データとして A0000,在庫品1,2005/10/10,50 A0000,在庫品1,2005/12/25,70 A0000,在庫品1,2005/12/28,20 B0000,在庫品2,2005/12/28,10 B0000,在庫品2,2005/12/29,5 C0000,在庫品2,2005/12/30,30 という具合になります。 入庫日の都合上、商品コードがユニークになりません。 この場合 フォームを作って 商品コードをユーザーに入力させ、在庫量を表示させるにはどうしたら良いのでしょうか? 例えば"A0000" だと140になります。 SQLで商品コード=ユーザー入力文字列・・・ とかいうのは知っているんですがACCESSの使い方がよくわかりません、 デザインビューでクエリを作成するとかやるとこの場合固定(商品コードが)されて しまうようです。ユーザーに求めることは出来るのでしょうか?

  • Accessのクエリのデータ抽出のエラー?について

    お世話になります。 Accessのクエリでのデータ抽出について教えてください。 テーブルからフィールドを商品コードと出荷日の2つを選択し、 集計を使用して、商品コードでグループ化して、出荷日で最大にします。 すると、抽出条件で商品コードを指定すると抽出できるのですが、抽出条件で 指定せずすべてのデータを抽出すると出てこない商品コードがあります。 たとえば[A]という商品コードを抽出条件に指定すると抽出できるのですが、 抽出条件で指定せずすべてのデータを抽出するとこの[A]という商品コードが 抽出されません。 何が理由なのかお分かりになりましたらどうぞよろしくお願いいたします。 当方SQLがわかりませんのでクエリのデザインビューでご説明いただけますと 幸いです。

  • Access 抽出漏れ行をみつけるクエリ

    図のようなテーブル「TBL_A」がCSVファイルの形で提供されます。この「TBL_A」は全レコードのテーブルあり「正」データばかりのマスターと考えてください。 このCSVデータをACCESSによみこみテーブル「TBL_A」としてあります。 「TBL_A」をいろいろな人が加工したり、抽出作業をしているのですが、「TBL_B」のような抽出をかけて渡してきた人がいたので、「データ(レコード)が足りないので、不一致クエリで足りないのを見つけておいてください」と頼んだところ、何度やってもみつけられないというので、自分でも試してみました。 図でいえば、ピンク色のレコード(行)をみつければいいのですが、Accessで不一致クエリをかけてみたところ、図の下部のようなデータしか抽出できませんでした。 やったことは2つ 1) TBL_Aを左にし、右にTBL_Bを右に配置し、不一致クエリウィザードでの矢印(→)で商品コードを紐付けた 2) 最初にTBL_AとTBL\Bをクエリで「商品コード」「価格」ぞれぞれ結びつけ(つまり2つの線)、「商品コード」「価格」を「クエリ1」として抽出。その「クエリ1」を上のTBL_Bの位置にもってきて、不一致クエリ。 どちらとも、結果は図の下のようになってしまいます。 図の上部のピンクの部分を確実に抜き出すには、どのようなクエリ(またはSELECT文)が必要でしょうか。 メモ: ・商品コードは「テキスト型」です。 ・商品コードが同じでも販売場所やいろいろな経緯で価格が違っていたり、返品の場合は返金するためマイナス金額がつくことがあり、商品コードと価格はかならずしも合致しません。 ・Accessは2010か2013を使っています。 ※今回はVBAの質問ではありません。

  • ACCESSのクエリーで

    ACCESSのクエリで たとえば下記のテーブルがあったとき コード 品名 1   商品001 3   商品003 4   商品A 7   商品BB と有ったときACCESSのクエリで 1   商品001 2 3   商品003 4   商品A 5 6 7   商品BB のようにテーブルに無いコードのところは空番にしないで 番号をだけを付けるのは可能でしょうか? もとのテーブルはいじりたくないので・・・ もし、やり方が有るならば教えてください

  • Accessのクエリ(初心者)

    Access超初心者です。 クエリで悩んでいるので、お教えください。 テーブル1に CODE(商品ID)_NAME(名前)_SUU(数量)_DAY(日付)の4項目があり、 クエリを使って、最も大きいSUUを抽出したい (かつ最も大きいSUUのデータが重複している場合、その中で最も古い日付のデータのみを抽出したい)のですが・・・ たとえば、 テーブル内容: CODE(商品ID)_NAME(名前)_SUU(数量)_DAY(日付) A_あめ_600_0517 A_あめ_900_0518 A_あめ_400_0618 B_ガム_120_0217 B_ガム_060_0319 B_ガム_180_0718 B_ガム_180_0518 抽出結果: A_あめ_900_0518 B_ガム_180_0518 ということです。 デザインビューを使うとして、どのような方法がありますでしょうか? どうかご教授お願いします!

  • Accessで前回発注分だけ抜き出すクエリは

    お世話になっております。 Accessで発注テーブルから、前回の発注分のレコードだけ を抜き出すクエリがあれば教えてください。 発注テーブルの構成としては 商品コード 発注数 発注日 A-1     15    2014/07/05 A-1     10    2014/07/10 A-2     25    2014/07/12 B-3    30 2014/07/14 B-3     30    2014/07/18 という構成になっており、この場合、 A-1の2014/07/10の発注分 A-2の2014/07/12の発注分 B-3の2014/07/18の発注分 をクエリで抜き出したいと思います。 当方SQL文とモジュールが使えませんので クエリのデザインビューでの方法をご教授 いただけますとありがたいです。 どうぞよろしくお願いいたします。

  • アクセスのクエリでレコード削除ができません。

    アクセス超初心者です。 テーブルを商品コードでくっつけて、クエリのデザインビューで表示しました。 いらないレコードを削除しようとしたところ、できません。 くっつける前の、テーブルではできますが、クエリで実行させ、レコードを削除しようとしたところできません。 どうしたらよいのか教えてください。 あと、もうひとつ、クエリで、出力したいフィールド名をドラッグしたあと、削除したいときには、どうすればよいでしょうか? 表示しないなら、できるのですが・・・。削除がわかりません。 よろしくお願いいたします。

  • アクセスのクエリで出来る事なのでしょうか?

    以下の様な処理がクエリで出来るものかの判断がつかず、また、出来るとしてもクエリの作り方が判りません。。。 [テーブルA] コード 品名  種類 1111  A    0 1111  A    1 1111  A    2 1111  A    3 2222  B    0 2222  B    1 2222  B    2 2222  B    3 2222  B    4 3333  C    0 3333  C    1 3333  C    2 3333  C    3 3333  C    4 3333  C    5 3333  C    6 以上の様なフィールド構成を持つテーブルです。 「コード」で管理される「品名」の持つ「種類」の列の最大値を、新しく追加した「在庫」列を持つテーブルBの「在庫」列に抽出して以下の様に同一「コード」内に全て書き込みたいと思っておりますが、クエリ作成の勉強を始めたばかりで、上記の様な複雑(?)なクエリの作り方が判りません。 ※簡単なクエリをデザインビューで作ったり、SQL ビューで簡単な改造が出来る位です。 [テーブルB](処理後) コード 品名  種類 在庫 1111  A    0   3 1111  A    1   3 1111  A    2   3 1111  A    3   3 2222  B    0   4 2222  B    1   4 2222  B    2   4 2222  B    3   4 2222  B    4   4 3333  C    0   6 3333  C    1   6 3333  C    2   6 3333  C    3   6 3333  C    4   6 3333  C    5   6 3333  C    6   6 尚、「種類」列の値は必ず0から順番に(012345・・・の様に)並ぶ規則となっております。 テーブルAに「在庫」列を追加挿入してから「種類」の最大値を書き込む方法でも、テーブルB(テーブルAをコピーして「種類」列を追加したテーブル)に書き込ませる方法でもどちらでも問題はありません。 どなたかご教示頂ければと思います。宜しくお願い致します。  

  • MS アクセス クエリ作成 名称抽出方法

    アクセスのクエリの作成がわかりません(アクセスのバージョンは2003です) アクセスの初心者です。Webをみたり参考書を見たりしているのですが、、、クエリの作成方法が分からず困っております。どなた操作方法を教えていただけますか。お願いいたします。 抽出したいのは以下の1, 商品明細テーブルから「商品名」全件に対して「商品コード」の頭4桁をキーにして、仕入先テーブルのコードから「名称」を取得する方法です。 当方の作成したクエリは下記の通り操作しましたが、結果はすべて"該当なし"になってしまいます。 ・クエリ作成画面で両テーブルを結合。 ・フィールド欄に以下の式を入力しました 仕入先名称:iif(strcomp(Left([商品明細テーブル].[商品コード],4),[仕入先テーブル].[コード],0)=0,[仕入先テーブル].[ 名称],"該当なし") 1, 商品明細テーブル 商品名 価格 商品コード --------------------------- 商品A \110 AAA01115000 商品B \115 AAA19376122 商品C \112 AAA09472391 商品D \115 AAA22947555 商品E \120 AAA09422138 商品F \165 AAA13871911 商品G \150 AAA09272611 商品H \210 AAA27319313 2, 仕入先テーブル コード 名称 AAA0 XXXX商事 AAA1 YYYY産業 AAA2 (株)ZZZZ 恐れ入りますが、ご回答の程宜しくお願いいたします。

  • Accessクエリの抽出条件

    Access2000を使用しています。 クエリの抽出条件にテーブルの値を使用したいのですが、その方法がわかりません。 テーブルAには、「日付」、「当者コード」 などの項目があります。 テーブルBの項目は「担当者コード」のみです。また、1レコードしか登録 されていません(2レコード以上になることはありません)。 そこで、テーブルAに対するデータ抽出条件を、テーブルBの「担当者」としたいのですが、 どのように記述すればよろしいでしょうか・・・? よろしくお願いします。

専門家に質問してみよう