Sql 带有子查询的查询不可更新。附近有工作吗?

Sql 带有子查询的查询不可更新。附近有工作吗?,sql,database,ms-access,recordset,Sql,Database,Ms Access,Recordset,我正在使用Microsoft Access中的一个数据库,这是我试图找到解决方案的场景: 公司发送申请以申请更多容量。应用程序可以包含多个较小的容量,这些容量加起来等于应用程序的总容量。应用程序存储在表tApplication中,与应用程序相关的容量存储在tCapacity中 我希望提供有关申请的信息,包括总容量。因此,我有一个具有以下数据源的表单: SELECT tApplication.ID,tApplication.CompanyID, tApplication.statusID, (SE

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

公司发送申请以申请更多容量。应用程序可以包含多个较小的容量,这些容量加起来等于应用程序的总容量。应用程序存储在表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中不可更新)。有办法解决这个问题吗?我一直在考虑将应用程序和容量存储在同一张表中,但我不确定这是一个好的设计选择。

尝试以下两种选择:

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

使用追加查询而不是进行表查询 进行表查询的另一种方法是追加查询。追加查询允许您将查询中的记录插入到现有表中。如果你只是一步一个过程,通常没有太大的区别。但是,如果您有多个步骤,那么追加查询具有明显的优势

更多信息:

试试这两个选项:

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

使用追加查询而不是进行表查询 进行表查询的另一种方法是追加查询。追加查询允许您将查询中的记录插入到现有表中。如果你只是一步一个过程,通常没有太大的区别。但是,如果您有多个步骤,那么追加查询具有明显的优势

更多信息:

我使用了DSUM(),效果非常好。谢谢你6月7日

SELECT tApplication.ID,tApplication.CompanyID, tApplication.statusID,
DSUM( "tCapacity.Capacity" , "tCapacity", "tCapacity.ApplicationID = " & tApplication.ID) AS TotalCapacity
FROM tApplication;
我使用了DSUM(),效果很好。谢谢你6月7日

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

选项:1)查询或文本框中的DSum()域聚合函数;2) 子窗体;3) listbox.display子表单中的第二个表-毕竟,它看起来是要添加或更改的数据。因此,您的主窗体可以显示信息,但在子窗体中,您可以显示子表的行,以便编辑或添加新行。将找到的解决方案作为答案发布,并接受它,以便对其他人有用。选项:1)查询或文本框中的DSum()域聚合函数;2) 子窗体;3) listbox.display子表单中的第二个表-毕竟,它看起来是要添加或更改的数据。因此,您的主窗体可以显示信息,但在子窗体中,您可以显示子表的行,以便编辑或添加新行。将找到的解决方案作为答案发布,并接受它,以便对其他人有用。