メイン コンテンツへスキップ
サポート
Microsoft アカウントでサインイン
サインインまたはアカウントを作成してください。
こんにちは、
別のアカウントを選択してください。
複数のアカウントがあります
サインインに使用するアカウントを選択してください。

場合によっては、 Access 内の 2 つのテーブルを比較し、他のテーブルに対応するレコードがないテーブルの 1 つのレコードを識別したい場合があります。 これらのレコードを識別する最も簡単な方法は、不一致クエリ ウィザードを使用することです。 ウィザードでクエリを作成後、クエリのデザインを変更してフィールドを追加または削除したり、2 つのテーブル間に結合を追加して値が一致するフィールドを示したりすることができます。 ウィザードを使用せず、独自のクエリを作成して不一致のレコードを検索することもできます。

この記事では、不一致クエリ ウィザードを開始および実行する方法、ウィザードの出力を変更する方法、不一致のレコードを検索する独自のクエリを作成する方法について紹介します。

この記事の内容

どのようなときに不一致のレコードを検索しますか。

2 つのテーブルを比較し、不一致のレコードを検索する一般的な状況を、以下に 2 つ示します。 状況によっては、最初の手順で不一致のレコードを検索する場合があります。 この記事では、不一致のレコードを検索する方法のみについて説明します。

  • 1 つのテーブルに任意の物品 (製品など) についてのデータを格納し、別のテーブルにそれに関連するアクションについてのデータ (受注など) を格納する場合。    

    たとえば、ノースウィンド データベース テンプレートでは、商品についてのデータは "商品" テーブルに格納され、各受注に含まれる商品についてのデータは "受注明細" テーブルに格納されます。 仕様により "商品" テーブルには受注についてのデータがないため、"商品" テーブルのみを参照しても、販売されたことのない商品を判別できません。 また、"受注明細" テーブルには販売された製品のデータのみが含まれるため、販売されたことのない商品の情報は、"受注明細" テーブルのみを参照しても判別できません。 販売されたことのない商品を判別するには、2 つのテーブルを比較する必要があります。

    1 つ目のテーブルに含まれるものの一覧を参照して、2 つ目のテーブルに対応するアクションが存在しないことを確認したい場合、不一致クエリを使用することができます。

  • 重複、冗長、または競合する情報を含んだ 2 つのテーブルを、1 つのテーブルに統合する必要がある場合。    

    たとえば、"得意先" という 1 つのテーブルおよび "顧客" という別のテーブルがあるとします。 これらのテーブルはほとんど同じですが、一方のテーブルまたは両方のテーブルには、他方にはないレコードがいくつか含まれています。 これらのテーブルを統合するには、まずどのレコードが、一方のテーブルまたは他方のテーブルで一意になっているのかを判別する必要があります。

    このような状況では、この記事で説明する方法が役に立ちますが、さらに追加の手順が必要な場合があります。 不一致クエリ ウィザードを実行すると不一致のレコードを識別できますが、レコードを結合したセットを取得するには、ウィザードの結果を使用してユニオン クエリを作成します。 構造化照会言語 (SQL) ステートメントの記述に慣れている場合は、不一致クエリ ウィザードを使用せずに、手動でユニオン クエリを記述してもかまいません。

    重複、冗長、または競合する情報の問題は、複数のテーブルに重複するデータを確認することで対処できる場合があります。

ユニオン クエリ、または重複するデータの検索、非表示、あるいは除去の詳細については、「参照」セクションのリンクをクリックしてください。

注: この記事の例では、ノースウィンド データベース テンプレートを使用して作成されたデータベースを使用します。

ノースウィンドのセットアップ方法

  1. [ファイル] タブの [新規] をクリックします。 

  2. 使用している Access のバージョンによっては、検索ボックスまたは左側のウィンドウでノースウィンドを検索することができます。[テンプレート カテゴリ] で [ローカル テンプレート] をクリックします。

  3. [ローカル テンプレート] で [ノースウィンド 2007 サンプル] をクリックしてから、[作成] をクリックします。

  4. Northwind Traders のページ ([スタートアップ画面] オブジェクト タブ) の指示に従ってデータベースを開き、[ログイン ダイアログ] ウィンドウを閉じます。

