MS Access子表单数据条目在插入SQL时被锁定

时间:2017-09-17 13:32:55

标签: sql ms-access ms-access-2013

当我插入以下SQL字段时,我无法将任何条目编码到主窗体上的子窗体数据网格。如果我删除此列,系统允许我创建新的数据记录。任何人都可以看看这个问题!

提前付款余额

(SELECT SUM(NZ(T1.AdvancePayment,0)-
            NZ(([GrossInv-WorksCertified-61110]*
            [SubCon-BasicInfo].[Advance-409130-%]/100),0)) 
   FROM [InvoiceMaster] AS T1 
  WHERE T1.[SubConName]=[InvoiceMaster].[SubconName] 
    AND T1.[ID]<=[InvoiceMaster].[ID])

1 个答案:

答案 0 :(得分:0)

在查询中使用计算会使基础记录集无法更新。 有关查询(以及基于它们的表单)有时不可更新的原因,请参阅this question

在数据表表单中包含计算的正确方法是在设计视图中打开它,向它们添加新的文本框控件,并将控件控件源设置为等于=等号,然后计算

您还需要将子查询重写为域聚合或使用组合框来使用查询。

重写示例: DSUM("NZ(InvoiceMaster.AdvancePayment,0)- NZ(([GrossInv-WorksCertified-61110]*[SubCon-BasicInfo].[Advance-409130-%]/100),0)", "InvoiceMaster", "[SubConName] = """ & [InvoiceMaster].[SubconName] & """ AND ID = " & [InvoiceMaster].[ID])