使用追加查询将记录添加到表

应用对象
Microsoft 365 专属 Access Access 2024 Access 2021 Access 2019 Access 2016

本文介绍如何创建和运行追加查询。 当要使用来自其他源的数据向现有表添加新记录时,需使用追加查询。

如果要对现有记录集中的数据进行更改,例如更新字段的值,可使用更新查询。 如果要从所选数据中创建一个新表,或将两个表合并为一个新表,可使用生成表查询。 有关更新查询或生成表查询的详细信息,或有关将记录添加到数据库或更改现有数据的其他方法的一般信息,请参阅另请参阅部分。

本文内容

概述

追加查询从一个或多个数据源中选择记录,并将所选记录复制到现有表中。

例如,假设你有一个数据库,它包含一个有潜在新客户的表,但你的现有数据库中已有一个存储着类似数据的表。 由于想将这些数据存储在同一位置,因此决定将其从新数据库复制到现有的表中。 为了避免手动输入新数据,可使用追加查询来复制记录。

使用追加查询的优势

通过使用查询来复制数据,可以:

  • 一次性追加多条记录 如果手动复制数据,通常必须执行多个复制/粘贴操作。 通过使用查询,可以一次选择所有数据并复制。
  • 复制前请查看所选内容 可以在数据表视图中查看所选内容,并可在复制数据之前根据需要对所选内容进行调整。 如果查询包含条件或表达式,并且需要多次尝试使其正确运行,则此功能尤其方便。 不能撤消追加查询。 如果操作错误,则必须手动或使用删除查询从备份还原数据库或更正错误。
  • 使用条件优化选择 例如,你可能希望仅追加所在城市中的客户的记录。
  • 当目标表中不存在数据源中的某些字段时追加记录 例如,假设现有客户表有 11 个字段,而您要从中复制的新表只有这 11 个字段中的 9 个。 可以使用追加查询复制匹配的九个字段中的数据,而将另两个字段留空。

追加查询的基本步骤

创建追加查询的过程遵循以下基本步骤:

  • 创建选择查询 首先,选择要复制的数据。 可以根据需要调整选择查询,并根据需要多次运行它,以确保选择的是要复制的数据。
  • 将选择查询转换为追加查询 选择准备就绪后,可以将查询类型更改为“追加”。
  • 为追加查询中每列选择目标字段 在某些情况下,Access 会自动选择目标字段。 你可以调整目标字段,或在 Access 没有自动选择的时候自行进行选择。
  • 预览并运行查询以追加记录 在追加记录前,可以先切换到数据表视图来预览追加的记录。

重要

无法撤消追加查询。 请考虑备份数据库或目标表。

创建和运行追加查询

本节内容

步骤 1:创建查询以选择要复制的记录

  1. 打开包含要复制的记录的数据库。

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

    “Access”功能区中的“查询”组显示两个选项:“查询向导”和“查询设计​​”

  3. 双击包含要复制的记录的表或查询,然后单击“关闭”。
    表或查询在查询设计器中显示为一个或多个窗口。 每个窗口会列出表或查询中的字段。 下图展示了查询设计器中的一个典型表。
    查询设计器中的表
    查询设计器中显示的资产表
    “查询”设计网格

  4. 双击要追加的每个字段。 所选字段会出现在查询设计网格的“字段”行中。
    源表中字段的数据类型必须与目标表中字段的数据类型兼容。 文本字段与大多数其他类型的字段兼容。 数字字段仅与其他数字字段兼容。 例如,可以将数字追加到文本字段,但不能将文本追加到数字字段。
    也可将表达式用作字段,如 =Date () 可自动返回今天的日期,并且可在设计网格中将表达式与表或查询字段结合使用,以自定义所选数据。 例如,如果目标表具有存储四位数年份的字段,而源表具有常规日期/时间字段,则可以将 DatePart 函数与源字段结合使用,以便仅选择年份。
    若要快速添加表中的所有字段,请双击表字段列表顶部的星号 (*)。 下图显示添加了所有字段的设计网格。
    添加了所有表字段的查询

  5. 或者,可以在设计网格的“条件”行中输入一个或多个条件。 下表显示了一些示例条件,并说明了其作用于查询的效果。

    条件 效果
    > 234 返回所有大于 234 的数字。 若要查找所有小于 234 的数字,请使用 < 234。
    >=“卡拉汉” 返回从 Callahan 直至字母表末尾的所有记录。
    Between #2/2/2017# And #12/1/2017# 返回从 2017 年 2 月 2 日到 2017 年 12 月 1 日 (ANSI-89) 的所有日期。 如果数据库使用 ANSI-92 通配符,则使用单引号 (') 替代井号。 例如: Between '2/2/2017' And '12/1/2017'。
    Not "德国" 查找字段的具体内容并不完全等于“德国”的所有记录。此条件将返回包含除了“德国”以外的其他字符的记录,例如“德国(欧元)”或“欧洲(德国)”。
    Not "T*" 查找除以 T 开头的记录之外的所有记录。如果数据库使用 ANSI-92 通配符字符集,请使用百分号 (%) ,而不是星号 (*) 。
    Not "*t" 查找不以 t 结尾的所有记录。 如果数据库使用 ANSI-92 通配符字符集,则使用百分号替代星号。
    In(加拿大,英国) 在列表中,查找包含“加拿大”或“英国”的所有记录。
    Like "[A-D]*" 在文本字段中,查找以字母 A 到 D 开头的所有记录。如果数据库使用 ANSI-92 通配符字符集,则使用百分号替代星号。
    Like "*ar*" 查找包含字母序列“ar”的所有记录。 如果数据库使用 ANSI-92 通配符字符集,则使用百分号替代星号。
    Like "Maison Dewe?" 查找以 "Maison" 开头并且包含的第二个字符串为 5 个字母[其中前 4 个字母为 "Dewe" 但最后一个字母未知(用问号表示)]的所有记录。 如果数据库使用 ANSI-92 通配符字符集,则使用下划线 (_) 替代问号。
    #2/2/2017# 查找 2017 年 2 月 2 日的所有记录。 如果数据库使用 ANSI-92 通配符字符集,则日期应使用单引号括起来,而不是用井号 (#) 。 例如:'2/2/2017'。
    < 日期 () - 30 返回 30 天以前的所有日期。
    Date() 返回包含当天日期的所有记录。
    Between Date() And DateAdd("M", 3, Date()) 返回从今天起三个月内的所有记录。
    Is Null 返回包含 Null(空或未定义)值的所有记录。
    Is Not Null 返回包含值的所有记录。
    "" 返回包含零长度字符串的所有记录。 当需要向必填字段添加值但还不知道添加什么值时,使用零长度字符串。 例如,某个字段可能需要传真号码,但有些客户可能没有传真机。 在这种情况下,可以输入中间没有空格的一对双引号 ("") ,而不输入号码。
  6. 在 “查询设计 ”选项卡的“ 结果” 组中,单击 “运行按钮图像 ”。

  7. 验证查询是否返回了要复制的记录。 如果需要向查询中添加字段或者从查询中删除字段,请切换回设计视图并按照上一步中的说明添加字段,或者选择不需要的字段并按 Delete 将其从查询中删除。

