【问题标题】:MS Access sub-form data entry locked on inserting SQLMS Access 子表单数据条目在插入 SQL 时被锁定
【发布时间】:2017-09-17 13:32:55
【问题描述】:

当我插入以下 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])

【问题讨论】:

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


    【解决方案1】:

    在查询中使用计算会使基础记录集不可更新。 请参阅this question 了解为什么查询(以及基于它们的表单)有时不可更新的出色列表。

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

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

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

    【讨论】:

    • 我按照您的建议尝试了。但是文本框给了我“#Name?”有什么解决方法吗?
    • 查看编辑。也许最简单的方法是将查询分配给组合框,然后确保组合框选择第一个值。
    • 很好地尝试了您的建议,但未能成功。能否请您告诉我如何默认选择第一个值。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多