不一致クエリ ウィザードを使用して 2 つのテーブルを比較する

  1. [作成] タブの [クエリ] グループで [クエリ ウィザード] をクリックします。 

    Access リボンの [クエリ] グループには 2 つのオプションがあります。クエリ ウィザードとクエリ デザイン
  2. [新しいクエリ] ダイアログ ボックスの [不一致クエリ ウィザード] をダブルクリックします。

  3. ウィザードの最初のページで、不一致のレコードのあるテーブルをクリックし、[次へ] をクリックします。 たとえば、販売されたことがないノースウィンドの商品の一覧を表示するには、[商品] テーブルをクリックします。

    [不一致クエリ ウィザード] ダイアログ ボックスで、テーブルまたはクエリを選択します。
  4. 2 番目のページで、関連するテーブルをクリックし、[次へ] をクリックします。 この例の場合は、[受注明細] テーブルをクリックします。

    または不一致クエリ ウィザードのダイアログ ボックスに関連するレコードを含むテーブルまたはクエリを選択します。
  5. 3 番目のページで、テーブルを関連付けるフィールドを選択し、[< = >] をクリックして、[次へ] をクリックします。 テーブルごとに 1 つのフィールドのみを選択できます。 この例の場合は、"商品" テーブルの [ID] および "受注明細" テーブルの [商品 ID] を選択します。 [関連付けるフィールド] ボックスのテキストを見て、正しいフィールドが組み合わされていることを確認します。

    [不一致クエリ ウィザード] ダイアログ ボックスのテーブルから、一致するフィールドを選択します。

    既存のリレーションシップがテンプレートに組み込まれているため、[ID] フィールドおよび [商品 ID] フィールドは既に選択されている場合があります。

  6. 4 番目のページで、確認する 1 つ目のテーブルのフィールドをダブルクリックし、[次へ] をクリックします。 この例の場合は、[ID] フィールドおよび [商品名] フィールドをクリックします。

    [不一致クエリ ウィザード] ダイアログ ボックスのクエリの出力に表示するフィールドを選択します。
  7. 5 番目のページで、結果を表示するか、クエリのデザインを変更するかを選択できます。 この例では、[クエリを実行して結果を表示する] をオンにします。 表示されたクエリ名を使用して、[完了] をクリックします。

    [不一致クエリ ウィザード] ダイアログ ボックスで、不一致クエリの名前を入力します。

    クエリのデザインを変更して、他の条件を追加したり、並べ替え順序を変更したり、フィールドを追加または削除したりできます。 一致しない検索クエリの変更については、次のセクションを参照してください。または、クエリの作成と変更に関する一般的な情報については、「 関連項目」 セクションのリンクを参照してください。

不一致クエリを作成、変更して複数フィールドを比較する

  1. [作成] タブの [クエリ] グループで [クエリ ウィザード] をクリックします。 

  2. [新しいクエリ] ダイアログ ボックスの [不一致クエリ ウィザード] をダブルクリックします。

  3. ウィザードの最初のページで、不一致のレコードのあるテーブルをクリックし、[次へ] をクリックします。 たとえば、販売されたことがないノースウィンドの商品の一覧を表示するには、[商品] テーブルをクリックします。

  4. 2 番目のページで、関連するテーブルをクリックし、[次へ] をクリックします。 この例の場合は、[受注明細] テーブルをクリックします。

  5. 3 番目のページで、テーブルを関連付けるフィールドを選択し、[< = >] をクリックして、[次へ] をクリックします。 テーブルごとに 1 つのフィールドのみを選択できます。 この例の場合は、"商品" テーブルの [ID] および "受注明細" テーブルの [商品 ID] を選択します。 [関連付けるフィールド] ボックスのテキストを見て、正しいフィールドが組み合わされていることを確認します。 ウィザードを完了した後に、残りのフィールドを結合できます。

    既存のリレーションシップがテンプレートに組み込まれているため、[ID] フィールドおよび [商品 ID] フィールドは既に選択されている場合があります。

  6. 4 番目のページで、確認する 1 つ目のテーブルのフィールドをダブルクリックし、[次へ] をクリックします。 この例の場合は、[ID] フィールドおよび [商品名] フィールドをクリックします。

  7. 5 番目のページで、[クエリのデザインを編集する] をクリックし、[完了] をクリックします。

    デザイン ビューにクエリが開きます。

  8. クエリのデザイン グリッドで、ウィザードの 3 番目のページで指定したフィールド (この例では ID と製品 ID) によって、2 つのテーブルが結合されていることを確認します。 関連するフィールドの残りのペアごとに、1 つ目のテーブル (不一致のレコードがあるテーブル) から 2 つ目のテーブルにフィールドをドラッグして、結合を作成します。 たとえば、"商品" テーブルの [表示価格] フィールドを "受注明細" テーブルの [単価] フィールドにドラッグします。

  9. 結合 (フィールドを結んでいる線) をダブルクリックして、[結合プロパティ] ダイアログ ボックスを開きます。 結合ごとに、"商品" テーブルの全レコードを含めるオプションを選択し、[OK] をクリックします。

    クエリのデザイン グリッドで、各結合の終端に矢印があることを確認します。

    線のスタイルで結合の種類が示されます。

    1. "表示価格" フィールドと "単価" フィールドとの間に結合を作成すると、両方のテーブルの出力が制限されます。 両方のテーブルに一致するデータがあるレコードのみが、クエリ結果に含まれます。

    2. 結合プロパティを編集すると、矢印が指すテーブルのみが結合によって制限されます。 矢印の元のテーブルのレコードは、すべてクエリ結果に含まれます。

    注: 結合の矢印は、すべて同じ方向を指すようにしてください。

  10. 関連するレコードがあるテーブル (この例では、"受注明細" テーブル) 内の、1 つ目のテーブルに結合されているフィールドのうち、ウィザードの 3 番目のページで選択したフィールド (この場合、"商品 ID" フィールド) を除く各フィールドをダブルクリックします。 これらのフィールドごとに、[表示] 行のチェック ボックスをオフにし、[抽出条件] 行に「Is Null」と入力します。

  11. オプションで、他のクエリ フィールドに抽出条件を追加するか、1 つ目のテーブルの値に基づく集計フィールドを作成します。

  12. [ クエリ デザイン ] タブの [ 結果 ] グループで、[ 実行] をクリックします。

    クエリによって、既存の受注に含まれていない商品の名前が返されます。

