【问题标题】:Running sum in vba, ms access在 vba 中运行 sum,ms 访问
【发布时间】:2018-10-02 13:08:16
【问题描述】:

我正在尝试使用另一个字段 (Length) 的运行总和来更新一个字段 (tblUSA.RunSum),第一个值从 tblUSA.RunSum= 0 开始。到目前为止,我没有运气。 tblUSA 正在编写 Mo 更新。

Dim db As Database
Set db = CurrentDb()
Dim lastValue, thisValue

s = "tblUSA"

Set rs = db.OpenRecordset(s, dbOpenDynaset)

'rs.Sort ("DateS")

lastValue = rs.Fields("Length")
rs.MoveNext

While (Not rs.EOF())
        thisValue = rs.Fields("Length")
        rs.Edit
           rs!RunSum = thisValue + lastValue
        rs.Update
        lastValue = thisValue ' remember previous value
        rs.MoveNext           ' advance to next record
Wend

MsgBox "Done with " & s

【问题讨论】:

  • 最后一个值不应该是rs.Fields("RunSum"),因为长度不是总和。
  • 非常感谢!我改变了它,但仍然没有运气
  • 你的表有多少条记录?它是否具有决定运行总和顺序的唯一值?
  • 是的,日期字段 - 称为 DateS。大约有 500 条记录。

标签: ms-access sum vba ms-access-2010


【解决方案1】:

这可能会:

Dim db As DAO.Database
Dim rs As DAO.Recordset

Dim lastValue As Double
Dim s As String

Set db = CurrentDb()
s = "Select * From tblUSA Order By DateS"
Set rs = db.OpenRecordset(s, dbOpenDynaset)

While Not rs.EOF
    rs.Edit
       rs!RunSum.Value = lastValue   ' Initially = 0
    rs.Update
    lastValue = lastValue + rs.Fields("Length").Value
    rs.MoveNext 
Wend
rs.Close

【讨论】:

  • 谢谢,应该可以工作,但是每当这段代码运行时,表格上就会出现某种行锁...有一个带斜线的圆圈它在每一行,我无法编辑表格
  • 在表单中编辑记录时无法运行此代码。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-05
  • 2014-05-12
  • 2019-04-03
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多