使用联合查询将多个查询合并到单个结果中

使用联合查询将多个查询合并到单个结果中

注意:  我们希望能够尽快以你的语言为你提供最新的帮助内容。 本页面是自动翻译的,可能包含语法错误或不准确之处。我们的目的是使此内容能对你有所帮助。可以在本页面底部告诉我们此信息是否对你有帮助吗? 请在此处查看本文的 英文版本 以便参考。

有时您可能希望从一个表或查询与形成一组记录-带有两个或多个表中的所有记录的列表中的一个或多个其他表中的记录的列表。这是在 Access 中联合查询的目的。

若要有效地理解联合查询,您首先应熟悉设计在 Access 中的基本的选择查询。若要了解有关设计选择查询的详细信息,请参阅创建简单的选择查询

注意: 本文中的内容适用于 Access 桌面数据库。不能在 Access Web 数据库或 Access Web 应用中创建或使用联合查询。

学习使用联合查询示例

如果您永远不会创建联合查询之前,您可能会发现非常有用到第一个研究实用示例 Northwind Access 模板中。您可以通过单击文件搜索上获取的入门页面的访问权限的 Northwind 示例模板 >新建或您可以直接下载副本从以下位置: Northwind 示例模板

Access 打开罗斯文数据库后,关闭登录对话框窗体的第一次出现,然后展开导航窗格。单击导航窗格的顶部,然后选择对象类型来组织按其类型的所有数据库对象。接下来,展开查询组中,您将看到称为产品交易的查询。

联合查询易于区分从其他查询对象,因为它们具有类似于缠结在一起的两个圆形代表美国的设置从两个集中的特殊图标:

在 Access 中的联合查询图标的屏幕截图。

普通选择与和不同动作查询,在联合查询中,这意味着图形查询设计器不能用于生成或编辑联合查询的访问权限不相关的表。您将遇到此如果从导航窗格; 打开联合查询Access 将其打开,并在数据表视图中显示结果。在开始选项卡上的视图命令中,您将注意到,设计视图不可用时使用联合查询。使用联合查询时,仅可以切换数据表视图SQL 视图之间。

若要继续您研究的联合查询本例中,单击开始>视图> SQL 视图以查看其定义的 SQL 语法。在此图中,我们已添加在 SQL 的一些额外的间距,以便您可以轻松地查看构成联合查询的各个部分。

从罗斯文示例 Access 模板联合查询的 SQL 视图中的可视示例。

让我们研究罗斯文数据库的详细信息从该联合查询的 SQL 语法:

SELECT [Product ID], [Order Date], [Company Name], [Transaction], [Quantity]
FROM [Product Orders]

UNION

SELECT [Product ID], [Creation Date], [Company Name], [Transaction], [Quantity]
FROM [Product Purchases]

ORDER BY [Order Date] DESC;

第一个和此 SQL 语句的第三个部分是实际上是两个选择查询。这些查询检索两组不同的记录。从产品订单表和一个产品采购表中的一个。

此 SQL 语句的第二部分是UNION关键字告诉访问此查询将合并记录这两组。

此 SQL 语句的最后一部分决定使用ORDER BY语句排序合并记录。在此示例中,Access 将订购的所有记录按降序顺序订单日期字段。

注意: 联合查询通常是 Access; 中以只读方式不能更改数据表视图中的任何值。

通过创建并合并选择查询创建联合查询

即使您可以通过直接编写的 SQL 语法在 SQL 视图中,您可能会发现更轻松地与选择查询的部分中构建它来创建联合查询。然后,您可以复制并粘贴到组合联合查询的 SQL 部分。

如果您想要跳过阅读步骤,而是观看示例,请参阅下一节,观看构建联合查询的示例

  1. “创建”选项卡上的“查询”组中,单击“查询设计”

  2. 在“显示表”对话框中,双击要包括的字段所在的表。这会将该表添加到查询设计窗口。

  3. 关闭“显示表”对话框。

  4. 在查询设计窗口中,双击您要包括的字段的每个。选择字段时,确保您在同一个订单中添加相同数量的字段,,您添加到其他选择查询。请注意数据类型的字段,并确保他们中要组合的其他查询中的相同位置有兼容的数据类型的字段。例如,如果您的第一个选择查询有五个字段,其中第一个包含日期/时间数据,请确保每个其他要组合的选择查询也有五个字段,其中第一个包含日期/时间数据,等等。

  5. (可选) 条件向字段中添加您通过在字段网格的条件行中键入适当的表达式。

  6. 添加完字段和字段条件后,应运行选择查询并查看其输出。在“设计”选项卡上的“结果”组中,单击“运行”。

  7. 将查询切换到“设计”视图。

  8. 保存该选择查询,但不要将其关闭。

  9. 对于要合并的每个选择查询,请重复此过程。

