Applies ToMicrosoft 365 专属 Access Access 2024 Access 2021 Access 2019 Access 2016

本文阐释如何在 Access 中创建和运行生成表查询。 需要复制表中的数据、存档数据或将查询结果另存为表格时,请使用生成表查询。

如果需要更改或更新现有记录集中的部分数据,例如一个或多个字段,可以使用更新查询。 有关更新查询的详细信息,请参阅创建和运行更新查询一文。

如果需要向现有表中添加记录(行),请使用追加查询。 有关追加查询的详细信息,请参阅使用追加查询将记录添加到表一文。

你要做什么?

了解生成表查询

生成表查询可从一个或多个表中检索数据,然后将结果集加载到新表中。 新表可位于之前打开的数据库中,也可在其他数据库中创建新表。

通常,需要复制或存档数据时可创建生成表查询。 例如,假设有一张(或多张)历史销售数据表,且要在报告中使用此数据。 交易发生在至少一天以前,因此不能更改销售数据,并且通过不断运行查询来检索数据很费时,特别是对较大的数据存储运行复杂的查询时。 将数据加载到单独的表中,然后使用该表作为数据源可减少工作负荷,并方便数据存档。 处理过程中请注意,确切来说新表中的数据是一个快照;它和源表没有任何关系或联系。

创建生成表查询的过程遵循以下主要步骤:

  • 如果数据库未签名或不在受信任的位置中,则启用数据库。 否则无法运行动作查询(追加、更新和生成表查询)。

  • 在查询的“设计”视图中,创建一个选择查询,然后修改该查询,直到它返回所需的记录。 可选择多个表中的数据,且可确定地对数据执行非规范化处理。 例如,可将客户、运货商和供应商数据置于单张表中,但若生产数据库中带有适当规范化的表格,则不会执行此操作。 可在查询中使用条件来进一步自定义结果集或缩小其范围。

    有关规范化处理数据的详细信息,请参阅数据库设计基础一文。

  • 将选择查询转换为生成表查询,选择新表的保存位置,然后运行查询以创建表。

请勿将生成表查询与更新查询或追加查询相混淆。 需要添加或更改单个字段中的数据时,请使用更新查询。 需要向现有表中的现有记录集添加记录(行)时,请使用追加查询。

返回页首

创建生成表查询

若要创建生成表查询,请首先创建选择查询,然后将其转换为生成表查询。 选择查询可以使用计算字段和表达式来帮助返回所需的数据。 下面的步骤说明了如何创建和转换选择查询。 如果已经有满足需要的选择查询,则可以跳至转换选择查询和运行生成表查询的步骤。

创建选择查询

注意: 如果已经有产生所需数据的选择查询,请转到下一节中的步骤。

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

  2. 双击要从中检索数据的表。 每个表都显示为查询设计器上半部分的一个窗口。 添加完表后,单击“关闭”。

  3. 在每个表中,双击要在查询中使用的字段。 每个字段均显示在设计网格“字段”行中的一个空白单元格中。 下图显示的是添加了多个表字段的设计网格。

    设计网格中带有 3 个字段的查询

  4. (可选)向“字段”行添加任何表达式。

  5. (可选)向设计网格的“条件”行添加任何条件。

  6. 单击“ 运行 按钮图像 运行查询并在数据表中显示结果。

  7. (可选)更改字段、表达式或条件,然后重新运行查询,直至其返回要置于新表中的数据。

转换选择查询

  1. 在设计视图中打开选择查询,或者切换到设计视图。 Access 提供了几种执行此操作的方法:

    • 如果查询在数据表中打开,请右键单击查询的文档选项卡,然后单击“设计视图”。

    • 如果查询已关闭,请在导航窗格中右键单击该查询,然后单击快捷菜单上的“设计视图”。

  2. 在“ 查询设计 ”选项卡上的“ 查询类型 ”组中,单击“ 创建表”。

    随即显示“生成表”对话框。

    通过 Access 中的“生成表”对话框,可选择生成表查询的选项。

  3. 在“表名称”框中,输入新表的名称。

    - 或 -

    单击下箭头并选择现有的表名称。

  4. 执行下列操作之一:

    • 将新表放入当前数据库中    

      1. 如果当前数据库尚未选中,单击“当前数据库”,然后单击“确定”。

      2. 单击“ 按钮图像运行 ”,然后单击“ ”以确认操作。

        注意: 如果要替换现有表,则 Access 将首先删除该表并要求您确认删除。 单击“”,然后再次单击“”以创建新表。

    • 将新表放入其他数据库中    

      1. 单击“另一数据库”。

      2. 在“文件名”框中,输入另一个数据库的位置和文件名。

        - 或 -

        单击“浏览”,使用新的“生成表”对话框来定位其他数据库,然后单击“确定”。

      3. 单击“确定”关闭第一个“生成表”对话框。

      4. 单击“ 按钮图像运行 ”,然后单击“ ”以确认操作。

        注意: 如果要替换现有表,则 Access 将首先删除该表并要求您确认删除。 单击“”,然后再次单击“”以创建新表。

返回页首

了解有关查询条件和表达式的详细信息

本文中的步骤涉及到查询条件和表达式。 查询条件是一条规则,用于标识要包含在查询中的记录;希望给定数据集中仅显示部分记录时,请使用条件。 例如,条件 >25 AND <50 将返回大于 25 且小于 50 的值。 条件 "芝加哥" OR "巴黎" OR "莫斯科" 将仅返回这些城市的记录。

有关使用条件的详细信息,请参阅查询条件示例一文。

表达式结合了数学或逻辑运算符、常量、函数、字段名称、控件以及计算结果为单个值的属性。 需要使用表中不直接包含的数据时,请使用表达式。 例如,表达式 [单价]*[数量] 会将单价字段的值和数量字段的值相乘。 使用表达式的方式多种多样,创建和使用表达式的过程可能非常复杂。

返回页首

有关创建和使用表达式的详细信息,请参阅构建表达式一文。

防止禁用模式阻止查询

默认情况下,如果打开未保存在可信位置的数据库,或未选择信任该数据库,Access 将阻止运行所有动作查询(追加、更新、删除或生成表查询)。

如果尝试运行某动作查询,但貌似无响应,请查看 Access 状态栏中是否显示下列消息:

“此操作或事件已被禁用模式阻止。”

看到该消息时,请执行下列操作:

  • 在消息栏(位于功能区下方)上单击“启用内容”。 消息栏

  • 再次运行查询。

返回页首

需要更多帮助?

需要更多选项?

了解订阅权益、浏览培训课程、了解如何保护设备等。

社区可帮助你提出和回答问题、提供反馈,并听取经验丰富专家的意见。