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

设计良好的数据库不仅有助于确保数据完整性,而且更易于维护和更新。 Access 数据库不是与 Microsoft Word 文档或Microsoft PowerPoint 幻灯片组相同的文件。 相反,它是对象(表、窗体、报表、查询等)的集合,必须协同工作才能正常运行。

用户主要通过控件输入数据。 使用给定控件执行的操作取决于基础表字段的数据类型集、为该字段设置的任何属性以及为控件设置的属性。 最后,请考虑使用其他数据库技术,例如验证、默认值、列表和查找以及级联更新。 

有关从用户视点更新数据的详细信息,请参阅 添加、编辑和删除记录的方法

本文内容

数据库设计如何影响数据输入

保存在数据库中的信息存储在 表中,表中包含有关特定主题的数据,例如资产或联系人。 表中的每条 记录 都包含有关一个项目的信息,例如特定联系人。 记录由姓名、地址和电话号码等 字段组成。 记录通常称为行,字段通常称为列。 这些对象必须遵循一组设计原则,否则数据库要么工作不佳,要么完全失败。 反过来,这些设计原则会影响你输入数据的方式。 请考虑以下事项:

  • 表格    Access 将所有数据存储在一个或多个表中。 使用的表数取决于数据库的设计和复杂性。 虽然可以在窗体、报表或查询返回的结果中查看数据,但 Access 仅将数据存储在表中,而数据库中的其他对象则基于这些表构建。 每个表应基于一个主题。 例如,业务联系人信息表不应包含销售信息。 如果是这样,查找和编辑正确的信息可能会变得困难(如果不是不可能的话)。

  • 数据类型    通常,表中的每个字段仅接受一种类型的数据。 例如,不能将笔记存储在设置为接受数字的字段中。 如果尝试在此类字段中输入文本,Access 将显示一条错误消息。 但是,这不是一个困难和快速的规则。 例如,可以将数字 ((如邮政编码) )存储在设置为“短文本”数据类型的字段中,但不能对该数据执行计算,因为 Access 将其视为一段文本。

    除了一些例外,记录中的字段应仅接受一个值。 例如,不能在地址字段中输入多个地址。 这与 Microsoft Excel 相反,Excel 允许您在单个单元格中输入任意数量的名称、地址或图像,除非将该单元格设置为接受有限类型的数据。 

  • 多值字段    Access 提供一项称为多值字段的功能,可将多段数据附加到单个记录,并创建接受多个值的列表。 始终可以标识多值列表,因为 Access 在每个列表项旁边显示一个复选框。 例如,可以将Microsoft PowerPoint 幻灯片组和任意数量的图像附加到数据库中的记录。 还可以创建名称列表,并根据需要选择任意数量的这些名称。 使用多值字段似乎可能会破坏数据库设计规则,因为每个表字段可以存储多个记录。 但 Access 通过将数据存储在特殊的隐藏表中来“幕后”强制实施规则。

  • 使用窗体    当你希望使数据库更易于使用并帮助确保用户准确输入数据时,通常会创建表单。 如何使用窗体编辑数据取决于窗体的设计。 窗体可以包含任意数量的控件,例如列表、文本框、按钮,甚至数据表。 反过来,窗体上的每个控件都从基础表字段读取数据或将数据写入基础表字段。

有关详细信息,请参阅 数据库设计基础知识创建表并添加字段

返回页首

设置字段或控件的默认值

如果大量记录共享给定字段(例如城市或国家/地区)的相同值,则可以通过为绑定到该字段或字段本身的控件设置默认值来节省时间。 打开窗体或表以创建新记录时,默认值将显示在该控件或字段中。

在表中

  1. 在“设计视图”中打开表。

  2. 在视图顶部,选择字段。

  3. 在视图底部,选择“ 常规 ”选项卡。

  4. 将“默认值”属性设置为所需的值。

在窗体中

  1. 布局 设计视图中打开窗体。

  2. 右键单击要使用的控件,然后单击“ 属性”。

  3. 在“ 数据 ”选项卡上,将 “默认值” 属性设置为所需的值。

返回页首

使用验证规则限制数据

可以使用验证规则在输入数据时验证 Access 桌面数据库中的数据。 可在表格设计或表格数据表视图设置验证规则。 Access​​ 中有三种类型的验证规则:

  • 字段验证规则    可以使用字段验证规则指定所有有效字段值必须满足的条件。 不需要将当前字段指定为规则的一部分,除非将在函数中使用该字段。 要在字段中输入的对字符类型的限制可能通过输入掩码会更容易实现。 例如,日期字段可能具有一个禁止使用过去日期值的验证规则。

  • 记录验证规则     可以使用记录验证规则指定所有有效记录必须满足的条件。 可以使用记录验证规则比较不同字段间的值。 例如,具有两个日期字段的记录可能要求一个字段的值始终位于另一个字段的值之前, (例如 StartDate 在 EndDate) 之前。

  • 对窗体的验证    可以使用窗体上控件的“验证规则”属性来指定该控件输入的所有值必须满足的条件。 “验证规则”控件属性的工作方式类似于字段验证规则。 如果规则只特定于该表单而不是该表格,则无论在何处使用,通常都会使用表单验证规则而非字段验证规则。

有关详细信息,请参阅 使用验证规则限制数据输入

返回页首

使用值列表和查阅字段

Access 中有两种类型的列表数据:

  • 值列表    这些值包含手动输入的一组硬编码值。 值驻留在字段的 “行源” 属性中。

  • 查找字段    它们使用查询从另一个表中检索值。 字段的 “行源” 属性包含查询,而不是硬编码的值列表。 查询从数据库中的一个或多个表中检索值。 默认情况下,查阅字段以列表的形式呈现这些值。 根据查找字段的设置方式,可以从该列表中选择一个或多个项。

    注意    查阅字段可能会使新的 Access 用户感到困惑,因为项列表 (Access 从查阅字段中的数据创建的列表) ,但数据可以位于包含数据) 表 (另一个位置。

默认情况下,Access 在组合框控件中显示列表数据,但可以指定列表框控件。 此时会打开一个组合框来显示列表,然后在做出选择后关闭。 相比之下,列表框始终保持打开状态。

若要编辑列表,还可以运行 “编辑列表项” 命令,也可以直接在源表的 “行源” 属性中编辑数据。 更新查阅字段中的数据时,会更新源表。

如果列表框或组合框的“行来源类型”属性设置为“值列表”,则当在窗体视图中打开了窗体时可以编辑值列表 - 不需要在每次需要更改列表时切换到设计视图或布局视图、打开属性表并编辑控件的“行来源”属性。 要编辑值列表,必须将列表框或组合框的“允许编辑值列表”属性设置为“”。

有关详细信息,请参阅 使用列表框或组合框创建选项列表

禁止在窗体视图中编辑值列表

  1. 在导航窗格中右键单击窗体,然后单击“设计视图”或“布局视图”。

  2. 单击控件进行选择,然后按 F4 显示属性表。

  3. 在属性表的“数据”选项卡上,将“允许编辑值列表”属性设置为“”。

  4. 单击“ 文件 ”,然后单击“ 保存”,或按 Ctrl+S 按钮图像

指定其他窗体以编辑值列表

默认情况下,Access 提供了内置窗体来实现编辑值列表的目的。 如果您希望使用所拥有的其他窗体来实现此目的,则可以在“列表项目编辑窗体”属性中输入窗体的名称,如下所示:

  1. 在导航窗格中右键单击窗体,然后在快捷菜单上单击“设计视图”或“布局视图”。

  2. 单击控件进行选择,然后按 F4 显示属性表。

  3. 在属性表的“数据”选项卡上,单击“列表项目编辑窗体”属性框中的下拉箭头。

  4. 单击要用于编辑值列表的窗体。

  5. 单击“ 文件 ”,然后单击“ 保存”,或按 Ctrl+S 按钮图像

检查窗体中的查阅字段

  1. 布局 设计视图中打开窗体。

  2. 右键单击列表框或组合框控件,然后单击“ 属性”。

  3. 在属性表中,单击“ 全部 ”选项卡,找到“ 行源类型 ”和“ 行源” 属性。 “行源类型”属性应包含“值列表”或“表/查询”,“行源”属性应包含用分号分隔的项列表或查询。 若要获取更多空间,请右键单击属性,然后选择“ 缩放 ”或按 Shift+F2。

    通常,值列表使用此基本语法: item”;”item“;”item

    在本例中,列表是一组用双引号括起来并用分号分隔的项。

    选择查询使用以下基本语法: SELECT [table_or_query_name].[field_name] 从 [table_or_query_name]

    在这种情况下,查询包含两个子句(SELECT 和 FROM)。 第一个子句引用表或查询以及该表或查询中的字段。 第二个子句仅引用表或查询。 以下是需要记住的一个关键点:SELECT 子句不必包含表或查询的名称,尽管建议这样做,并且它们必须包含至少一个字段的名称。 但是,所有 FROM 子句都必须引用表或查询。 因此,始终可以通过读取 FROM 子句来查找查找字段的源表或源查询。

  4. 执行下列操作之一。

    • 如果使用值列表,请编辑列表中的项。 确保用双引号将每个项括起来,并用分号分隔每个项。

    • 如果查阅列表中的查询引用了另一个查询,请在 设计视图中 打开第二个查询 (右键单击导航窗格中的查询,然后单击“ 设计视图 ”) 。 记下查询设计器上半部分中显示的表的名称,然后转到下一步。

      否则,如果“查找”字段中的查询引用了表,请记下表的名称,然后转到下一步。

  5. 数据表视图中打开表,然后根据需要编辑列表项。

检查表中的查阅字段

  1. 在“设计视图”中打开表。

  2. 在查询设计网格的上半部分中,在“ 数据类型” 列中,单击或以其他方式将焦点放在任何“文本”、“数字”或“是/否”字段上。

  3. 在表设计网格的下半部分,单击“查找”选项卡,然后查看“行源类型和行源”属性。

    “行源类型”属性必须读取 Value ListTable/Query“行源”属性必须包含值列表或查询。

    值列表使用以下基本语法: item”;”item“;”item

    在本例中,列表是一组用双引号括起来并用分号分隔的项。

    通常,选择查询使用以下基本语法: SELECT [table_or_query_name].[field_name] 从 [table_or_query_name]

    在这种情况下,查询包含两个子句(SELECT 和 FROM)。 第一个子句引用表或查询以及该表或查询中的字段。 第二个子句仅引用表或查询。 以下是需要记住的一个关键点:SELECT 子句不必包含表或查询的名称,尽管建议这样做,并且它们必须包含至少一个字段的名称。 但是,所有 FROM 子句都必须引用表或查询。 因此,始终可以通过读取 FROM 子句来查找查找字段的源表或源查询。

  4. 执行下列操作之一。

    • 如果使用值列表,请编辑列表中的项。 确保用双引号将每个项括起来,并用分号分隔每个项。

    • 如果“查找”字段中的查询引用了另一个查询,请在导航窗格中,在“设计”视图中打开第二个查询 (右键单击该查询,然后单击“ 设计视图 ”) 。 记下查询设计器上半部分中显示的表的名称,然后转到下一步。

      否则,如果“查找”字段中的查询引用了表,请记下表的名称,然后转到下一步。

  5. 数据表视图中打开表,然后根据需要编辑列表项。

返回页首

从值列表或查阅字段删除数据

值列表中的项目与记录中其他值位于位于相同的表中。 相比之下,查阅字段中的数据驻留在一个或多个其他表中。 若要从值列表中删除数据,请打开表并编辑项。

从查阅列表中删除数据需要额外的步骤,这些步骤取决于查阅列表的查询是从表还是从其他查询获取其数据。 如果查阅列表的查询基于表,请确定该表和包含列表中所显示数据的字段。 然后打开源表并编辑该字段中的数据。 如果查阅列表的查询基于另一个查询,那么必须打开该第二个查询,找到第二个查询获取其数据的源表和字段,并更改该表中的值。

从值列表中删除数据

  1. 在“设计视图”中打开表。

  2. 在设计网格的上半部分,选择包含值列表的表字段。

  3. 在网格的下半部分,单击“查阅”选项卡,然后找到“行来源”属性。

    默认情况下,值列表中的项目用双引号括起,用分号分隔每个项目:"Excellent";"Fair";"Average";"Poor"

  4. 根据需要,从列表中删除项目。 请记得删除每个已删除项目两侧的引号。 另外,不要保留前导分号,不要将分号堆叠在一起 (;;),如果删除列表中的最后一个项目,请删除最后一个分号。

    重要提示    如果从值列表中删除一个项目,并且表中的记录使用了该已删除的项目,那么删除的项目将保留在记录中,直到对其进行更改。 例如,假设你的公司在 A 市有一个仓库,然后出售了该建筑物。 如果从仓库列表中删除“A 市”,你会在表中看到“A 市”,直到更改这些值。

从查阅字段中删除数据

  1. 在“设计视图”中打开表。

  2. 在设计网格的上半部分中,选择查阅字段。

  3. 在设计网格的下半部分中,单击“查阅”选项卡,找到“行来源类型”和“行来源”属性。

    行类型”属性应显示“表/查询”,“行来源”属性必须包含引用表或其他查询的查询。 查找字段的查询始终以 单词 SELECT 开头。

    通常(但不总是),选择查询使用这种基本语法:SELECT [table_or_query_name].[field_name] FROM [table_or_query_name].

    在这种情况下,查询包含两个子句(SELECT 和 FROM)。 第一个子句引用一个表和该表中的一个字段;相反,第二个子句仅引用表。 有一点需要记住:FROM 子句总包含源表或查询的名称。 SELECT 子句总包含至少一个字段的名称,但不一定包含表或查询的名称。 但是,所有 FROM 子句都必须引用表或查询。

  4. 执行下列操作之一:

    • 如果“查找”字段中的查询引用了另一个查询,请单击“ 生成 ”按钮 (属性表的“ 数据 ”选项卡上,单击“下一) “生成器”按钮 ”以在“设计”视图中打开查询。 请记下查询设计器上半部分显示的表的名称,然后继续执行步骤 5。

    • 如果查阅字段中的查询引用表,请记下表的名称,然后继续执行步骤 5。

  5. 数据表视图中打开源表。

  6. 找到包含查阅列表中所用数据的字段,然后根据需要编辑该数据。

返回页首

数据类型如何影响数据输入方式

设计数据库表时,请为该表中的每个字段选择数据类型,这是一个有助于确保更准确的数据输入的过程。

查看数据类型

执行下列操作之一:

使用数据表视图

  1. 在“数据表视图”中打开表。

  2. 在“ 字段 ”选项卡上的“ 格式设置” 组中,查看“数据类型”列表中的值。 将光标置于表中的各个字段中时,值会更改:

    数据类型列表

使用设计视图

  1. 在“设计视图”中打开表。

  2. 查看设计网格。 网格的上半部分显示每个表字段的名称和数据类型。

    设计视图中的字段

数据类型如何影响数据输入

为每个表字段设置的数据类型提供对允许进入字段的数据类型的第一级控制。 在某些情况下,例如长文本字段,可以输入所需的任何数据。 在其他情况下,例如“自动编号”字段,字段的数据类型设置会阻止你输入任何信息。 下表列出了 Access 提供的数据类型,并介绍了它们如何影响数据输入。

有关详细信息,请参阅 Access 桌面数据库的数据类型修改或更改字段的数据类型设置

数据类型

对数据输入的影响

短文本

短文本字段接受文本或数字字符,包括带分隔符的项列表。 与长文本字段相比,文本字段接受的字符数少于 0 到 255 个字符。 在某些情况下,可以使用转换函数对短文本字段中的数据执行计算。

长文本

可以在此类字段中输入大量文本和数字数据,最多可输入 64,000 个字符。 此外,将 字段设置为支持富文本格式设置,可以应用通常在字处理程序(如 Word)中找到的格式设置类型。 例如,可以将不同的字体和字号应用于文本中的特定字符,并将它们设置为粗体或斜体,等等。 还可以向数据添加超文本标记语言 (HTML) 标记。 有关详细信息,请参阅 插入或添加格式文本字段

此外,长文本字段具有一个名为“ 仅追加”的属性。 启用该属性后,可以将新数据追加到长文本字段,但无法更改现有数据。 此功能适用于问题跟踪数据库等应用程序,其中可能需要保留永久记录,该记录保持不变。 将光标置于启用了 “仅追加” 属性的长文本字段中时,默认情况下,字段中的文本将消失。 不能对文本应用任何格式设置或其他更改。

与短文本字段一样,还可以针对长文本字段中的数据运行转换函数。

数字

只能在此类型的字段中输入数字,并且可以对“数字”字段中的值执行计算。

大数

请注意,大数数据类型仅在 access 的 Microsoft 365 订阅版本中可用。

只能在此类型的字段中输入数字,并且可以对“大数”字段中的值执行计算。

有关详细信息,请参阅使用大数数据类型

日期和时间

只能在此类型的字段中输入日期和时间。 

可以为字段设置输入掩码 (一系列文本和占位符字符,这些字符在选择字段) 时显示,必须在空格和掩码提供的格式中输入数据。 例如,如果看到MMM_DD_YYYY等掩码,则必须在提供的空格中键入 Oct 11 2017。 不能输入完整的月份名称或两位数的年份值。 有关详细信息,请参阅 使用输入掩码控制数据输入格式

如果不创建输入掩码,可以使用任何有效的日期或时间格式输入值。 例如,可以键入 2017 年 10 月 11 日、10/11/17、2017 年 10 月 11 日等。

还可以对字段应用显示格式。 在这种情况下,如果没有输入掩码,则可以以几乎任何格式输入值,但 Access 会根据显示格式显示日期。 例如,可以输入 10/11/2017,但可能会设置显示格式,以便将值显示为 2017 年 10 月 11 日。

有关详细信息,请参阅 插入今天的日期

货币

只能在此类型的字段中输入货币值。 此外,无需手动输入货币符号。 默认情况下,Access) windows 区域设置中指定的货币符号 ( ¥、£、$等。 如果需要,可以更改此货币符号以反映不同的货币。

自动编号

任何时候都不能输入或更改此类型的字段中的数据。 每次向表添加新记录时,Access 会递增自动编号字段中的值。

计算

任何时候都不能输入或更改此类型的字段中的数据。 此字段的结果由定义的表达式确定。 每当向表添加或编辑新记录时,Access 将更新“计算”字段中的值。

是/否

单击设置为此数据类型的字段时,Access 将显示复选框或下拉列表,具体取决于字段的格式设置方式。 如果设置字段的格式以显示列表,则可以从列表中选择“是”或“”、“True”或“False”或“打开”或“关闭”,这同样取决于应用于字段的格式。 不能在列表中输入值,也不能直接从窗体或表格更改列表中的值。

OLE 对象

如果要显示使用其他程序创建的文件中的数据,请使用此类型的字段。 例如,可以在 OLE 对象字段中显示文本文件、Excel 图表或 PowerPoint 幻灯片组。

附件提供了一种更快速、更轻松、更灵活的方式来查看其他程序中的数据。

超链接

可以在此类型的字段中输入任何数据,Access 会将其包装在 Web 地址中。 例如,如果在 字段中键入值,Access 会将文本括在 http://www。your_text.com。 如果输入有效的 Web 地址,链接将有效。 否则,链接将导致错误消息。

此外,编辑现有超链接可能很困难,因为使用鼠标单击超链接字段会启动浏览器,并转到链接中指定的网站。 若要编辑超链接字段,请选择相邻字段,使用 Tab 或箭头键将焦点移动到超链接字段,然后按 F2 启用编辑。

附件

可以将其他程序中的数据附加到此类型的字段,但不能键入或以其他方式输入文本或数字数据。

有关详细信息,请参阅 将文件和图形附加到数据库中的记录

查阅向导

查找向导不是数据类型。 而是使用向导创建两种类型的下拉列表:值列表和查找字段。 值列表使用使用查找向导时手动输入的带分隔的项目列表。 这些值可以独立于数据库中的任何其他数据或对象。

相比之下,查阅字段使用查询从数据库中的一个或多个其他表检索数据。 然后,查找字段在下拉列表中显示数据。 默认情况下,“查找向导”将表字段设置为“数字”数据类型。

可以直接在表中以及窗体和报表中使用查阅字段。 默认情况下,查阅字段中的值显示在名为组合框的列表控件类型中,该列表具有下拉箭头:

空白查阅列表

还可以使用列表框,该列表框通过滚动条显示多个项来查看更多项目:

窗体上的基本列表框控件

根据设置查阅字段和组合框的方式,可以编辑列表中的项目,并通过关闭查阅字段的 “限制列表” 属性将项目添加到列表中。

如果无法直接编辑列表中的值,则必须在预定义的值列表中添加或更改数据,或者在充当查找字段源的表中添加或更改数据。

最后,创建查阅字段时,可以选择将其设置为支持多个值。 执行此操作时,生成的列表会在每个列表项旁边显示一个复选框,你可以根据需要选择或清除任意数量的项。 下图演示了典型的多值列表:

复选框列表。

有关创建多值查找字段和使用生成的列表的信息,请参阅 创建或删除多值字段

返回页首

表字段属性如何影响输入数据的方式

除了控制数据库结构和控制可在给定字段中输入的内容的数据类型的设计原则外,多个字段属性还会影响将数据输入 Access 数据库的方式。

查看表字段的属性

Access 提供了两种查看表字段属性的方法。

在数据表视图中

  1. 在“数据表视图”中打开表。

  2. 单击“ 字段 ”选项卡,并使用 “格式” 组中的控件查看每个表字段的属性。

在设计视图中

  1. 在“设计视图”中打开表。

  2. 在网格的下半部分,单击“ 常规 ”选项卡(如果尚未选中)。

  3. 若要查看查阅字段的属性,请单击“ 查找 ”选项卡。

属性如何影响数据输入

下表列出了对数据输入影响最大的属性,并说明了它们如何影响数据输入。

属性

表设计网格中的位置

可能的值

尝试输入数据时的行为

字段大小

常规”选项卡

0-255

字符限制仅适用于设置为 Text 数据类型的字段。 如果尝试输入的字符数超过指定的字符数,则字段会将其切断。

必需

常规”选项卡

是/否

启用后,此属性将强制你在字段中输入值,并且 Access 将不允许保存任何新数据,直到完成必填字段。 关闭后,字段将接受 null 值,这意味着该字段可以保留为空。

null 值与零值不同。 零是数字,“null”是缺失、未定义或未知值。

允许零长度字符串

常规”选项卡

是/否

打开后,可以输入长度为零的字符串,即不包含任何字符的字符串。 若要创建长度为零的字符串,请在字段中输入一对双引号, (“”) 。

已索引

常规”选项卡

是/否

为表字段编制索引时,Access 会阻止添加重复值。 还可以从多个字段创建索引。 如果执行此操作,则可以在一个字段中复制值,但不能在两个字段中复制值。

输入掩码

常规”选项卡

预定义或自定义文本和占位符字符集

输入掩码强制以预定义格式输入数据。 在窗体上的表或控件中选择字段时,将显示掩码。 例如,假设单击“日期”字段并看到这组字符:MMM-DD-YYYY。 这是输入掩码。 它强制输入月份值作为三个字母的缩写,例如 OCT,将年份值输入为四位数字,例如,2017 年 10 月 15 日。

输入掩码仅控制输入数据的方式,而不是 Access 存储或显示数据的方式。

有关详细信息,请参阅 使用输入掩码控制数据输入格式设置日期和时间字段的格式

对列表的限制

“查找 ”选项卡

是/否

启用或禁用对查找字段中项的更改。 用户有时会尝试手动更改查阅字段中的项。 当 Access 阻止更改字段中的项时,此属性设置为 “是”。 如果启用了此属性,并且需要更改列表中的项,则必须打开列表 (如果要编辑值列表) 或包含列表源数据的表 ((如果要编辑查找字段) 并更改其中的值)。

允许编辑值列表

“查找 ”选项卡

是/否

启用或禁用值 列表的“编辑列表项” 命令,但对查找字段则不能。 若要为查阅字段启用该命令,请在 “列表项编辑窗体” 属性中输入有效的表单名称。 “允许值列表编辑”命令显示在通过右键单击列表框或组合框控件打开的快捷菜单上。 运行命令时,将显示 “编辑列表项 ”对话框。 或者,如果在 “列表项编辑窗体” 属性中指定窗体的名称,Access 将启动该窗体,而不是显示对话框。

可以从位于窗体上的列表框和组合框控件以及表和查询结果集中的组合框控件运行 “编辑列表项” 命令。 窗体必须在“设计”视图或“浏览”视图中打开;表和查询结果集必须在数据表视图中打开。

列表项目编辑窗体

“查找 ”选项卡

数据输入窗体的名称

如果输入数据输入窗体的名称作为此表属性中的值,则当用户运行 “编辑列表项” 命令时,该窗体将打开。 否则,当用户运行 命令时,将显示 “编辑列表项 ”对话框。

返回页首

使用级联更新更改主键和外键值

有时,可能需要更新主键值。 如果使用该主键作为外键,可以通过该外键的所有子实例自动更新更改。

提醒一下, 主键 是一个唯一标识数据库表中的每一行 (记录) 的值。 外键是与主键匹配的列。 通常,外键驻留在其他表中,它们使你能够 (表中的数据之间的链接) 创建关系。

例如,假设使用产品 ID 号作为主键。 一个 ID 号唯一标识一个产品。 还可以使用该 ID 号作为订单数据表中的外键。 这样,就可以找到涉及每个产品的所有订单,因为每当有人订购该产品时,ID 就会成为订单的一部分。

有时,这些 ID 号 (或其他类型的主键) 更改。 当他们这样做时,你可以更改主键值,并使该更改自动级联到所有相关子记录。 可以通过启用引用完整性并在两个表之间级联更新来启用此行为。

请记住以下重要规则:

  • 只能为设置为“文本”或“数字”数据类型的主键字段启用级联更新。 不能对设置为“自动编号”数据类型的字段使用级联更新。

  • 只能在具有一对多关系的表之间启用级联更新。

有关创建关系的详细信息。 请参阅表关系指南创建、编辑或删除关系

以下过程将齐头并进,说明如何首先创建关系,然后为该关系启用级联更新。

创建关系

  1. 在“数据库工具”选项卡上的“显示/隐藏”组中,单击“关系”。

  2. 在“ 设计 ”选项卡上的“ 关系 ”组中,单击“ 添加表 (在 Access) 中 显示表 ”。

  3. 选择“ ”选项卡,选择要更改的表,单击“ 添加”,然后单击“ 关闭”。

    可以按 Shift 选择多个表,也可以单独添加每个表。 仅选择关系“一”和“多”端上的表。

  4. “关系” 窗口中,从关系“一”侧的表拖动主键,并将其放在关系“多”侧表的外键字段上。

    将显示“编辑关系”对话框。 下图显示了对话框:

    具有现有关系的“编辑关系”对话框

  5. 选中“ 强制引用完整性 ”复选框,然后单击“ 创建”。

在主键中启用级联更新

  1. 在“数据库工具”选项卡上的“显示/隐藏”组中,单击“关系”。

  2. 此时会显示“ 关系” 窗口,并显示联接 (显示为数据库中表之间的连接线) 。 下图显示了一个典型关系:

  3. 右键单击父表和子表之间的联接线,然后单击“ 编辑关系”。

    两个表之间的关系

    将显示“编辑关系”对话框。 下图显示了对话框:

    “编辑关系”对话框

  4. 选择“ 级联更新相关字段”,确保选中“ 强制引用完整性 ”复选框,然后单击“ 确定”。

返回页首

为什么 ID 号有时似乎跳过了一个数字

创建设置为“自动编号”数据类型的字段时,Access 会在每条新记录中自动生成该字段的值。 该值默认递增,以便每条新记录获取下一个可用的序列号。 自动编号数据类型的用途是提供适合用作主键的值。 有关详细信息,请参阅 添加、设置、更改或删除主键

从表中删除包含设置为“自动编号”数据类型的字段的行时,该行的“自动编号”字段中的值并不总是自动重用。 出于此原因,Access 生成的数字可能不是预期看到的数字,并且 ID 编号序列中可能会出现间隙 - 这是设计决定的。 应仅依赖于自动编号字段中值的唯一性,而不应依赖于其序列。

返回页首

使用查询批量更新数据

追加、更新和删除查询是批量添加、更改或删除记录的强大方法。 此外,使用良好的数据库设计原则时,批量更新更容易、更高效地执行。 使用追加、更新或删除查询可以节省时间,因为还可以重复使用查询。

重要提示    使用这些查询之前,请备份数据。 手头有备份可以帮助你快速修复你可能无意中犯的任何错误。

追加查询    使用 向一个或多个表添加多个记录。 追加查询最常见的用途之一是将源数据库中的一个或多个表的一组记录添加到目标数据库中的一个或多个表。 例如,假设你获取了一些新客户和一个包含有关这些客户的信息表的数据库。 若要避免手动输入新数据,可以将其追加到数据库中的相应表。 有关详细信息,请参阅 使用追加查询将记录添加到表

更新查询    用于添加、更改或删除部分 (但不是许多现有记录的所有) 。 可以将更新查询视为一种强大的“查找和替换”对话框形式。 输入选择条件 (搜索字符串的大致等效项) 和更新条件 (替换字符串的大致等效项) 。 与对话框不同,更新查询可以接受多个条件,允许一次更新大量记录,并允许更改多个表中的记录。 有关详细信息,请参阅 创建并运行更新查询

删除查询    如果想要快速删除大量数据或定期删除一组数据,则删除很有用,因为查询可以指定条件来快速查找和删除数据。 有关详细信息,请参阅 添加、编辑和删除记录的方法

返回页首

需要更多帮助?

需要更多选项?

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

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