带子查询的查询不可更新。有解决方法吗?

Query with subquery is not updateable. Is there a work-around?

我正在使用 Microsoft Access 中的数据库,这是我正在尝试寻找解决方案的场景:

公司发送申请以申请更多容量。应用程序可以包含多个较小的容量,这些容量加起来就是应用程序的总容量。应用程序存储在 table tApplication 中,与应用程序关联的容量存储在 tCapacity 中。

我想提供有关应用程序的信息,包括总容量。因此我有一个包含以下数据源的表单:

SELECT tApplication.ID,tApplication.CompanyID, tApplication.statusID,
(SELECT SUM(tCapacity.Capacity) FROM tCapacity WHERE tApplication.ID = tCapacity.ApplicationID) AS TotalCapacity
FROM tApplication;

此查询为我提供了所需的信息,但它阻碍了我编辑记录集中的任何内容(使用子查询显然会使您的查询无法在 Microsoft Access 中更新)。有没有解决的办法?我一直在考虑将应用程序和容量存储在同一个 table 中的想法,但我不确定这是一个好的设计选择。

试试这两个选项:

进行 Table 查询 Make-Table 查询就像 Select 查询,只是它们的结果被放入一个新的 table 而不是数据表视图。您指定 table 名称并创建它。如果 table 存在,则将其替换。要创建 Make-Table 查询,请在设计模式下打开查询 (qryCustomerSales),然后从“查询”菜单中选择“Make-Table 查询

使用附加查询而不是生成-Table 查询 Make-Table 查询的替代方法是追加查询。追加查询让您可以将查询中的记录插入现有 table。如果您只有一个步骤,通常没有太大区别。但是,如果您有多个步骤,追加查询具有明显的优势。

更多信息: https://www.fmsinc.com/MicrosoftAccess/query/non-updateable/index.html#Example2

我使用了 DSUM(),效果很好。感谢 June7.

SELECT tApplication.ID,tApplication.CompanyID, tApplication.statusID,
DSUM( "tCapacity.Capacity" , "tCapacity", "tCapacity.ApplicationID = " & tApplication.ID) AS TotalCapacity
FROM tApplication;