了解追加查询
追加查询可将一组记录(行)从一个或多个源表(或查询)添加到一个或多个目标表。通常,源表和目标表位于同一数据库中,但并非必须如此。例如,假设您获得了一些新客户以及一个包含有关这些客户的信息表的数据库。为了避免手动输入这些新数据,可以将这些新数据追加到数据库中相应的表中。追加查询还可用于: 根据条件追加字段。例如,您可能希望只追加未结算订单的客户的姓名和地址。 某一表中的某些字段在另一个表中没有匹配的字段时追加记录。例如,假设该数据库的客户表有 11 个字段,而另一个数据库的客户表有 9 个与之匹配的字段。您可以使用追加查询只添加匹配字段中的数据,并忽略其他字段。
请记住,不能使用追加查询来更改现有记录的个别字段中的数据。要执行此类任务,请使用更新查询,您只能使用追加查询来添加数据行。
有关更新查询的详细信息,请参阅创建更新查询一文。有关向数据库中添加记录或更改现有数据的其他方法的一般信息,请参阅向数据库中添加一条或多条记录一文。 创建和运行追加查询
创建追加查询的过程的基本步骤如下: 创建选择查询。 将选择查询转换为追加查询。 为追加查询中的每一列选择目标字段。 运行该查询以追加记录。
注释 请记住,由于追加查询的结果无法撤消,因此应小心操作。此外,还应牢记一点,就是为源表中的字段所设置的数据类型必须与为目标表中的表字段所设置的数据类型兼容。例如,可以将数字追加到文本字段,但除非使用 (Val(TextField)) 等表达式将数据转换为数字数据类型,否则无法将文本追加到数字字段。
有关数据类型以及如何使用数据类型的详细信息,请参阅修改或更改字段的数据类型设置一文。 创建选择查询 打开包含要追加的记录的数据库。 在“创建”选项卡上的“其他”组中,单击“查询设计”。
将打开查询设计器,并显示“显示表”对话框。 选择包含要追加记录的表或查询的任意组合,单击“添加”,然后单击“关闭”。
选中的表或查询在查询设计网格的上半部显示为一个或多个窗口。这些窗口列出了每个表或查询中的所有字段。下图显示了查询设计器中的一个典型表。
 双击要追加的字段。所选字段显示在查询网格(查询设计器的下半部分)的“字段”行中。
可以添加 as =Date() 等表达式以自动返回当天日期,也可以向设计网格的单元格中添加表字段或查询字段。可以向每个单元格中添加一个表字段或查询字段。
若要快速添加表中的所有字段,请双击表字段列表顶部的星号(“*”)。该图显示添加了所有字段的设计网格。

