我有一个subForm,aContinuous Form,由JobItemId字段过滤,有一个字段价格,价格更新后我想确定JobItemId的新价格总和,并将其传递给其他地方进行处理。
我有这段代码:
Private Sub Price_AfterUpdate()
Dim TotalCost As Currency
Dim strFilter As String
strFilter = "[JobItemID] = " + Str(JobItemID.Value)
TotalCost = DSum("[Price]", Me.Recordset.Name, strFilter)
Me.Parent.Total = TotalCost
Me.Parent.Update_FinalPrice
End Sub
我在TotalCost上设置了一个监视器,以便我可以验证传递的值,并发现总数是更新前的值。为什么会这样,我需要做些什么来获得更新后的正确总结?
答案 0 :(得分:2)
您的代码在控件的AfterUpdate事件中触发。您需要将其移动到表单的AfterUpdate事件(即Form_AfterUpdate
)。
DSum对提交给数据库的记录进行操作,但即使您的价格已在Price控件的AfterUpdate事件中更新,它仍未提交到数据库(Access通过显示写入铅笔来指示记录选择器)。在提交更新的记录之后,立即触发Form_AfterUpdate事件。