现在,创建选择查询,就可以将它们组合。在此步骤中,您可以通过复制和粘贴的 SQL 语句创建联合查询。

  1. “创建”选项卡上的“查询”组中,单击“查询设计”

  2. 关闭“显示表”对话框。

  3. 设计选项卡的查询组中,单击联合。Access 隐藏查询设计窗口中,并显示 SQL 视图对象选项卡。此时,SQL 视图对象选项卡为空。

  4. 单击要合并在联合查询中的第一个选择查询的选项卡。

  5. 在“开始”选项卡上,单击“视图”>“SQL 视图”。

  6. 复制选择查询的 SQL 语句。单击开始之前创建的联合查询选项卡。

  7. 将选择查询的 SQL 语句粘贴到联合查询的 SQL 视图对象选项卡中。

  8. 删除选择查询 SQL 语句末尾的分号 (;)。

  9. 按 Enter 键将光标下移一行,然后在新行键入 UNION。

  10. 单击要合并到联合查询中的下一个选择查询的选项卡。

  11. 请重复步骤 5 到步骤 10,直至将选择查询的所有 SQL 语句都通过复制和粘贴的方式添加到联合查询的 SQL 视图窗口中。对于最后一个选择查询的 SQL 语句,请勿删除其分号或键入任何内容。

  12. “设计”选项卡上的“结果”组中,单击“运行”

联合查询的结果将显示在数据表视图中。

观看构建联合查询的示例

下面是一个示例,您可以在 Northwind 示例数据库中重新创建。此联合查询从客户表中收集的人员的姓名,并将它们组合与供应商表中的人员的姓名。如果您想要跟上进度,着手解决 Northwind 示例数据库副本中的步骤。

联合查询中罗斯文示例 Access 模板构建的可视示例。

下面是需要建立此示例中的步骤:

  1. 创建名为 Query1 和 Query2 与客户和产品表分别为数据源的两个选择查询。使用名字和姓氏字段时显示的值。

  2. 创建新查询最初称为 Query3 与任何数据源,然后单击设计选项卡上的联合命令以使此查询到联合查询。

  3. 复制并粘贴到 Query3 从 Query1 和 Query2 的 SQL 语句。请务必删除额外的分号,然后在 UNION 关键字中添加。然后,您可以检查您在数据表视图中的结果。

  4. 在排序子句中添加到查询之一,然后将 ORDER BY 语句粘贴到联合查询的 SQL 视图。请注意,Query3,联合查询中,在排序即将时能追加,首先分号删除,然后从字段名称的表名称。

  5. 最终 SQL,可以组合和排序本例中联合查询的名称是下列:

    SELECT Customers.Company, Customers.[Last Name], Customers.[First Name]
    FROM Customers
    
    UNION
    
    SELECT Suppliers.Company, Suppliers.[Last Name], Suppliers.[First Name]
    FROM Suppliers
    
    ORDER BY [Last Name], [First Name];

如果您是非常顺利地编写 SQL 语法,当然,您可以编写您自己的 SQL 语句直接联合查询到 SQL 视图。但是,您可能会很有用采用从复制和粘贴 SQL 查询中的其他对象的方法。每个查询可以使用下面的简单的选择查询示例比更为复杂。可以为您创建并将它们合并在联合查询之前,请仔细测试每个查询的优势。如果联合查询无法运行,您可以直到成功,然后再重新生成联合查询已更正语法单独调整每个查询。

查看本文以了解更多提示和技巧有关使用联合查询的其余部分。

使用罗斯文数据库与前一节的示例中,只有两个表中的数据进行组合。但是,您可以结合很方便地在联合查询中的三个或多个表。例如,构建在前面的示例中,您可能希望在查询输出中还包含员工的姓名。您可以通过添加第三个查询并将与使用其他 UNION 关键字如下所示的上一个 SQL 语句组合来完成该任务:

SELECT Customers.Company, Customers.[Last Name], Customers.[First Name]
FROM Customers

UNION

SELECT Suppliers.Company, Suppliers.[Last Name], Suppliers.[First Name]
FROM Suppliers

UNION

SELECT Employees.Company, Employees.[Last Name], Employees.[First Name]
FROM Employees

