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

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

本文内容

简介

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

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

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

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

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

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

返回页首

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

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

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

返回页首

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

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

  • 查询是 交叉表查询 。

  • 查询是 SQL 特定查询 。

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

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

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

  • 查询包含 GROUP BY 子句。

返回页首

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

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

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

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

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

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

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

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

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

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

分配“更新数据”权限。

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

创建适当的联接。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

返回页首

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

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

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

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

创建联接

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

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

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

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

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

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

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

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

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

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

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

返回页首

需要更多帮助?

需要更多选项?

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

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

此信息是否有帮助?

你对语言质量的满意程度如何?
哪些因素影响了你的体验?
按“提交”即表示你的反馈将用于改进 Microsoft 产品和服务。 你的 IT 管理员将能够收集此数据。 隐私声明。

谢谢您的反馈!

×