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

解決済みの質問

Access2010でテーブルの内容で検索

現在Accessの勉強をしています。

Aテーブル、Bテーブルとあり、
AテーブルはID(オートナンバー)、番号(数字)、名前(文字列)が入っています。
この番号は重複ありで、複数レコードあるとします。

Bテーブルも同じようなID、番号、名前が入っていて、ここの番号は重複していません。
いわばマスタテーブルのようなものです。
(IDと番号を別ける必要があるのかなど、細かいことはこの際気にしないでください。)

Aテーブルの全てのレコードの番号を検索し、Bテーブルにない情報だけを表示したいと思います。

この場合どのようにすればよいでしょうか?
まだAccessを勉強したてで、よくわかっていないのですが、シンプルな方法はどのようにすれば良いのか思案中です。

よろしくお願いします。

投稿日時 - 2012-05-01 17:17:59

QNo.7451586

困ってます

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

> シンプルな方法はどのようにすれば良いのか思案中です。

ご質問の内容でしたら、「不一致クエリ」を使用するのがよいかと
思います。

これについては、クエリの新規作成時に表示されるダイアログにも
「不一致クエリ ウィザード」という選択肢が用意されていますが、
ここではウィザードを使用しない場合の手順を説明してみたいと
思います。

1)新規クエリをデザインビューで開く
2)『テーブルの表示』ダイアログで、テーブルA、テーブルBを追加
3)検索(照合)を行うフィールド(今回は『番号』を一方のテーブル
 から他方のテーブルにドラッグ&ドロップ)し、結合線を追加
 ※上記フィールド間に自動で追加された場合はそのままでOk。
   別のフィールドに結合線がある場合は、それをクリックして
   太線表示にし、キーボードのDeleteキーを押して削除。
4)上記フィールド間の結合線をダブルクリックするなどして、
 『結合プロパティ』ダイアログを開く
 (マウスポインタが少しでもずれていると、クエリのプロパティシート
  が開きますのでご注意を)
 ※メニューで「表示(V)→結合プロパティ(J)」を指定してもOk。
  (テーブルが2つの場合はいいのですが、3つ以上だとクセが
   あって使いにくいのが・・・)
5)「'テーブルA'の全レコードと 'テーブルB'の同じ結合フィールドの
 レコードだけを含める」のオプションボタンを選択し、『OK』ボタン
 で閉じる
6)テーブルBの『番号』フィールドをダブルクリックするなどして、
 クエリのデザインビュー下半分の領域に追加
7)上記フィールドの『表示:』のチェックボックスを外し、『抽出条件:』
 欄に「Null」を指定(→自動で「Is Null」に変換されます)
8)テーブルAから、表示が必要なフィールドを適宜追加
9)クエリを保存して閉じる


・・・以上です。

以下にこちらで作成したクエリのSQL文を、画像に同じくデザイン
ビューを、それぞれ貼付しますので、併せて参考まで。

SELECT テーブルA.*
FROM テーブルA LEFT JOIN テーブルB ON テーブルA.番号 = テーブルB.番号
WHERE (((テーブルB.番号) Is Null));

投稿日時 - 2012-05-01 20:56:57

お礼

ありがとうございます。
クエリを使うのがベストなのでしょうかね。
試しに作ってみます。

投稿日時 - 2012-05-02 12:53:40

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

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

回答(2)

ANo.1

ご参考に
http://www.feedsoft.net/access/guide/guideq23.html

投稿日時 - 2012-05-01 20:52:50

お礼

ありがとうございます。
アクセス入門・・・ちょうど良いサイトです。勉強させていただきます。

投稿日時 - 2012-05-02 12:52:58

あなたにオススメの質問