注册 登录
编程论坛 VB6论坛

导入EXCEL到数据表然后根据ID号批量循环运算到另一个表啊

pxinfo 发布于 2019-06-30 22:40, 2862 次点击
有两个表,表a , ID、姓名、收入金额、时间 表b,ID、姓名、余额,将Excel的数据导入表a后怎么根据ID号和姓名对表b的余额进行计算啊?代码怎么写啊?
7 回复
#2
wufuzhang2019-06-30 22:50
1、你的数据表是什么控件?
2、余额计算公式是什么?
你问题描述的太简单了!
#3
pxinfo2019-06-30 22:59
这位老师,控件是Adodc、DataGrid,access数据库,公式是 余额=收入金额+余额
#4
pxinfo2019-06-30 23:00
我是希望可以循环批量的进行运算,同时将很多个ID的收入金额加到表b
#5
pxinfo2019-06-30 23:06
我是这么错误的写的
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
#6
wufuzhang2019-06-30 23:40
表a中记录条数=Adodc1.Recordset.RecordCount
用For循环,判断表a的ID是否与表b的相等(ID应该是唯一的)
相等的话,就提取a中的收入金额,和b中的余额,相加赋给
b中的余额;
不相等的话,就在b中最后面新增一行,把相应的信息加入进去。
#7
wufuzhang2019-07-01 00:09
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
#8
pxinfo2019-07-02 21:18
老师,提示在对应所需名称或序数的集合中,未找到项目
  Adodc2.Recordset.Fields("余额") = Adodc2.Recordset.Fields("余额") + Adodc1.Recordset.Fields("收入金额")但是将Adodc1.Recordset.Fields("收入金额")改成Adodc1.Recordset.Fields(2)后可以运行了,不过个别ID加不上谢谢老师
1