ORDER BY [Last Name], [First Name];

在数据表视图中查看结果时,将列出所有员工使用示例公司名称、 可能不是非常有用。如果您希望该字段,以指示人员是否全职员工,从供应商或客户,您可以包括固定值代替公司名称。下面介绍了如何 SQL 如下所示:

SELECT "Customer" As Employment, Customers.[Last Name], Customers.[First Name]
FROM Customers

UNION

SELECT "Supplier" As Employment, Suppliers.[Last Name], Suppliers.[First Name]
FROM Suppliers

UNION

SELECT "In-house" As Employment, Employees.[Last Name], Employees.[First Name]
FROM Employees

ORDER BY [Last Name], [First Name];

下面介绍了如何在数据表视图中显示结果。Access 将显示这些五个示例记录:

雇用

姓氏

名字

内部

Freehafer

Nancy

内部

Giussani

Laura

供应商

Glasson

客户

Goldschmidt

客户

Gratacos Solsona

安东尼奥

由于 Access 仅读取联合查询中的第一个查询的输出字段的名称,可以更进一步减小上面的查询。下面介绍您看到我们已从第二个和第三个查询节中删除输出:

SELECT "Customer" As Employment, [Last Name], [First Name]
FROM Customers

UNION

SELECT "Supplier", [Last Name], [First Name]
FROM Suppliers

UNION

SELECT "In-house", [Last Name], [First Name]
FROM Employees

ORDER BY [Last Name], [First Name];

在 Access 联合查询中排序一次只能允许,但可以单独筛选的每个查询。构建在上一节的联合查询,下面介绍了通过添加一个 WHERE 子句的每个查询的位置,我们已筛选示例。

SELECT "Customer" As Employment, Customers.[Last Name], Customers.[First Name]
FROM Customers
WHERE [State/Province] = "UT"

UNION

SELECT "Supplier", [Last Name], [First Name]
FROM Suppliers
WHERE [Job Title] = "Sales Manager"

UNION

SELECT "In-house", Employees.[Last Name], Employees.[First Name]
FROM Employees
WHERE City = "Seattle"

ORDER BY [Last Name], [First Name];

切换到数据表视图,您会看到类似于以下结果:

雇用

姓氏

名字

供应商

Andersen

小姐

内部

Freehafer

Nancy

客户

Hasselberg

Jonas

内部

Hellung Larsen

Anne

供应商

Hernandez Echevarria

Amaya

客户

Mortensen

Sven

供应商

Sandberg

Mikael

供应商

内部

Thorpe

Steven

供应商

Weiler

Cornelia

内部

Zare

Robert

如果到联合查询非常不同,您可能会遇到的输出字段必须在其中合并不同数据类型的数据的情况。如果这样,联合查询最常将返回结果为文本数据类型因为该数据类型可以容纳两个文本数字。

若要了解如何工作,我们将使用 Northwind 示例数据库中的产品交易联合查询。 打开该示例数据库,然后打开在数据表视图中的产品交易查询。应类似于此输出最后十个记录:

产品 ID

订单日期

公司名称

交易记录

数量

77

2006 年 1 月 22

供应商 B

购买

60

80

2006 年 1 月 22

供应商 D

购买

75

81

2006 年 1 月 22

供应商 A

购买

125

81

2006 年 1 月 22

供应商 A

购买

200

7

2006 年 1 月 20

公司 D

Sale

10

51

2006 年 1 月 20

公司 D

Sale

10

80

2006 年 1 月 20

公司 D

Sale

10

34

2006 年 1 月 15

公司 AA

Sale

100

80

2006 年 1 月 15

公司 AA

Sale

30

假设所需数量的字段拆分为两个-购买和销售。我们还假定您想要固定零值的字段没有值。下面是此联合查询的 SQL 外观:

SELECT [Product ID], [Order Date], [Company Name], [Transaction], 0 As Buy, [Quantity] As Sell
FROM [Product Orders]

UNION

SELECT [Product ID], [Creation Date], [Company Name], [Transaction], [Quantity] As Buy, 0 As Sell
FROM [Product Purchases]

ORDER BY [Order Date] DESC; 

如果您切换到数据表视图,您将看到的最后十个记录,现在显示如下所示:

产品 ID

订单日期

公司名称

交易记录

购买

销售

74

2006 年 1 月 22

供应商 B

购买

20

0

77

2006 年 1 月 22

供应商 B

购买

60

0

80

2006 年 1 月 22

供应商 D

购买

75

0

81

2006 年 1 月 22

