计算连续形式的值

Calculating a value in continuous form

我目前在 MS Access 中使用连续表单,用户将值输入到一个字段中。在表单中,一个字段下有三个记录。我不确定这是否可能,甚至不知道如何去做,但我想用第二条记录中的值减去第一条记录中的值来计算第三条记录的值。 Form in question

在我提供的示例中,它是 20-10,然后第三条记录是 10。字段名称是 Initial_Value。我一直在网上查找,但没有看到任何有关如何获取这些值以使用 VBA 执行此操作的信息。表单的名称是 "frm_main_process_values",是 "frm_main_msmt" 的子表单。

这在连续形式中是不可能的,因为Value文本框只有一个控件源,它不能同时是绑定字段和计算值。

如果它是 总是 三个记录,并且您用这三个记录预先填写了表格,并且它们有一个带有排序字段的定义顺序,您可以有一个按钮计算值并将其写入第三条记录。但这是连续形式的一种非常奇怪的用法。

添加带有测量类型的列(初始、最终、更改、可以隐藏)并用于具有基于函数的计算控制源的值文本框:=CalcDrop([ResType],[Result])。 并在带有静态变量的模块中创建 public 函数,它会记住以前的值:

Public Function CalcDrop(strResType As String, lngVal As Long) As Long
Static lngInit As Long
Static lngFinal As Long

Select Case strResType
    Case "initial"
        lngInit = lngVal
        CalcDrop = lngVal
    Case "final"
        lngFinal = lngVal
        CalcDrop = lngVal
    Case "change"
        CalcDrop = lngInit - lngFinal
End Select
End Function

您需要确保每个系列的行顺序相同:初始、最终、更改。这是结果,第 "Value" 列是计算出来的: