找回密码
 加入
搜索
查看: 7489|回复: 7

[网络通信] 连接ACCESS数据库账务软件,求实现余额自动计算[己解决]

  [复制链接]
发表于 2012-5-19 20:35:34 | 显示全部楼层 |阅读模式
本帖最后由 chzj589 于 2013-6-18 22:35 编辑

连接ACCESS数据库账务软件,求实现余额自动计算
Func xie();开支添加        
                   
        If GUICtrlRead($Input1)<>'' And GUICtrlRead($Input6)<>'' Then
                $read1=GUICtrlRead($Input1)
                $read2=GUICtrlRead($Input2)
                $read3=GUICtrlRead($Input3)
                $read4=GUICtrlRead($Input4)        
                $read5=GUICtrlRead($Input5)
                                $read6=GUICtrlRead($Input6)
                                ;$read7=GUICtrlRead($Input7)
                $addfld = ObjCreate("ADODB.Connection")
                $addfld.Open("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" &$mdb_data_path & ";Jet Oledb:Database Password=" & $mdb_data_pwd)
                $addfld.execute("insert into "&$tblname&" (name,ssex,qq,kahu,beizu1,dbRemark1) values('"&$read1&"','"&$read2&"','"&$read3&"','"&$read4&"','"&$read5&"','"&$read6&"')")
                $addfld.close
                du()
                                GUISetState(@SW_HIDE, $K_Form2)
        Else
                MsgBox(48,'错误','请检查输入是否完整')
        EndIf
EndFunc
感谢Kodin与auto两位老大的指导和帮助,现己解决问题。


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2012-5-19 21:59:06 | 显示全部楼层
余额是即时显示吗?
发表于 2012-5-19 23:12:27 | 显示全部楼层
回复 1# chzj589
在第二行位置处增加如下功能的处理脚本:
读取数据库存的上一条数据,如为首条则直接赋初始值,即INPUT1-INPUT5,重点是$INPUT4=0
读取后修正$INPUT1-$INPUT7值,即“期初余额+本期收入发生额-本期支出发生额=期末余额(下期期初余额)”
无MDB库,只能提供一个参考思路
发表于 2012-5-19 23:17:54 | 显示全部楼层
论坛好有例子 你搜下
发表于 2012-5-20 04:29:58 | 显示全部楼层
真不想说的,数据库表架构都不写一下!计算公式都不说一下!
哎!懒得说了!
;查询
$adSource = @ScriptDir & "\DB1.mdb";数据库
$adTable = "Table2";表名
$addfld = ObjCreate("ADODB.Connection")
$addfld.Open("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & $adSource)
$RS = ObjCreate("ADODB.Recordset")
$RS.ActiveConnection = $addfld
$RS.Open("SELECT SUM(收入金额列名),SUM(支出金额列名) FROM " & $adTable)
While Not $RS.eof And Not $RS.bof
        If @error = 1 Then ExitLoop
        ;计算公式:收入总金额-支出总金额=余额
                MsgBox(0,"余额", $RS.Fields(0).value - $RS.Fields(1).value)
        $RS.movenext
WEnd
$RS.close
$addfld.Close

评分

参与人数 1金钱 +10 收起 理由
user3000 + 10 同意!

查看全部评分

发表于 2012-5-20 08:20:15 | 显示全部楼层
看了一下,LZ列的余额是累计的,个人认为无需录余额,其它数据库有类似的计算函数,不过access可能没有,无法在查询时生成余额。
那可能要插入数据前,取出最后一次的余额,AU3计算后再插入数据库。
发表于 2012-5-20 23:14:38 | 显示全部楼层
没有安装ACCESS.代码也没有测试,自行调试代码
Local $YE = 0 ;初始余额为0
$RS.Open("SELECT TOP 1 余额  from "&$tblname&" ORDER BY DESC")
或$RS.Open("SELECT SUM(收入金额列名)-SUM(支出金额列名) AS YE FROM " & $tblname)
IF  (Not $RS.eof And Not $RS.bof) THEN
$YE =  $RS.Fields(0).value
ELSE
$YE = 0
ENDIF
 楼主| 发表于 2012-5-21 00:03:44 | 显示全部楼层
回复 7# auto

谢谢你的帮助!
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-11-22 04:46 , Processed in 0.089823 second(s), 28 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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