首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在MS access报告中累计使用运行总计

在MS access报告中累计使用运行总计
EN

Stack Overflow用户
提问于 2013-06-03 15:46:37
回答 2查看 611关注 0票数 0

我正在开发一个数据库( model,2010),以支持一所具有明确定义的学费报价模式的学校。每个报价都会列出产品清单,然后再进行各种折扣。折扣可以是一个百分比,也可以是一个绝对的美元金额。到目前为止还很简单。问题是他们的业务逻辑需要:

  1. 折扣次数无限制。
  2. 在一个定义的序列中应用特定折扣(在我的情况下用“折扣序号”列实现,值1(第一次应用)到100 (最后一次应用)。
  3. 折扣的每个顺序应用程序都是运行报价的总。产品总额1000美元。折扣: 50%。价值:500美元。小计500美元小计:500美元。折扣:25美元。价值:25美元。小计:475美元。小计:475美元。折扣:10%。价值:47.50美元。小计:427.50美元。

这似乎是“获取上一行中字段的值”问题的一个变化,但随着附加的扭曲,“字段的值”实际上是一个累积计算。它有递归的味道:当折扣仍然存在时,小计(以前的小计)。

我不清楚如何在报告中实现这一点,因为上面提到的计算是自引用的。我不是在这里寻找代码,只是关于解决问题的一般方法的指导(例如,使用VBA的某种全局变量--在这种情况下,我不确定VBA中的查询与报告之间的“胶水”是什么--尽管我花了很长的时间试图找出一个经过计算的字段,但我不知道这是什么“胶水”)。有什么想法吗?

EN

回答 2

Stack Overflow用户

发布于 2013-06-03 15:56:04

在这种情况下,我总是创建一个新的表,当报告打开时,它会被填满,并将报告建立在该表中,而不是原来的表中。这样我就可以做所有我需要的计算,甚至通过几次。然后,报告只是表的“转储”。复杂总计可以是其他列,仅在“总计”部分中显示。

票数 1
EN

Stack Overflow用户

发布于 2013-06-03 16:07:02

您可以使用一个整数来链接每个购买记录表,因为自动编号本身不会链接到每个折扣阶段。

所以在excel中,我会用到这样的东西:

代码语言:javascript
复制
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),但它可能非常慢。然后,您可以通过购买标识符来订购表,然后按值下降,因为顺序折扣将本质上正确地订购。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16900732

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档