供应商 A

购买

125

0

81

2006 年 1 月 22

供应商 A

购买

200

0

7

2006 年 1 月 20

公司 D

Sale

0

10

51

2006 年 1 月 20

公司 D

Sale

0

10

80

2006 年 1 月 20

公司 D

Sale

0

10

34

2006 年 1 月 15

公司 AA

Sale

0

100

80

2006 年 1 月 15

公司 AA

Sale

0

30

继续此示例中,如果您希望为零,则为空的字段?您可以修改 SQL 以显示,而不是通过在如下所示的 Null 关键字添加零的任何内容:

SELECT [Product ID], [Order Date], [Company Name], [Transaction], Null As Buy, [Quantity] As Sell
FROM [Product Orders]

UNION

SELECT [Product ID], [Creation Date], [Company Name], [Transaction], [Quantity] As Buy, Null As Sell
FROM [Product Purchases]

ORDER BY [Order Date] DESC;

但是,您可能会看到已切换到数据表视图,因为现在您有了意外的结果。在购买列中,清除每个字段:

产品 ID

订单日期

公司名称

交易记录

购买

销售

74

2006 年 1 月 22

供应商 B

购买

77

2006 年 1 月 22

供应商 B

购买

80

2006 年 1 月 22

供应商 D

购买

81

2006 年 1 月 22

供应商 A

购买

81

2006 年 1 月 22

供应商 A

购买

7

2006 年 1 月 20

公司 D

Sale

10

51

2006 年 1 月 20

公司 D

Sale

10

80

2006 年 1 月 20

公司 D

Sale

10

34

2006 年 1 月 15

公司 AA

Sale

100

80

2006 年 1 月 15

公司 AA

Sale

30

发生这种情况的原因是因为访问决定从第一个查询字段的数据类型。在此示例中,Null 不是数字。

因此如果您尝试并插入空字符串的空值的字段发生什么情况?对于此尝试 SQL 可能如下所示:

SELECT [Product ID], [Order Date], [Company Name], [Transaction], "" As Buy, [Quantity] As Sell
FROM [Product Orders]

UNION

SELECT [Product ID], [Creation Date], [Company Name], [Transaction], [Quantity] As Buy, "" As Sell
FROM [Product Purchases]

ORDER BY [Order Date] DESC;

切换到数据表视图时,您将看到,Access 会检索的购买值,但其转换为文本值。您可以辨别这些是文本值,因为它们是左对齐数据表视图中。第一个查询中的空字符串不是数字,因此,您将看到以下结果。您还会注意到,销售值也将转换为文本因为购买记录包含一个空字符串。

产品 ID

订单日期

公司名称

交易记录

购买

销售

74

2006 年 1 月 22

供应商 B

购买

20

77

2006 年 1 月 22

供应商 B

购买

60

80

2006 年 1 月 22

供应商 D

购买

75

81

2006 年 1 月 22

供应商 A

购买

125

81

2006 年 1 月 22

供应商 A

购买

200

7

2006 年 1 月 20

公司 D

Sale

10

51

2006 年 1 月 20

公司 D

Sale

10

80

2006 年 1 月 20

公司 D

Sale

10

34

2006 年 1 月 15

公司 AA

Sale

100

80

2006 年 1 月 15

公司 AA

Sale

30

您如何解决此智力游戏?

解决方案是强制执行查询期望字段值为数字。这可以使用表达式来实现:

IIf(False, 0, Null)

条件检查False,将永远不会True,因此表达式将始终返回空值,但访问仍计算两个输出选项,并决定输出为数字或 Null。

下面是我们使用示例中,我们就可以使用此表达式:

SELECT [Product ID], [Order Date], [Company Name], [Transaction], IIf(False, 0, Null) As Buy, [Quantity] As Sell
FROM [Product Orders]

UNION

SELECT [Product ID], [Creation Date], [Company Name], [Transaction], [Quantity] As Buy, Null As Sell
FROM [Product Purchases]

ORDER BY [Order Date] DESC;

请注意不必要的修改第二个查询。

如果您切换到数据表视图,您将立即看到我们希望的结果:

产品 ID

订单日期

公司名称

交易记录

购买

销售

74

2006 年 1 月 22

供应商 B

购买

20

77

2006 年 1 月 22

供应商 B

购买

60

80

2006 年 1 月 22

供应商 D

购买

75

81

2006 年 1 月 22

供应商 A

购买

125

81

2006 年 1 月 22

供应商 A

购买

200

7