步骤 2:将选择查询转换为追加查询

  1. 在“开始”选项卡上的“视图”组中,单击“视图”,然后单击“设计视图”。

  2. 在 “查询设计 ”选项卡的 “查询类型 ”组中,单击 “追加”。
    将出现“追加”对话框。
    “追加查询”对话框屏幕截图

  3. 接下来,指定是将记录追加到当前数据库中的表,还是追加到其他数据库中的表。
    执行下列操作之一:

    • 在“追加”对话框中,单击“当前数据库”,从“表名称”组合框中选择目标表,然后单击“确定”。
      -或-
    • 在“追加”对话框中,单击“其他数据库”。
    • 在“文件名”框中,输入目标数据库的位置和名称。
    • 在“表名称”组合框中,输入目标表的名称,然后单击“确定”。

有关创建追加查询的 SQL 语法的详细信息,请参阅 INSERT INTO 语句。

步骤 3:选择目标字段

选择目标字段的方式取决于您在步骤 1 中如何创建选择查询。

您的操作 Access...
添加了源表或源查询中的所有字段 将目标表中的所有字段添加到设计网格中的“追加到”行中
将个别字段添加到查询或使用了表达式,并且源表和目标表中的字段名匹配 自动将匹配的目标字段添加到查询中的“追加到”行中
添加了个别字段或使用了表达式,并且源表和目标表中有的名称不匹配 添加匹配的字段,而将不匹配的字段留空

如果 Access 将字段留空,则可单击“追加到”行中的单元格并选择目标字段。

该图展示了如何单击“追加到”行中的单元格并选择目标字段。

“追加到”行中的下拉列表

注意

如果保留目标字段为空,则查询不会将数据追加到该字段。

步骤 4:预览并运行追加查询

  1. 若要预览所做的更改,请切换到数据表视图。

    提示

    若要快速切换视图,右键单击查询顶部的选项卡,然后单击所要的视图。

  2. 返回到“设计”视图,然后单击“ 运行按钮”图像 以追加记录。

    注意

    在运行返回大量数据的查询时,可能会收到错误消息,指示您将无法撤消查询。 请尝试将内存段限制增加到 3MB 以允许完成查询。

返回页首

防止禁用模式阻止查询

如果尝试运行某个追加查询,但好像没有什么反应,请查看 Access 状态栏中是否显示以下消息:

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

若要修复此错误,请单击消息栏中的“启用内容”,以启用查询。

注意

启用追加查询时,将同时启用所有其他数据库内容。

如果看不到消息栏,则它可能处于隐藏状态。 只要消息栏未被禁用,就可以显示它。 如果消息栏已被禁用,可以启用它。

返回页首

另请参阅

创建和运行更新查询

更新数据的设计注意事项

创建生成表查询

INSERT INTO 语句