【Access文章】如何在查询中实现累计余额计算的功能-will.miao
Access软件网QQ交流学习群(群号码198465573),欢迎您的加入!
首页 >技术文章> Access数据库-查询/SQL语句


【Access文章】如何在查询中实现累计余额计算的功能

发表时间:2014/7/18 12:20:35 评论(6) 浏览(23777)  评论 | 加入收藏 | 复制
   
摘 要:在Access应用开发中,开发账目管理之类的程序时,经常会遇到需要对余额进行累计的情况,即类似于:本期余额=前期余额 + 本期收入 – 本期支出。本文讲述了如何通过使用自定义函数,在查询中实现这样的功能。
正 文:

      Access应用开发中,开发账目管理之类的程序时,经常会遇到需要对余额进行累计的情况,即:本期余额=前期余额 + 本期收入 本期支出。本文讲述了如何通过使用自定义函数,在查询中实现这样的功能。

  我们以图1所示的表举例,通过查询得到如图2所示的余额累计效果:

(图1

(图2

 

要实现这样的效果,首先我们需要创建一个模块,然后在模块中创建如下的自定义函数,然后保存该模块:

'函数用途: 求累计结余金额

'输入参数: ID      对应查询中当前行ID字段的值

'           Balance 对应查询中的当前行结余金额的值

'使用注意: 必须以ID字段排升序,否则会出错

Public Function GetBalance(ID As Long, Balance As Currency) As Currency

    Static lngPreID As Long             '前次ID

    Static curPreBalance As Currency    '前次余额

   

    If ID > lngPreID Then

        curPreBalance = curPreBalance + Balance

    Else

        curPreBalance = Balance

    End If

    lngPreID = ID

    GetBalance = curPreBalance

End Function


然后我们在查询设计中使用这个函数创建【累计结余】这个计算字段(图3):


这里实现的原理是:由于在查询的计算字段中使用了自定义函数,这样每加载一行记录时都会调用 一次自定义函数,我们通过一个静态变量将前期余额保存起来,在每次调用时把本期余额传递给这个函数,然后在函数中将本期余额和前期余额相加后返回,并将静态变量重置为相加后的结果以供下一次调用时使用。


附  件:

点击下载此附件


演  示:



Access软件网交流QQ群(群号:198465573)
 
 相关文章
[access查询]关于累计余额计算的问题  【贺德才  2008/3/17】
【实例】ADO代码计算余额法  【若邻  2009/12/15】
关于累计余额自动计算的问题  【不详  2011/4/25】
【Access教程】Access 2007通过查询来计算累计余额  【漏蛧尐魚℡  2013/7/11】
常见问答
技术分类
相关资源
文章搜索
关于作者

will.miao

文章分类

文章存档

友情链接