我的应用程序中的字段意外地处于只读状态

重要提示    已从下一版本的 SharePoint 中删除 Access Services 2010 和 Access Services 2013。 建议不要创建新的 web 应用,可将现有应用迁移到替代平台,如Microsoft Power App

使用查询为 Access Web 应用中的视图提供数据时,预期可以编辑的一些字段在视图中是只读的。 具体而言,如果使用了多个表并且至少有一个联接,则查询字段可以更新有一些限制。

注意:  本主题介绍 Access Web 应用。 它不适用于桌面数据库。 如果在桌面数据库中遇到查询问题,请参阅"查询简介"一 文了解概述

可更新查询字段的要求

  • 只能更新表中联接字段没有唯一值的字段("最多"表)。

  • 查询输出必须包含最多表的主键字段。

  • 最多个表必须位于任何外部联接的内部 (,即左侧外部联接或右侧外部联接) 。

描述可更新字段的查询图表

在此查询中,"任务"表是最多的表,因为它在 Projects 表中查找数据。

但是,由于"任务"的主键不包括在输出中,因此其任何字段都不可更新。

即使添加了密钥,来自 Projects 表的字段也不可更新,因为它不是最多的表。

返回页首

查找并修复可更新字段问题

字段不可更新的原因决定了如何启用更新。 若要找出原因,请在设计视图中打开查询并检查查询设计详细信息。

  1. 如果从浏览器启动,请在 Access 中打开 Web 应用:在应用的右上角,单击"设置"> Access 中自定义

  2. 在 Access 中,如果导航窗格未打开,请按 F11 以显示它。 然后,在导航窗格中,右键单击查询,然后单击"设计视图"。

    导航窗格中查询的上下文菜单

  3. 确定查询中的哪个表是最多表。 一个很好的经验法则是,最多个表是在另一个表中查找数据的表。

  4. 检查要更新的字段是否位于最多的表中。 如果没有,则你无法对查询执行任何操作来解决此问题。 作为让用户编辑字段的替代方法,请考虑仅基于表创建新的可更新视图,然后根据需要轻松打开该视图。 例如,你可能会提供一个按钮,该按钮具有用于打开视图的宏。

  5. 检查查询输出中是否包含最多表的主键。 如果不存在,则 向查询输出添加主键

  6. 双击每个联接并验证:

    • 联接是内部联接;或者,

    • 如果它是外部联接,则最多个表位于联接的内部端 - 位于左联接的左侧或右侧联接的右侧。

如果联接不满足上述两个条件中的至少一个,请更改联接 ,使查询可更新

返回页首

将最多主键添加到查询输出

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

  2. 标识最多的表。

  3. 双击主键中的每个字段。 每个键字段标有一个小键。

  4. 在查询设计网格中,确保选中"显示"框,查看刚添加的关键字段:

    查询设计网格中“显示”行

返回页首

更改联接以更新查询

如果任何联接不符合上述条件之一,它将阻止更新。 下面是不可更新联接的示例:

“联接属性”对话框

这是左外部联接 – 它包含左侧表中的所有内容以及右侧表中的相应记录。 但是,最多个表位于联接的右侧 ,从而阻止更新。

使应用程序可外部联接的方法

有三种调整联接的基本方法,以便其查询可更新。 双击联接以打开"联接属性"对话框,然后执行下列操作之一:

  • 将外部联接更改为内部联接    单击"联接属性"对话框中 的选项1。

  • 切换表的位置    将最多个表移动到联接的内部侧,将另一个表移动到外部 (使用"联接属性"对话框中的组合框设置左表和右表名称) 。

  • 更改联接的方向    单击"联接属性"对话框中的选项 2 或 3, (更改为未添加的值) 。

返回页首

需要更多帮助?

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

此信息是否有帮助?

谢谢您的反馈!

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

×