计算返回零值访问2010

时间:2015-05-12 14:21:46

标签: vba ms-access access-vba ms-access-2010

我在Access 2010中有一个sub,它以一个数百万美元(txtSumEstimatedValue)的总成本为单位,并将其乘以1,000,000,以全部美元(DesignEstProgramValue)计算成本。问题在于,每当其中一项成本发生变化时,最终成本就会变为0,我不知道为什么。我尝试添加Parent.Dirty=False,但这不起作用。

这是我正在使用的代码。

Private Sub Est_Value_AfterUpdate()

    'Recalculate estimated value
    Me.Recalc
    Parent.[DesignEstProgramValue] = (Me.txtSumEstimatedValue) * 1000000
    'Update date
    Parent.[UpdatedCosts] = Date
    Parent![Updated Costs].Requery
    Parent!Text263.Requery

End Sub

1 个答案:

答案 0 :(得分:1)

检查这个更简单的代码版本......

Private Sub Est_Value_AfterUpdate()
    Parent.[DesignEstProgramValue] = (Me.txtSumEstimatedValue) * 1000000
End Sub
当用户更改名为 Est_Value 的控件中的值时,

Est_Value_AfterUpdate 运行。但在该程序中,您并未使用 Est_Value 的值。相反,您使用名为 txtSumEstimatedValue 的控件的值。那个控制的价值是什么?

通过在您的程序中加入此行来了解。

MsgBox "The value of txtSumEstimatedValue is '" & Nz(Me.txtSumEstimatedValue.Value, "Null") & "'"

由于您知道 Est_Value Est_Value_AfterUpdate 运行时包含正确的源值,因此请在您的过程中使用该值:

Private Sub Est_Value_AfterUpdate()
    'Parent.[DesignEstProgramValue] = (Me.txtSumEstimatedValue) * 1000000
    Parent.[DesignEstProgramValue] = Me.Est_Value.Value * 1000000
End Sub