2006 年 1 月 20

公司 D

Sale

10

51

2006 年 1 月 20

公司 D

Sale

10

80

2006 年 1 月 20

公司 D

Sale

10

34

2006 年 1 月 15

公司 AA

Sale

100

80

2006 年 1 月 15

公司 AA

Sale

30

以获得相同的结果另一种方法是在前面添加联合查询与另一个查询中的查询:

SELECT 
    0 As [Product ID], Date() As [Order Date], 
    "" As [Company Name], "" As [Transaction], 
    0 As Buy, 0 As Sell
FROM [Product Orders]
WHERE False

对于每个字段中,Access 会返回您定义的数据类型的固定的值。当然,不希望干扰结果,以便技巧来避免这是包含 WHERE 子句为 False 此查询的输出:

WHERE False

这是一个小技巧,因为这始终为 false,并且然后查询不返回任何内容。合并此与现有的 SQL 语句并我们达到完成语句,如下所示:

SELECT 
    0 As [Product ID], Date() As [Order Date], 
    "" As [Company Name], "" As [Transaction], 
    0 As Buy, 0 As Sell
FROM [Product Orders]
WHERE False

UNION

SELECT [Product ID], [Order Date], [Company Name], [Transaction], Null As Buy, [Quantity] As Sell
FROM [Product Orders]

UNION

SELECT [Product ID], [Creation Date], [Company Name], [Transaction], [Quantity] As Buy, Null As Sell
FROM [Product Purchases]

ORDER BY [Order Date] DESC;

注意: 合并的查询在此示例中使用罗斯文数据库返回 100 条记录,而两个单独的查询返回 58 和 43 总共 101 记录的记录。这种差异的原因是因为不是唯一两条记录。请参阅部分中,使用不同的记录中使用 UNION ALL 联合查询,以了解如何通过使用 UNION ALL 解决这种情况。

联合查询的一种特殊情况是合并一组与一个包含一个或多个字段的总和的记录的记录。

下面是您可以创建说明如何获取联合查询中的汇总 Northwind 示例数据库中的另一个示例。

  1. 创建一个新的简单查询以查看 beers 购买 (产品 ID = 34 罗斯文数据库中的) 使用下面的 SQL 语法:

    SELECT [Purchase Order Details].[Date Received], [Purchase Order Details].Quantity
    FROM [Purchase Order Details]
    WHERE ((([Purchase Order Details].[Product ID])=34))
    
    ORDER BY [Purchase Order Details].[Date Received];
  2. 切换到数据表视图,您应看到四个购买:

    接收日期

    数量

    2006 年 1 月 22

    100

    2006 年 1 月 22

    60

    2006 年 4/4

    50

    4/5/2006

    300

  3. 要获取总,创建简单使用以下 SQL 聚合查询:

    SELECT Max([Date Received]), Sum([Quantity]) AS SumOfQuantity
    FROM [Purchase Order Details]
    WHERE ((([Purchase Order Details].[Product ID])=34))
  4. 切换到数据表视图,您应看到只有一个记录:

    收到的 MaxOfDate

    小计

    4/5/2006

    510

  5. 将这两个查询合并到联合查询中追加到采购记录的总数量的记录中:

    SELECT [Purchase Order Details].[Date Received], [Purchase Order Details].Quantity
    FROM [Purchase Order Details]
    WHERE ((([Purchase Order Details].[Product ID])=34))
    
    UNION
    
    SELECT Max([Date Received]), Sum([Quantity]) AS SumOfQuantity
    FROM [Purchase Order Details]
    WHERE ((([Purchase Order Details].[Product ID])=34))
    
    ORDER BY [Purchase Order Details].[Date Received];
  6. 切换到数据表视图,您应看到四个购买的每个跟汇总数量的记录的总和:

    接收日期

    数量

    2006 年 1 月 22

    60

    2006 年 1 月 22

    100

    2006 年 4/4

    50

    4/5/2006

    300

    4/5/2006

    510

包含添加汇总到联合查询的基础知识。您可能还想要包括固定的值,如"详细信息"和"总计"从其他记录直观地分隔总记录的两个查询中。您可以查看使用三个或多个表或查询中联合查询合并部分中的固定的值。

默认情况下在 Access 中的联合查询只包含不同的记录。但是,如果您想要包括的所有记录?另一个示例下面可能很有用。

在上一节中,我们向您展示如何在联合查询中创建总计。修改该联合查询 SQL 包含产品 ID = 48:

