Ms Access 简明教程

MS Access - Unmatched Query Wizard

在 Access 中,还有另一个非常有用的向导,即 Find Unmatched Query Wizard 。查找不匹配查询向导创建一个查询,该查询查找表中没有另一个表中相关记录的记录或行。

正如我们先前讨论的那样,数据如何在查询中连接在一起,以及大多数查询如何查找两个或更多表之间的匹配项。

matched
  1. 例如,这是 Access 中的默认联接,如果您使用两个表 tblCustomerstblOrders 设计一个查询,并通过 CustomerID 来联接这两个表,则此查询将仅返回匹配的结果。换句话说,就是下过订单的客户。

  2. 有时,我们不想看到匹配项,例如,我们可能不想看到数据库中的某个客户(尚未下过订单的客户)。

not placed orders
  1. 这正是查找不匹配项查询所做的。

此类查询还有许多其他可能的用途。

在我们的数据库中,我们可以使用它来查看哪些作者尚未编写项目,或者您可以使用它来查看哪些员工尚未选择任何健康福利。现在让我们打开包含 CustomersOrders 表的数据库;转到“创建”选项卡并单击查询向导按钮。

选择 Find Unmatched Query Wizard 并单击 Ok

unmatched

在此场景中,我们将找出尚未下订单的客户。在第一个屏幕中,它询问包含查询结果记录的表或查询。

我们现在想要 tblCustomers 中的客户列表。选择该选项并单击 Next

customers table

在以下屏幕中,您需要指定 which table or query contains the related records 。换句话说,您使用哪个表与第一个表进行比较。为此,我们需要找到尚未下订单的那些项目。我们需要选择包含所有订单信息的表 tblOrders 。现在,单击 Next

tblorders

在以下屏幕中,您需要指定两张表中包含哪些信息。

  1. 这通常是一些主键、外键、字段或关系。

  2. 如果您在数据库中已有现成的关系,Access 会为您自动选择和匹配这些字段。

  3. 但是,如果您有其他可以一起联接的字段,并包含类似信息,则也可以在此处进行选择。

此处,我们在“tblCustomers”字段和“tblOrders”字段中默认选择了 CustID。现在,单击 Next

custid

在以下屏幕中,您可以选择想要在查询结果中显示的字段。

selected files

现在让我们选择所有可用字段并单击双箭头。这将把所有 available fields 移动到 selected fields 区域。现在,单击 Next

first order

最后一个屏幕将允许您为查询选择一个名称并单击 Finish

without matching

这里我们列出了尚未向我们下订单的某个客户。

customer listed

您还可以了解如何创建该查询。为此,您需要返回到 Design View

is null

此向导在 tblCustomer 和 tblOrders 之间创建了 Outer Join ,并且 Is Null 条件已添加到 tblORders 中的 CustID。这样做是为了排除某些记录。在本例中,这些记录是已下达订单或在 tblOrders 中有相关信息的客户。