MSAccess-比類のないクエリウィザード

Accessには、もう1つの非常に便利なウィザードがあります。 Find Unmatched Query Wizard。一致しないクエリの検索ウィザードは、別のテーブルに関連するレコードがない、あるテーブルのレコードまたは行を検索するクエリを作成します。

データがクエリでどのように結合されるか、およびほとんどのクエリが2つ以上のテーブル間の一致をどのように検索するかについてはすでに説明しました。

  • これはAccessのデフォルトの結合です。たとえば、2つのテーブルを使用してクエリを設計する場合、 tblCustomers そして tblOrders、およびこれら2つのテーブルをCustomerIDで結合すると、このクエリは一致する結果のみを返します。つまり、注文した顧客です。

  • たとえば、一致するものを表示したくない場合があります。たとえば、データベースに顧客、つまりまだ注文していない顧客を表示したくない場合があります。

  • これは、一致しないクエリの検索が行うこととまったく同じです。

この種のクエリには、他にも多くの用途が考えられます。

私たちのデータベースでは、これを使用して、プロジェクトをまだ作成していない作成者を確認したり、健康保険をまだ選択していない従業員を確認したりできます。を含むデータベースを開きましょうCustomers そして Ordersテーブル; [作成]タブに移動し、クエリウィザードボタンをクリックします。

を選択 Find Unmatched Query Wizard をクリックします Ok

このシナリオでは、注文していない顧客を探します。最初の画面では、クエリ結果に必要なレコードがどのテーブルまたはクエリに含まれているかを尋ねています。

からの顧客のリストが必要です tblCustomers。そのオプションを選択してクリックしますNext

次の画面で、指定する必要があります which table or query contains the related records。つまり、最初のテーブルと比較するためにどのテーブルを使用していますか。このためには、注文していないものを見つける必要があります。すべての注文に関する情報を含むテーブルを選択する必要があります—tblOrders。次に、をクリックしますNext

次の画面では、両方のテーブルにある情報を指定する必要があります。

  • これは通常、ある種の主キー、外部キー、フィールド、または関係になります。
  • データベースに既存の関係がある場合、Accessはそれらのフィールドを選択して照合します。
  • ただし、一緒に結合できる他のフィールドがあり、同様の情報が含まれている場合は、ここでもそれを選択できます。

ここでは、「tblCustomers」のフィールドと「tblOrders」のフィールドの両方でデフォルトでCustIDが選択されています。次に、をクリックしますNext

次の画面で、クエリ結果に表示するフィールドを選択できます。

次に、使用可能なすべてのフィールドを選択して、両方向矢印をクリックします。これはすべてを動かしますavailable fieldsselected fields範囲。次に、をクリックしますNext

最後の画面では、クエリの名前を選択してクリックすることができます Finish

ここでは、まだ注文していない顧客として1人の顧客がリストされています。

そのクエリがどのように作成されたかを確認することもできます。このためには、に戻る必要がありますDesign View

このウィザードは、 Outer Join tblCustomerとtblOrdersの間、および Is Null基準はtblORdersからCustIDに追加されます。これは、特定のレコードを除外するためです。この場合、注文したか、tblOrdersに関連情報を持っているのは顧客です。