也可以在设计网格的“条件”行中输入一个或多个条件。下表显示一些示例条件,并解释它们作用于查询的效果。
条件 |
效果 |
> 234 |
返回所有大于 234 的数字。若要查找所有小于 234 的数字,请使用 < 234。 |
>= "Callahan" |
返回从 Callahan 直至字母表末尾的所有记录。 |
Between #2/2/2007# And #12/1/2007# |
返回 2007 年 2 月 2 日到 2007 年 12 月 1 日之间的日期 (ANSI-89)。如果数据库使用的是 ANSI-92 通配符,则使用单引号 (') 替代井号。例如:Between '2/2/2007' And '12/1/2007'。 |
Not "德国" |
查找字段内容与“德国”不完全相同的所有记录。该条件将返回除了包含“德国”之外还包含其他字符的记录,如“德国(欧元)”或“欧洲(德国)”。 |
Not "T*" |
查找所有记录,以 T 开头的记录除外。如果数据库使用的是 ANSI-92 通配符字符集,则使用百分号 (%) 替代星号 (*)。 |
Not "*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/2007# |
查找 2007 年 2 月 2 日的所有记录。如果数据库使用的是 ANSI-92 通配符字符集,则用单引号(而不是井号 #)将日期括起来。例如:'2/2/2007'。 |
< Date() - 30 |
返回 30 天以前的所有日期。 |
Date() |
返回包含当天日期的所有记录。 |
Between Date() And DateAdd("M", 3, Date()) |
返回从今天起三个月内的所有记录。 |
Is Null |
返回包含 Null(空或未定义)值的所有记录。 |
Is Not Null |
返回包含值的所有记录。 |
"" |
返回包含零长度字符串的所有记录。当您需要向必填字段添加值,但还不知道值是什么时,可以使用零长度字符串。例如,某个字段可能需要传真号码,但某些客户可能没有传真机。在这种情况下,可以输入中间不带空格的一对双引号 ("") 来替代数字。 | 在“设计”选项卡上的“结果”组中,单击“运行”。 对返回要更新的记录的查询进行验证。如果需要向查询中添加字段或者从查询中删除字段,请切换回设计视图并按照先前步骤中的说明添加字段,或者选择不需要的字段并按 Delete 将其从查询中删除。 继续下一过程,在该过程中会将选择查询转换为追加查询。 将选择查询转换为追加查询 右键单击打开查询的文档选项卡,然后单击快捷菜单上的“设计视图”。
- 或 -
在导航窗格中,右键单击查询,然后单击快捷菜单上的“设计视图”。 在“设计”选项卡上的“查询类型”组中,单击“附加”。
将显示“追加”对话框。 此时,可以选择是将记录从一个表追加到同一数据库中的现有表,还是追加到其他数据库中的现有表。
注释 如果要将记录复制到新表中,则必须使用生成表查询。
显示如何创建生成表查询 按照本节中的步骤创建选择查询。根据需要修改选择查询,直到返回要放入新表中的记录。 切换到查询的设计视图。右键单击查询的文档选项卡,然后单击“设计视图”。
- 或 -
在导航窗格中右键单击查询,然后单击“设计视图”。 在“设计”选项卡上的“查询类型”组中,单击“生成表”。
将显示“生成表”对话框。 在“表名称”组合框中,输入新表的名称。 请执行下列操作之一: 将新表放到打开的数据库中。 使“当前数据库”保持选中状态并单击“确定”。 将新表放到另一个数据库中。 单击“另一数据库”。 输入另一个数据库的文件路径和名称,或者单击“浏览”以查找该数据库,并在找到该数据库后单击“确定”。 在“表名称”组合框中,输入新表的名称。 单击“确定”。
现在已经转换了查询,您需要决定是要将记录追加到同一数据库中的表,还是追加到其他数据库中的表。根据您的选择,使用下列两个过程之一中的步骤: 将记录追加到同一数据库中的表 在“追加”对话框中,单击“当前数据库”(如果尚未选择),然后从“表名称”组合框中选择目标表。 单击“确定”。
您所看到的内容取决于创建选择查询的方式。例如,如果从源表或源查询中添加了所有字段,则 Access 现在会将目标表中的所有字段添加到设计网格中的“追加到”行。
- 或 -
如果向查询中添加了个别字段,且源表和目标表中的字段名匹配,则 Access 会自动将目标字段的名称添加到查询的“追加到”行中。
- 或 -
如果添加了个别字段,且源表和目标表中的任何名称存在不匹配的情况,则 Access 会将那些字段保留为空。可以单击“追加到”行中的单元格并选择目标字段。
该图说明如何单击“追加到”行中的单元格并选择目标字段。

注释 如果保留目标字段为空,则查询不会将数据追加到该字段。 若要预览所做的更改,请切换到数据表视图。若要切换,请右键单击查询的文档选项卡,然后单击“数据表视图”。
- 或 -
在导航窗格中,右键单击查询,然后单击“数据表视图”。 返回设计视图,然后单击“运行” 以追加这些记录。
提醒 追加查询的结果无法撤消,因此请确定您要追加记录。 将记录追加到其他数据库中的表 在“追加”对话框中,单击“另一数据库”。 在“文件名”框中,输入目标数据库的位置和名称。 在“表名称”组合框中,输入目标表的名称,然后单击“确定”。
- 或 -
单击“浏览”,并使用出现的第二个“追加”对话框查找目标数据库。找到并选中目标数据库之后,单击“确定”。第二个“追加”对话框将关闭。在第一个“追加”对话框的“表名称”组合框中,输入目标表的名称,然后单击“确定”。
您所看到的内容取决于创建选择查询的方式。例如,如果从源表或源查询中添加了所有字段,则 Access 现在会将目标表中的所有字段添加到设计网格中的“追加到”行。
- 或 -
如果向查询中添加了个别字段,且源表和目标表中的字段名匹配,则 Access 会自动将目标字段的名称添加到查询的“追加到”行中。
- 或 -
如果添加了个别字段,且源表和目标表中的任何名称存在不匹配的情况,则 Access 会将那些字段保留为空。可以单击“追加到”行中的单元格并选择目标字段。
该图说明如何单击“追加到”行中的单元格并选择目标字段。

注释 如果保留目标字段为空,则查询不会将数据追加到该字段。 返回设计视图(右键单击查询最上方的选项卡,单击“设计视图”),然后单击“运行” 以追加这些记录。提示您确认操作时,单击“是”。 防止禁用模式阻止查询
默认情况下,如果打开的数据库不是位于受信任位置,或者如果未选择信任该数据库,则 Access 禁止运行所有操作查询 - 追加查询、更新查询、删除查询或生成表查询。
如果您尝试运行某个动作查询,但好像没有什么反应,请查看 Access 状态栏中是否显示下列消息:
“此操作或事件已被禁用模式阻止。”
看到此消息后,请执行下列操作: 启用被禁用的内容 在消息栏上,单击“选项”。
将显示“Microsoft Office 安全选项”对话框。 单击“启用此内容”,然后单击“确定”。 再次运行查询。 如果没有看到消息栏 单击“数据库工具”选项卡,然后在“显示/隐藏”组中单击“消息栏”。
有关禁用模式和 Access 安全的详细信息,请参阅保护 Access 2007 数据库一文。
|