Access开发培训
网站公告
·Access专家课堂QQ群号:151711184    ·Access快速开发平台下载地址及教程    ·欢迎加入Access专家课堂微信群!    ·如何快速搜索本站文章|示例|资料    
您的位置: 首页 > 技术文章 > Access数据库-查询/SQL语句

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

时 间:2014-07-18 12:20:35
作 者:缪炜   ID:24010  城市:江阴
摘 要:在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群 (群号:54525238)       Access源码网店

常见问答:

技术分类:

相关资源:

专栏作家

关于我们 | 服务条款 | 在线投稿 | 友情链接 | 网站统计 | 网站帮助