我正在开发一个数据库( model,2010),以支持一所具有明确定义的学费报价模式的学校。每个报价都会列出产品清单,然后再进行各种折扣。折扣可以是一个百分比,也可以是一个绝对的美元金额。到目前为止还很简单。问题是他们的业务逻辑需要:
这似乎是“获取上一行中字段的值”问题的一个变化,但随着附加的扭曲,“字段的值”实际上是一个累积计算。它有递归的味道:当折扣仍然存在时,小计(以前的小计)。
我不清楚如何在报告中实现这一点,因为上面提到的计算是自引用的。我不是在这里寻找代码,只是关于解决问题的一般方法的指导(例如,使用VBA的某种全局变量--在这种情况下,我不确定VBA中的查询与报告之间的“胶水”是什么--尽管我花了很长的时间试图找出一个经过计算的字段,但我不知道这是什么“胶水”)。有什么想法吗?
发布于 2013-06-03 15:56:04
在这种情况下,我总是创建一个新的表,当报告打开时,它会被填满,并将报告建立在该表中,而不是原来的表中。这样我就可以做所有我需要的计算,甚至通过几次。然后,报告只是表的“转储”。复杂总计可以是其他列,仅在“总计”部分中显示。
发布于 2013-06-03 16:07:02
您可以使用一个整数来链接每个购买记录表,因为自动编号本身不会链接到每个折扣阶段。
所以在excel中,我会用到这样的东西:
v = Starting Value
i = 1
Do Until i = Last Discount
d = ws.Cells(i, 9).Value
v = v * (1 - d)
ws.Range("B2").Value = v
i = i + 1
Loop在每个阶段,您都可以将贴现(d)和值(v)写入表(使用docmd.runsql),但它可能非常慢。然后,您可以通过购买标识符来订购表,然后按值下降,因为顺序折扣将本质上正确地订购。
https://stackoverflow.com/questions/16900732
复制相似问题