codecamp

MS Access查找不匹配项

在Access中,有另一个非常有用的向导,并且是查找不匹配的查询向导。查找不匹配的查询向导将创建查找一个表中在另一个表中没有相关记录的记录或行。

正如我们已经讨论了数据如何在查询中连接在一起,以及大多数查询如何查找两个或多个表之间的匹配。

Matched
  • 这是Access中的默认连接,例如,如果我们设计具有两个表(tblCustomerstblOrders)的查询,并通过CustomerID连接这两个表,则此查询将仅返回匹配的结果。换句话说,已经下订单的客户。

  • 有时我们不想看到匹配,例如,我们可能不想看到我们的数据库中的任何客户 - 尚未下订单的客户。

Not Placed Orders
  • 这正是查找不匹配的查询。

这种查询也有许多其他可能的用途。

在我们的数据库中,我们可以使用它来查看哪些作者尚未撰写项目,或者您可以使用它来查看哪些员工尚未选择任何健康福利。

选择查找不匹配的查询向导,然后单击确定。

Unmatched

在这种情况下,我们将注意那些没有下订单的客户。在第一个屏幕中,它要求哪个表或查询包含您在查询结果中需要的记录。

我们现在想要一个来自tblCustomers的客户列表。选择该选项,然后单击下一步。

Customers Table

在以下屏幕中,您需要指定哪个表或查询包含相关记录。换句话说,你使用什么表来与第一个比较。为此,我们需要找到那些没有下订单的。我们需要选择包含所有订单信息的表 - tblOrders。现在,单击下一步。

TblOrders

在下面的屏幕中,您需要指定哪条信息是这两个表所示。

  • 这通常是某种类型的主键,外键,字段或关系。
  • 如果您的数据库中存在现有关系,Access将为您选择并匹配这些字段。
  • 但是,如果你有其他字段,你可以连接在一起,包含类似的信息,您可以选择在这里。

在这里,我们在“tblCustomers”中的字段和“tblOrders”中的字段中默认选择CustID。现在,单击下一步。

CustID

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

Selected Files

现在让我们选择所有可用字段,然后单击双头箭头。这将所有可用字段移动到所选字段区域。现在,单击下一步。

First Order

最后一个屏幕将允许您为查询选择一个名称,然后单击完成。

Without Matching

在这里,我们列出了一个还没有下订单的客户。

Customer Listed

您还可以查看该查询的创建方式。为此,您需要返回到设计视图

Is Null

此向导在tblCustomer和tblOrders之间创建了外部联接,并且Is Null标准被添加到来自tblORders的CustID。这是为了排除某些记录。在这种情况下,是下订单的客户,或在tblOrders中有相关信息的客户。

MS Access查找重复项
MS Access创建窗体
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }