使用 Microsoft 登录
登录或创建帐户。
你好,
使用其他帐户。
你有多个帐户
选择要登录的帐户。

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

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

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

本文内容

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

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

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

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

    除了某些例外,记录中的字段只应接受一个值。 例如,不能输入地址字段中的多个地址。 这与 Microsoft Excel 相反,Microsoft 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"

    在这种情况下,列表是一组用双引号括起来用分号分隔的项目。

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

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

  4. 执行下列操作之一。

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

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

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

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

检查表中的查找字段

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

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

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

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

    值列表使用此基本语法:"项";"";"item"

    在这种情况下,列表是一组用双引号括起来用分号分隔的项目。

    通常情况下,选择查询使用以下基本语法 :SELECT [table_or_query_name].[field_name ]FROM [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 桌面数据库的数据类型以及修改 或更改数据类型字段的数据类型设置

数据类型

对数据输入的影响

短文本

注意,从 Access 2013 开始,文本数据类型已重命名为短文本​​。

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

长文本

请注意,从 Access 2013 开始,备忘录数据类型已重命名为长 文本

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

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

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

数字

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

大数

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

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

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

日期和时间

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

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

如果不创建输入掩码,可以使用任何有效的日期或时间格式输入值。 例如,可以键入 2017 年 10 月 11 日、2017 年 10 月 11 日、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

字符限制仅适用于设置为"文本"数据类型。 如果尝试输入的字符数超过指定数目,该字段会将其剪切。

必需

常规”选项卡

是/否​​

打开后,此属性会强制在字段中输入值,在填写必填字段之前,Access 不允许保存任何新数据。 关闭后,该字段将接受 null 值,这意味着该字段可以保留为空。

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

允许零长度字符串

常规”选项卡

是/否​​

启用后,可以输入零长度字符串,即不包含字符的字符串。 若要创建零长度字符串,请在""字段中输入一对双引号 (") 。

已索引

常规”选项卡

是/否​​

为表字段编制索引时,Access 会阻止添加重复值。 还可以从多个字段创建索引。 如果这样做,可以复制一个字段中的值,但不能复制这两个字段中的值。

输入掩码

常规”选项卡

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

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

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

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

列表限制

"查找" 选项卡

是/否​​

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

允许编辑值列表

"查找" 选项卡

是/否​​

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

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

列表项目编辑窗体

"查找" 选项卡

数据输入表单的名称

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

返回页首

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

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

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

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

有时,这些 ID (或其他类型的主键) 更改。 执行这些操作时,可以更改主键值,并且使更改自动级联到所有相关的子记录。 通过启用两个表之间的参照完整性和级联更新来启用此行为。

请记住以下重要规则:

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

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

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

以下过程是一起操作,并说明如何首先创建关系,然后为关系启用级联更新。

创建关系

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

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

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

    可以按 Shift 选择多个表,也可以单独添加每个表。 仅选择关系的"一"和"多"两侧的表。

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

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

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

  5. 选中"实施参照完整性"复选框,然后单击"创建"。

在主键中启用级联更新

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

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

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

    两个表之间的关系

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

    “编辑关系”对话框

  4. 选择"级联更新相关字段",确保选中"实施参照完整性"复选框,然后单击"确定"。

返回页首

为什么 ID 号码有时会跳过数字

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

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

返回页首

使用查询批量更新数据

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

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

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

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

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

返回页首

需要更多帮助?

需要更多选项?

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

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

此信息是否有帮助?

你对语言质量的满意程度如何?
哪些因素影响了你的体验?

谢谢您的反馈!

×