MSaccess VBA 在计算字段的 oncurrent 之后发生了一些事情

问题描述 投票:0回答:1

我的表单上有一个计算字段,该字段不在基础表中。仅用于显示目的。 字段名称为 TotalMain 该字段的源是子表单页脚中的计算字段。 子表单只是表格视图中的基本子表单。在该子表单的页脚中,我有一个名为 TotalSub

的求和字段

然后主窗体上的一个字段有一个源TotalMain=[subfrmData]![TotalSub]。 当我在主表单上导航记录时,这些字段完美地工作并完美地更新。

我有一个按钮,如果 [TotalMain] 字段大于零,我想启用该按钮。如果我使用基础表中的字段,OnCurrent 中用于启用该按钮的代码可以完美运行。但 [TotalMain] 只是一个根据子表单中的数据动态更改/求和的字段。

我在OnCurrent中放入了一个测试msgbox,并确认OnCurrent时该字段为空。我继续在 every.single.event 中放置一个过程。并且计算字段更新后不会触发任何内容。

我还尝试将代码放在子窗体的 OnCurrent 中(然后是子窗体的每个事件)。但我找不到计算字段更新后发生的任何事件。

我做错了什么?如果计算字段更新后确实没有发生任何事件,是否有其他方法可以解决此问题,以便我可以显示计算信息并在大于零时启用按钮?

vba ms-access ms-access-2016
1个回答
0
投票

将该文本框绑定到一个函数,该函数使用当前值作为参数来处理它:

=YourFunction([subfrmData]![TotalSub],[OtherField],[NameOfButton])

函数可以是这样的:

Private Function YourFunction( _
    TotalSubValue As Currency, _
    OtherValue As Currency, _
    YourButton As Button)

    Dim Value   As Currency
    Dim Enabled As Boolean

    ' Calculate value.
    Value = TotalSubValue * OtherValue  ' Your calculation
    
    ' Calculate button status.
    If TotalSubValue > 0 Then
        Enabled = True
    End If
    
    ' Set button.
    YourButton.Enabled = Enabled

    ' Return value.
    YourFunction = Value

End Function

您可能需要扩展它来处理可能的 Null 值。

© www.soinside.com 2019 - 2024. All rights reserved.