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

可能会遇到无法编辑查询 数据表视图 数据以更改基础表中的数据的情况。 本文可帮助你了解何时可以编辑查询数据、何时无法编辑查询数据,以及如何更改查询的设计以便编辑其基础数据。

本文内容

简介

在数据表视图中打开查询时,可能会发现要编辑数据。 也许你注意到了错误,或者你看到一些信息已过期。 根据查询的生成方式,可以直接在查询 数据表 中编辑数据。

如果尝试编辑查询数据表中的数据但未发生任何操作,或者 Windows 播放声音且未进行编辑,则无法执行编辑。 查询本身可能无法进行编辑,例如交叉表查询。 此外,可能只有您尝试编辑的字段才可用于编辑,例如,如果字段基于聚合函数(例如平均值)。 在任一情况下,都可以执行某些操作来启用编辑。

除了在查询数据表视图中编辑数据外,还可以使用 更新查询 更新表中的数据。 本文不介绍更新查询。

有关更新查询的详细信息,请参阅创建和运行更新查询一文。

通常,如果要在查询数据表视图中编辑数据,则希望将更改保存到查询所基于的表中。 如果不想更改这些表中的数据,但仍希望编辑数据并在完成后保留编辑的数据,则可以使用 生成表查询 首先创建可编辑其数据的新表。 还可以使用生成表查询保存不允许编辑为新表的查询的结果,然后编辑该新表中的数据。 本文不讨论如何创建和运行生成表查询。

有关生成表查询的详细信息,请参阅生成表查询Create一文。

返回页首

何时可以在查询中编辑数据?

如果查询仅基于一个表或两个表,则始终可以编辑查询中的数据,这些表相互 一对一关系 。

注意: 即使可以在查询中编辑数据,其某些字段也可能无法编辑。 以下部分列出了此类情况。

返回页首

何时不能编辑查询中的数据?

在以下情况下,永远无法编辑查询中的数据:

  • 查询是 交叉表查询 。

  • 查询是 SQL 特定查询 。

  • 您尝试编辑的字段是 计算字段 。 在这种情况下,可以编辑其他字段。

  • 查询基于三个或多个表,存在多对一对多关系。

    注意: 虽然在这种情况下无法编辑查询数据表,但当窗体的 RecordsetType 属性设置为 Dynaset ( 不一致汇报) 时,可以编辑窗体中的数据。

  • 查询包含 GROUP BY 子句。

返回页首

如何实现更改查询以便编辑其数据?

下表列出了无法编辑查询的情况,这些情况与方法配对,使查询数据表可供编辑。

在以下情况下,不能编辑查询数据表中的值:

若要使查询数据表可供编辑,请执行以下操作:

查询的 “唯一值” 属性设置为 “是”。

将查询的 “唯一值” 属性设置为 “否”。

请参阅以下部分: 将“唯一值”属性设置为“否”,了解如何设置此属性。

该查询包括一个没有 唯一索引 的链接 ODBC 数据库 表,或一个没有 主键 的 Paradox 表。

使用链接数据库供应商提供的方法向链接表添加主键或唯一索引。

您没有基础表的“更新数据”权限。

分配“更新数据”权限。

查询包括多个表或一个查询,并且表或查询不由设计视图中的联接线联接。

Create相应的联接。

请参阅Create联接部分,了解如何创建联接。

数据库以只读的形式打开,或位于只读驱动器上。

关闭数据库并重新打开它,而不选择 “打开只读”;或者,如果数据库位于只读驱动器上,请从驱动器中删除只读属性,或将数据库移动到非只读驱动器。

您尝试更新的记录中的字段已被其他用户删除或锁定。

等待记录解锁。 锁定的记录可以在记录解锁后立即更新。 等待其他用户完成已锁定记录的操作。

查询基于具有 一对多关系 的表,并且“多”端的联接字段不是输出字段。 在这种情况下,无法编辑“一”端的联接字段中的数据。

将关系的“多”端的联接字段添加到查询输出字段。

若要了解如何添加 联接字段,请参阅将“多”端的联接字段添加到查询输出字段部分。

编辑数据后,“多”侧的联接字段 () 位于“一”侧。

SHIFT+F9 提交更改并刷新查询。

一对多关系的“一”端有一个空白字段,联接是右外部联接。

确保“一”侧的该字段中有值。 仅当“一”侧的字段中有值时,才能编辑“多”侧的联接字段。

您使用的是链接的 ODBC 数据库表,并且并非链接表的唯一索引中的所有字段都在查询输出中。

将 ODBC 表的唯一索引中的所有字段添加到查询输出字段。

若要了解如何添加字段,请参阅 从链接的 ODBC 表中添加唯一索引字段部分。

返回页首

将“唯一值”属性设置为“否”

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

  2. 如果 属性表 未打开,则按 F4 将其打开。 在查询设计网格中单击一次,以确保属性表显示查询属性而不是字段属性。

  3. 在属性表中,找到 “唯一值” 属性框。 单击它旁边的框,单击该框中的箭头,然后单击 “否”。

Create联接

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

  2. 对于要联接到另一个表或查询的每个表或查询,将联接字段从该表或查询拖到要创建联接的表或查询中的相应字段。

有关创建联接的详细信息,请参阅 联接表和查询一文。

将“多”端的联接字段添加到查询输出字段

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

  2. 在查询设计器中,找到对应于相关一对多关系的联接。

  3. 从一对多关系的“多”端双击联接字段。 联接字段显示在字段网格中,指示它现在是输出字段。

从链接的 ODBC 表添加唯一索引字段

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

  2. 在查询设计器中,找到链接的 ODBC 表。

  3. 唯一索引字段将在字段名称旁边有一个键符号。 双击字段网格中尚不存在的每个字段。 每个字段都显示在字段网格中,指示它现在是输出字段。

返回页首

需要更多帮助?

需要更多选项?

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

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