设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

12
返回列表 发新帖
楼主: eio
打印 上一主题 下一主题

[查询] #如何查询余额?#

[复制链接]
11#
发表于 2003-5-8 17:04:00 | 只看该作者
以下是引用whowho在2003-5-8 8:57:25的发言:
最简单的方法:
数据表包括以下字段:日期、进、支、余额,每次增加纪录时,输入日期、进或支后,进行更新查询来更新余额,即余额=余额+进(或-支)。每次打开时,数据表已经有余额了,不需要再经过计算,快!注意:纪录输入后不能回头更改!旧纪录如果入错了,需要另入一条更正纪录来更正,这样也符合财务要求,是吗?


你所说的是计算式余额,而在此讨论的是查询式余额.它们有各自的优点,不能说计算式就一定优于查询式,也不是说查询式就一定可以代替计算式.

其实计算式余额也可以做到记录错误回头更改的,比如我的计算式库存就可以修改错误数据.
12#
发表于 2003-5-8 18:35:00 | 只看该作者
Roadbeg 的这个方法在浏览一万几千条记录时效果就很明显了。
只是60万条记录求余额的情况我还想象不出会在那里发生,(如果是我的存折记录就发达了:),我应用中最多就几百条。

13#
发表于 2003-10-8 23:31:00 | 只看该作者

[求助]

[quote]以下是引用whowho在2003-5-8 8:57:25的发言:
最简单的方法:
数据表包括以下字段:日期、进、支、余额,每次增加纪录时,输入日期、进或支后,进行更新查询来更新余额,即余额=余额+进(或-支)。每次打开时,数据表已经有余额了,不需要再经过计算,快!注意:纪录输入后不能回头更改!旧纪录如果入错了,需要另入一条更正纪录来更正,这样也符合财务要求,是吗?


不怕你见笑,我是天下第一菜鸟,能否告诉我如何做输入记录后马上更新余额的更新查询?
[em07]




[此贴子已经被作者于2003-10-8 15:52:57编辑过]

14#
发表于 2003-10-9 18:02:00 | 只看该作者
其實用個函數也可實現的.如下:
(以下函數是從本站上學習的)
Public Function F(S As String, D As DATE)
Dim A As Double
Dim B As Double
On Error GoTo ERR_F
A = Nz(DSum("[進]", "DATA2", "[日期]<=#" & D & "#"))
B = Nz(DSum("([支]", "DATA2", "[日期]<=#" & D & "#"))

F = A - B

EXIT_F:
Exit Function

ERR_F:
F = 0
End Function
15#
发表于 2003-10-9 19:50:00 | 只看该作者
如果日期字段中记录不唯一,可能计算会出错。
16#
发表于 2003-10-10 00:11:00 | 只看该作者
可参考一下
Public Sub 分类帐补余额_贷方余额()
    '本宏为贷方余额者,若生成贷方余额,则以负号表示.
Dim varBalance As Double, strLedger As String
Dim rs1 As Recordset
Set rs1 = New ADODB.Recordset
    '指定rs1的联接数据库为目前打开的数据库
rs1.ActiveConnection = CurrentProject.Connection
    On Error GoTo 错误式
    strLedger = InputBox("请输入你要补余额的分类帐表的名称", "基础理论")
        '使用open方法打开刚生成的表 [? ?分类帐]
    rs1.Open strLedger, , adOpenKeyset, adLockOptimistic, adCmdTable
        '先设余额等于零
    varBalance = 0
        '使用Do Loop循环在表记录集合中逐笔往下计算本日余额
    Do Until rs1.EOF
        'rs1.Cancelupdate
        rs1("余额") = rs1!贷方金额 - rs1!借方金额 + varBalance
        rs1.Update
        varBalance = rs1!余额
        rs1.MoveNext
    Loop
    MsgBox "余额字段已替你补好了,你不必自己计算"
    DoCmd.SelectObject acTable, strLedger, True
    DoCmd.OpenTable strLedger, acViewNormal, acEdit
    DoCmd.GoToControl "余额"


[此贴子已经被作者于2003-10-9 16:11:12编辑过]

17#
发表于 2006-3-4 21:52:00 | 只看该作者
thks!
18#
发表于 2006-3-5 07:31:00 | 只看该作者
access在财务中的应用,这本书里就有这样的例子,可以去找一下。
19#
发表于 2006-5-22 08:24:00 | 只看该作者
sdghjg
20#
发表于 2009-10-20 15:56:28 | 只看该作者
Roadbeg 的方法在浏览几万条记录时效果很明显
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-5-31 10:13 , Processed in 0.084800 second(s), 33 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表