应用对象
Microsoft 365 专属 Access Access 2019 Access 2016 Access 2013

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

可以与 Dataverse 共享 Access 数据。Dataverse 是一种云数据库,可在其上构建面向 Web、手机或平板电脑的 Power Platform 应用、自动化工作流、虚拟代理等。 有关详细信息,请参阅 入门:将 Access 数据迁移到 Dataverse

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

注意: 本主题介绍 Access Web 应用。 它不适用于桌面数据库。 如果在桌面数据库中使用查询时遇到问题,请参阅文章 查询简介以获取 概述。

可更新查询字段的要求

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

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

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

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

在此查询中,“任务”表是最多数的表,因为它在“项目”表中查找数据。

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

即使添加了键,来自 Projects 表的任何字段都不可更新,因为它不是最多数的表。

返回页首

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

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

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

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

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

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

  4. 检查要更新的字段是否位于“最多”表中。 如果不是,则无法对查询执行任何作来解决此问题。 作为允许用户编辑字段的另一种方法,请考虑仅基于表创建一个新的可更新视图,然后根据需要轻松打开该视图。 例如,你可以提供一个按钮,其中包含用于打开视图的宏。

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

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

    • 联接是内部联接;或

    • 如果是外部联接,则最多数目的表位于联接的内侧 - 在左联接的左侧或右联接的右侧。

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

返回页首

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

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

  2. 确定最多数的表。

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

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

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

返回页首

更改联接以使查询可更新

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

“联接属性”对话框

这是一个左外部联接 - 它包括来自左表的所有内容以及来自右表的相应记录。 但是,最多数目的表位于联接的右侧,从而阻止更新。

使外部联接可更新的方法

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

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

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

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

返回页首

需要更多帮助?

需要更多选项?

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