独自のクエリを作成して不一致のレコードを検索する

  1. [作成] タブの [クエリ] グループで [クエリ デザイン] をクリックします。 

  2. 一致しないレコードがあるテーブルをダブルクリックし、関連するレコードがあるテーブルをダブルクリックします。

  3. クエリのデザイン グリッドで、2 つのテーブルの関連するフィールドを結ぶ、結合と呼ばれる線があることを確認します。 結合がない場合は、1 つ目のテーブル (不一致のレコードがあるテーブル) の関連する各フィールドを 2 つ目のテーブル (関連するレコードがあるテーブル) にドラッグして作成します。

  4. 結合をダブルクリックして [結合プロパティ] ダイアログ ボックスを開きます。 結合ごとに、オプション [2] をオンにし、[OK] をクリックします。

    クエリのデザイン グリッドで、結合が変化し、終端に矢印ができることを確認します。

    注: 結合は、すべて同じ方向を指すようにしてください。 結合が異なる方向を指しているとクエリは実行されず、結合が矢印でない場合も実行されないことがあります。 結合は、不一致のレコードがあるテーブルから出ている必要があります。

  5. 不一致のレコードがあるテーブルで、クエリで返すフィールドをダブルクリックします。

    オプションで、これらの任意のフィールドの抽出条件を入力するか、集計フィールドを作成します。

  6. 関連するレコードがあるテーブルで、1 つ目のテーブルに結合されている各フィールドをダブルクリックします。 これらのフィールドごとに、[表示] 行のチェック ボックスをオフにし、[抽出条件] 行に「Is Null」と入力します。

  7. [ クエリ デザイン ] タブの [ 結果 ] グループで、[ 実行] をクリックします。

関連項目

簡単な選択クエリを作成する

重複レコードをクエリで検索する

ユニオン クエリを使って複数のクエリを 1 つの結果に結合する

ヘルプを表示

その他のオプションが必要ですか?

サブスクリプションの特典の参照、トレーニング コースの閲覧、デバイスのセキュリティ保護方法などについて説明します。

コミュニティは、質問をしたり質問の答えを得たり、フィードバックを提供したり、豊富な知識を持つ専門家の意見を聞いたりするのに役立ちます。

この情報は役に立ちましたか?

言語の品質にどの程度満足していますか?
どのような要因がお客様の操作性に影響しましたか?
[送信] を押すと、Microsoft の製品とサービスの改善にフィードバックが使用されます。 IT 管理者はこのデータを収集できます。 プライバシーに関する声明。

フィードバックをいただき、ありがとうございます。

×