如何将总和存储到 MS Access 表中
Posted
技术标签:
【中文标题】如何将总和存储到 MS Access 表中【英文标题】:How to store sums into MS Access Table 【发布时间】:2022-01-08 15:01:18 【问题描述】:所以,我知道这听起来如何,您不应该将计算字段存储到 Access 表中。但是,这是我的情况:
我有一个表格,用户可以在其中输入包重量。表格底部有两个字段,用于计算所有棉包的总重量和棉包总数。这两个字段需要存储到我们的表中,以便我们可以跟踪每个班次的总数。
现在,我有两个计算字段,然后我有两个隐藏字段,它们具有表格的控制源。这两个隐藏字段实际上是这个包重子表单的父表单。当您输入新的包重量时,控件上会出现一个 OnClick 事件,该重量会使用表单的计算控件更新父隐藏控件。问题是:这些字段在输入新的包重量后不会立即更新,如果我将 requery、recalc、refresh 放入 afterupdate 事件中,字段会正确更新,但光标会转到第一条记录,这对用户非常不友好。更糟糕的是,有时有人必须删除或更改此表单中间的一堆记录,并且在每次单击和更新后,它都会将您带到顶部(如果我添加 DoCmd.GoToRecord,则将您带到底部,, AC 新纪录)。
TLDR:我需要一种更好的方法来将 12 小时轮班的所有棉包的总和存储到我们的表中。一种不涉及刷新的方法,因为如果需要更新记录,这会打乱光标的位置。
(我也尝试在棉包重量表格失去焦点后更新表格,但由于某种原因,这与立即更新总棉包重量和总棉包计数隐藏控件不一致)
【问题讨论】:
重新查询表单的Recordset,而不是表单,并且记录焦点不会改变:Me.Recordset.Requery
。或者在准备好提交记录之前不要更新总和字段。使用表格 BeforeUpdate 事件。这些总和应该可以在需要时“按班次”计算。
为什么要使用 OnClick 而不是数据控件的 AfterUpdate 事件?
编辑问题以显示将总和保存到父记录字段的代码。
Me.recordset.requery 完美运行,谢谢!从子表单切换到主表单时,我只是遇到了一个小问题,它给了我一个“这已被另一个用户编辑”的消息,我通过在子表单的 OnExit 事件中使用相同的代码来摆脱它.另外,我对 OnClick 事件犯了一个错误,它是一个 OnEnter 事件。但我确实将代码添加到 OnEnter 和 Afterupdate 以说明从主表单切换回包重量。完美运行。
【参考方案1】:
您可以在表情上使用 SetFocus 命令。 然后光标将转到该字段。
Me.controlfield.Setfocus
或者
Me.controlfield.Text.Setfocus
【讨论】:
以上是关于如何将总和存储到 MS Access 表中的主要内容,如果未能解决你的问题,请参考以下文章
MS Access 2016:如何将连接字段从表单输入到表中
MS Access 2010 - 如何将子表中的孤立记录链接到新创建的父记录?