【发布时间】:2023-03-05 11:56:01
【问题描述】:
谁能帮忙,我不知道发生了什么。
对于如下所示的表格:
part value
BAC 102
BS1 275
MAV 425
BAC 519
BSF 653
BAC 1072
结果将是:
对于部分 BAC
part value difference
BAC 102 102
BAC 519 417
BAC 1072 553
除了值是有序的,没有任何关系。
使用了@Tom Collins 的修改函数:
Function GetDiff(CurrPart As String, CurrValue As Long) As Long
Static LastPart As String
Static LastValue As Long
If CurrPart <> LastPart Then
LastValue = 0
LastPart = CurrPart
End If
If LastValue = CurrValue Then
GetDiff = CurrValue
Else
GetDiff = CurrValue - LastValue
LastValue = CurrValue
End If
End Function
结果显示该函数可以正常工作,但是当结果放入报表时发生了奇怪的事情,查询的第一个值出现错误,单击时又出现正确。另一个奇怪的事情是,如果我想要显示错误值的字段的平均值,它会显示正确的平均值,如果我点击错误的值,然后一切正常,平均值保持不变。
为什么会发生这种情况以及如何解决?
【问题讨论】:
-
你说它在报告中,然后你提到点击它。您实际上是在输出到报告还是到表单?
-
@user 报告可在报告视图中单击。我的报告中也发生过类似的奇怪事情。有时我必须滚动才能显示结果,有时打印时没有显示(即使它们的可见性和仅打印属性没有搞砸)。
-
这一直是 Access 的缺点,而 Excel 更有用。必须使用自定义函数变通办法很尴尬,因为当您在报告中激活一行时,它将重新运行该函数,因此为什么结果会在加载和点击时发生变化。有机会编写一个排名查询,它应该提供更稳定的输出。