本文阐释如何在 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 状态栏中是否显示下列消息:

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

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

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

  • 再次运行查询。

返回页首

Need more help?

Expand your skills
Explore Training
Get new features first
Join Microsoft Office Insiders

Was this information helpful?

How satisfied are you with the translation quality?
What affected your experience?

Thank you for your feedback!

×