编辑查询中的数据

注意: 我们希望能够尽快以你的语言为你提供最新的帮助内容。 本页面是自动翻译的,可能包含语法错误或不准确之处。 我们的目的是使此内容能对你有所帮助。 可以在本页面底部告诉我们此信息是否对你有帮助吗? 请在此处查看本文的英文版本以便参考。

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

本文内容

简介

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

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

如何更改查询, 以便我可以编辑其数据?

简介

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

如果您尝试在查询数据表中编辑数据, 但没有任何反应, 或者 Windows 播放了声音, 并且您的编辑没有发生, 则无法执行编辑。 这可能是因为查询本身不可用于编辑, 如交叉表查询。 也可能是只有您要编辑的字段不可用于编辑, 例如, 如果该字段基于聚合函数 (如 average), 则是如此。 在任何一种情况下, 你都可以执行一些操作来启用编辑。

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

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

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

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

返回页首

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

当查询仅基于一个表或两个互相具有一对一关系的表时, 可以随时编辑查询中的数据。

注意: 即使可以编辑查询中的数据, 其中一些字段也可能不可用于编辑。 下一节中列出了这种情况。

返回页首

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

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

  • 该查询是一个交叉表查询。

  • 该查询是一个SQL 特定查询。

  • 您尝试编辑的字段是计算字段。 在这种情况下, 您也许能够编辑其他字段。

  • 该查询基于三个或更多个表, 并且具有多对多关系。

    注意: 虽然在这种情况下不能编辑查询数据表, 但当窗体的 "示例一部分" 属性设置为 "动态集" (不一致的更新)时, 您可以编辑窗体中的数据。

  • 该查询包含 GROUP by 子句。

返回页首

如何更改查询, 以便我可以编辑其数据?

下表列出了无法编辑查询时的情况, 并将其与方法进行了配对以使查询数据表可供编辑。

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

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

查询的 "唯一值" 属性设置为"是"

将查询的 "唯一值" 属性设置为 ""。

请参阅下一节将 "唯一值" 属性设置为 "否", 了解如何设置此属性。

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

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

你没有对基础表的 "更新数据" 权限。

分配更新数据权限。

查询包含多个表或一个查询, 并且表或查询在 "设计" 视图中未通过联接线进行联接。

创建适当的联接。

有关如何创建联接的详细说明, 请参阅创建联接一节。

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

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

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

等待记录处于解锁状态。 锁定的记录可在记录解除锁定后立即更新。 等待其他用户完成锁定该记录的操作。

查询基于具有一对多关系的表, 而 "多" 方的联接字段不是输出字段。 在这种情况下, "一" 方的联接字段中的数据不能进行编辑。

将关系的 "多" 方中的联接字段添加到查询输出字段。

请参阅将 "多" 方中的联接字段添加到查询输出字段中, 了解如何添加联接字段。

"多" 方的联接字段 (在编辑数据之后) 位于 "一" 方。

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

一对多关系中 "一" 方的表中有一个空白字段, 并且该联接是右外部联接。

确保 "一" 方的该字段中有值。 仅当 "一" 方的该字段中存在值时, 您才可以编辑 "多" 方的联接字段。

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

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

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

返回页首

将 "唯一值" 属性设置为 "否"

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

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

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

创建联接

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

  2. 对于要加入的每个表或查询, 将表或查询中的联接字段拖动到要在其中创建联接的表或查询中的对应字段。

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

将 "多" 方中的联接字段添加到查询输出字段

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

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

  3. 双击一对多关系的 "多" 方中的联接字段。 联接字段将显示在字段网格中, 这表示它现在是一个输出字段。

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

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

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

  3. 唯一索引字段在字段名称旁边将有一个钥匙符号。 双击每个尚未位于字段网格中的字段。 每个字段都显示在字段网格中, 这表示它现在是一个输出字段。

返回页首

扩展你的 Office 技能
了解培训
抢先获得新功能
加入 Office 预览体验计划

此信息是否有帮助?

谢谢您的反馈!

谢谢你的反馈! 可能需要转接到 Office 支持专员。

×