MS Access 子表单数据条目在插入 SQL 时被锁定
Posted
技术标签:
【中文标题】MS Access 子表单数据条目在插入 SQL 时被锁定【英文标题】:MS Access sub-form data entry locked on inserting 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])
【问题讨论】:
【参考方案1】:在查询中使用计算会使基础记录集不可更新。 请参阅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])
【讨论】:
我按照您的建议尝试了。但是文本框给了我“#Name?”有什么解决方法吗? 查看编辑。也许最简单的方法是将查询分配给组合框,然后确保组合框选择第一个值。 很好地尝试了您的建议,但未能成功。能否请您告诉我如何默认选择第一个值。 见this page以上是关于MS Access 子表单数据条目在插入 SQL 时被锁定的主要内容,如果未能解决你的问题,请参考以下文章