编辑查询中的数据

重要:  本文是由机器翻译的,请参阅免责声明。请在 此处 中查找本文的英文版本以便参考。

您可能遇到过这样的情形:无法在查询数据表视图中编辑数据以更改基础表中的数据。本文帮助您了解何时可以编辑查询数据,何时不能编辑查询数据,以及为了能够编辑查询数据,应如何更改查询。

本文内容

简介

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

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

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

简介

当您在数据表视图中打开查询时,可能会发现自己需要编辑数据。您可能发现了一处错误,也可能发现一些信息已经过期了。能否直接在查询数据表中编辑数据要取决于查询的生成方式。

如果您尝试在查询数据表中编辑数据,但没有任何结果,或者 Windows 发出声音而您的编辑没有生效,则说明您无法执行编辑。这可能是因为查询本身不可编辑,例如交叉表查询。也可能是因为只有您尝试编辑的那个字段不可编辑;例如,如果该字段是基于聚合函数(如平均值函数)的,就会这样。无论在哪一种情况下,您都可以通过执行一些操作来启用编辑功能。 

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

有关更新查询的详细信息,请参阅文章创建更新查询

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

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

返回页首

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

当查询仅基于一个表或者基于彼此具有一对一关系的两个表时,您始终可以编辑该查询中的数据。

注意: 即便您可以编辑查询中的数据,它的某些字段也可能不可编辑。下一节详细介绍了这种情况。

返回页首

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

在下列情况下,绝对无法编辑查询中的数据:

  • 查询是交叉表查询。

  • 查询是 SQL 特定查询。

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

  • 查询基于三个或更多个表且各表之间存在“多对一、一对多”关系。

    注意: 虽然不能编辑查询数据表,请在此例中,您可以编辑窗体中的数据,当窗体的RecordsetType属性设置为动态集 (不一致的更新)

  • 查询中包含 GROUP BY 子句。

返回页首

为了能够编辑查询数据,应如何更改查询?

下表说明了在哪些情况下不能编辑查询,并相应地给出了使查询数据表可以编辑的方法。

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

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

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

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

请参阅以下部分中,设置为否的唯一值属性,以了解如何设置此属性。

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

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

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

分配“更新数据”权限。

查询包括多个表或多个查询,但是这些表或查询在设计视图中没有通过联接线联接起来。

创建适当的联接。

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

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

关闭数据库,然后在不选择“以只读方式打开”的情况下将它重新打开;如果数据库位于只读驱动器上,请去掉驱动器的只读属性,或者将数据库移到非只读的驱动器上。

您试图更新的记录中的字段已被删除或被另一个用户锁定。

等待记录解除锁定。锁定的记录一旦解除锁定,便可立即更新。等待另一个用户完成导致该记录被锁定的操作。

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

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

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

“多”方的联接字段在您编辑数据后转移到了“一”方。

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

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

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

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

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

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


返回页首

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

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

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

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

创建联接

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

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

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

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

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

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

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

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

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

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

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

返回页首

注意: 机器翻译免责声明:本文是由无人工介入的计算机系统翻译的。Microsoft 提供机器翻译是为了帮助非英语国家/地区用户方便阅读有关 Microsoft 产品、服务和技术的内容。由于机器翻译的原因,本文可能包含词汇、语法或文法方面的错误。

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

此信息是否有帮助?

谢谢您的反馈!

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

×