gpt4 book ai didi

ms-access - 从主窗体,运行 VBA 以验证子窗体中的总数

转载 作者:行者123 更新时间:2023-12-04 14:04:37 25 4
gpt4 key购买 nike

我在 MS Access 2002 中有一个表单,在命令按钮后面有以下代码片段。

'Requery subform to make sure total is calculated
Me.fsubUpdateShipments.Requery
DoEvents

'Confirm quantities have been entered
If Form_fsubUpdateShipments.txtTotalShipmentQty.Value <= 0 Then
MsgBox "Cannot create shipment, no quantities have been entered", vbCritical
Exit Sub
End If

几个月来,这一直工作正常,但今天一位同事来找我并解释说,即使他们输入了数量,错误消息仍会显示。

经过一番挖掘,我确定 .Value <= 0在有问题的文本框完成其值计算之前,正在评估表达式: =Sum([QtyToShip]) .这似乎只发生在子表单具有非平凡数量的记录(大约 10 个或更多)并且显然是一个严重问题时。

在包含 If 的行上添加断点语句允许代码正确运行,但我显然不能永久使用这种方法。

有什么方法可以强制代码暂停,直到子窗体控件完成重新计算它们的值?

最佳答案

我会完全跳过使用用户界面并查看表格。如果这是在主窗体命令按钮上运行,则子窗体将失去焦点并保存其值。不需要重新查询。只需在 DSum 的标准(第三个参数)中重新创建父子关系:

If DSum("QtyToShip", "ShipmentDetails", "ShipmentID = " & Me!ShipmentID) <= 0 Then
MsgBox "Cannot create shipment, no quantities have been entered", vbCritical
Exit Sub
End If

关于ms-access - 从主窗体,运行 VBA 以验证子窗体中的总数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26280815/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com