SELECT [Purchase Order Details].[Date Received], [Purchase Order Details].Quantity
FROM [Purchase Order Details]
WHERE ((([Purchase Order Details].[Product ID])=48))

UNION

SELECT Max([Date Received]), Sum([Quantity]) AS SumOfQuantity
FROM [Purchase Order Details]
WHERE ((([Purchase Order Details].[Product ID])=48))

ORDER BY [Purchase Order Details].[Date Received];

切换到数据表视图,您应看到较为误导结果:

接收日期

数量

2006 年 1 月 22

100

2006 年 1 月 22

200

当然,一条记录不会在总计返回两次的数量。

请参阅此结果的原因是因为上一天的巧克力相同数量销售两次-采购订单明细表中记录。下面是简单的选择查询结果显示 Northwind 示例数据库中的两个记录:

采购订单 ID

产品

数量

100

玉米片

100

92

玉米片

100

在联合查询中前文所述,您可以看到采购订单 ID 字段未包含和两个字段不构成两个不同的记录。

如果您想要包括的所有记录,则使用 UNION ALL,而不是在您的 SQL 联合。这通常很可能会影响排序结果,,因此您可能希望还包括 ORDER BY 子句,以确定排序顺序。下面是修改的 SQL 构建关闭前面的示例:

SELECT [Purchase Order Details].[Date Received], Null As [Total], [Purchase Order Details].Quantity
FROM [Purchase Order Details]
WHERE ((([Purchase Order Details].[Product ID])=48))

UNION ALL

SELECT Max([Date Received]), "Total" As [Total], Sum([Quantity]) AS SumOfQuantity
FROM [Purchase Order Details]
WHERE ((([Purchase Order Details].[Product ID])=48))

ORDER BY [Total];

切换到数据表视图,您应看到除了总计的详细信息作为最后一条记录:

接收日期

总计

数量

2006 年 1 月 22

100

2006 年 1 月 22

100

2006 年 1 月 22

总计

200

联合查询的常见用法是用作窗体上组合框控件的记录源。您可以使用该组合框选择要筛选窗体的记录的值。例如,筛选按其城市的员工记录。

若要查看此可能的工作原理,下面是您可以创建 Northwind 示例数据库,以说明此方案中的另一个示例。

  1. 创建简单的选择查询 SQL 语法如下:

    SELECT Employees.City, Employees.City AS Filter
    FROM Employees;
  2. 切换到数据表视图,您应看到以下结果:

    城市

    Filter

    Seattle

    Seattle

    Bellevue

    Bellevue

    Redmond

    Redmond

    柯克

    柯克

    Seattle

    Seattle

    Redmond

    Redmond

    Seattle

    Seattle

    Redmond

    Redmond

    Seattle

    Seattle

  3. 查找在这些结果可能看不到多个值。通过展开查询并将其转换为联合查询中使用以下 SQL:

    SELECT Employees.City, Employees.City AS Filter
    FROM Employees
    
    UNION
    
    SELECT "<All>", "*" AS Filter
    FROM Employees
    
    ORDER BY City;
  4. 切换到数据表视图,您应看到以下结果:

    城市

    Filter

    < 所有 >

    *

    Bellevue

    Bellevue

    柯克

    柯克

    Redmond

    Redmond

    Seattle

    Seattle

    Access 将执行的九个记录,以前显示的 < 所有 > 固定的字段值与联合和"*"。

    由于此联合子句中不包含 UNION ALL,Access 会返回仅不同的记录表示在每个城市一次只能返回具有相同的固定值。

  5. 既然您已完成的联合查询仅一次,以及一个选项,有效地选择所有城市显示每个城市名称,您可以用于此查询用作记录源窗体上组合框。为模型中使用此特定示例,您可以创建作为其记录源中设置此查询将筛选列列宽属性设置为 0 (零),可以直观地将其隐藏,然后将绑定列属性设置为 1 表示索引窗体上的组合框控件第二列。在表单本身的筛选器属性,然后可以添加如下激活使用组合框控件中所选内容的值的窗体筛选器的代码中:

    Me.Filter = "[City] Like '" & Me![FilterComboBoxName].Value & "'"
    Me.FilterOn = True

    表单的用户可以筛选为特定城市名称的窗体记录或选择 < 所有 > 列出所有城市的所有记录。

返回页首

扩展你的 Office 技能
了解培训
抢先获得新功能
加入 Office 预览体验计划

此信息是否有帮助?

谢谢您的反馈!

谢谢你的反馈! 可能需要转接到 Office 支持专员。

×