标题:导入EXCEL到数据表然后根据ID号批量循环运算到另一个表啊
只看楼主
pxinfo
Rank: 1
等 级:新手上路
帖 子:53
专家分:5
注 册:2019-6-30
结帖率:56.25%
 问题点数:0 回复次数:7 
导入EXCEL到数据表然后根据ID号批量循环运算到另一个表啊
有两个表,表a , ID、姓名、收入金额、时间 表b,ID、姓名、余额,将Excel的数据导入表a后怎么根据ID号和姓名对表b的余额进行计算啊?代码怎么写啊?
搜索更多相关主题的帖子: 导入 EXCEL 循环 运算 姓名 
2019-06-30 22:40
wufuzhang
Rank: 9Rank: 9Rank: 9
来 自:广州
等 级:贵宾
威 望:21
帖 子:206
专家分:1346
注 册:2017-8-9
得分:0 
1、你的数据表是什么控件?
2、余额计算公式是什么?
你问题描述的太简单了!

不经历千百遍的调试,怎能体会成功时那一刹那的喜悦。
2019-06-30 22:50
pxinfo
Rank: 1
等 级:新手上路
帖 子:53
专家分:5
注 册:2019-6-30
得分:0 
这位老师,控件是Adodc、DataGrid,access数据库,公式是 余额=收入金额+余额
2019-06-30 22:59
pxinfo
Rank: 1
等 级:新手上路
帖 子:53
专家分:5
注 册:2019-6-30
得分:0 
我是希望可以循环批量的进行运算,同时将很多个ID的收入金额加到表b
2019-06-30 23:00
pxinfo
Rank: 1
等 级:新手上路
帖 子:53
专家分:5
注 册:2019-6-30
得分:0 
我是这么错误的写的
Adodc1.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Jet OLEDB:Database Password=123456;Data Source=" + App.Path + "\123.mdb;"
    Adodc1.RecordSource = "Select ID AS ID ,姓名 AS 姓名,收入金额 AS 收入金额From 月收入表 "
    Adodc1.Refresh
     Set DataGrid1.DataSource = Adodc1
Adodc2.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Jet OLEDB:Database Password=123456;Data Source=" + App.Path + "\123.mdb;"
    Adodc2.RecordSource = "Select ID AS ID ,姓名 AS 姓名,余额 AS 余额 From 余额表"
  Adodc2.Refresh
   With Adodc1.Recordset
 If Adodc1.Recordset.Fields("ID") = Adodc2.Recordset.Fields("ID") Then
    Do While Not Adodc1.Recordset.EOF
    .Fields("余额") = .Fields("余额") + Adodc1.Recordset.Fields("收入金额")
     
                  .Update
      Adodc1.Recordset.MoveNext
              Loop
     End If
     
 End With
    Set DataGrid2.DataSource = Adodc2
End Sub
2019-06-30 23:06
wufuzhang
Rank: 9Rank: 9Rank: 9
来 自:广州
等 级:贵宾
威 望:21
帖 子:206
专家分:1346
注 册:2017-8-9
得分:0 
表a中记录条数=Adodc1.Recordset.RecordCount
用For循环,判断表a的ID是否与表b的相等(ID应该是唯一的)
相等的话,就提取a中的收入金额,和b中的余额,相加赋给
b中的余额;
不相等的话,就在b中最后面新增一行,把相应的信息加入进去。

不经历千百遍的调试,怎能体会成功时那一刹那的喜悦。
2019-06-30 23:40
wufuzhang
Rank: 9Rank: 9Rank: 9
来 自:广州
等 级:贵宾
威 望:21
帖 子:206
专家分:1346
注 册:2017-8-9
得分:0 
With Adodc1.Recordset
  Do While Not Adodc1.Recordset.EOF
     Adodc2.Recordset.MoveFirst
     Do While Not Adodc2.Recordset.EOF
        If Adodc1.Recordset.Fields("ID") = Adodc2.Recordset.Fields("ID") Then
           Adodc2.Recordset.Fields("余额") = Adodc2.Recordset.Fields("余额") + Adodc1.Recordset.Fields("收入金额")
           .Update
        Else
           Adodc2.Recordset.MoveLast
           Adodc2.Recordset.AddNew
           Adodc2.Recordset.Fields("余额") = Adodc1.Recordset.Fields("收入金额")
        End If
        Adodc2.Recordset.MoveNext
     Loop
     Adodc1.Recordset.MoveNext
  Loop
End With

不经历千百遍的调试,怎能体会成功时那一刹那的喜悦。
2019-07-01 00:09
pxinfo
Rank: 1
等 级:新手上路
帖 子:53
专家分:5
注 册:2019-6-30
得分:0 
老师,提示在对应所需名称或序数的集合中,未找到项目
  Adodc2.Recordset.Fields("余额") = Adodc2.Recordset.Fields("余额") + Adodc1.Recordset.Fields("收入金额")但是将Adodc1.Recordset.Fields("收入金额")改成Adodc1.Recordset.Fields(2)后可以运行了,不过个别ID加不上谢谢老师
2019-07-02 21:18



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-495626-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.118486 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved