Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 3528|回复: 4

求1号到当天的数据累计求和

[复制链接]
发表于 2020-5-22 09:06 | 显示全部楼层 |阅读模式
1学分
本帖最后由 zyx999 于 2020-6-3 11:59 编辑

求助各位大神,
现将access数据导出到表格中(VBA),
导出当天的数据会,现希望将当天前的数据累加,如图11,从1day累加到今天,要在日报中做导出,应该怎么写呢


SOS.zip

65.05 KB, 下载次数: 2

最佳答案

查看完整内容

我知道你求和的意思,但是我不知道你数据结构,我对access也不熟; 1、通常sql是可以直接求和的,没必要再用额外的代码求和,如果数据库的结构是下面这样的: 日期 金额 2020/05/01 100 2020/05/02 200 2020/05/03 300 ... 2020/05/21 2100 那么SQL求和就可以这么写:select sum(金额) form 数据库名称 where 日期 between "2020-05-01" and "2020-05-21" ...
发表于 2020-5-22 09:06 | 显示全部楼层
zyx999 发表于 2020-5-22 13:37
感谢帮助。
我的意思指的是,比如说今天是22号,就求1-22号的值求和,这样的话只是在累加22号的值了

我知道你求和的意思,但是我不知道你数据结构,我对access也不熟;
1、通常sql是可以直接求和的,没必要再用额外的代码求和,如果数据库的结构是下面这样的:
     日期              金额
     2020/05/01    100
     2020/05/02    200
     2020/05/03    300
     ...
     2020/05/21   2100
     那么SQL求和就可以这么写:select sum(金额) form 数据库名称 where 日期 between "2020-05-01" and "2020-05-21"
     上面的日期范围是可以用变量的,得到的记录只会有一条,你直接把这条记录的结果写在合适的地方就行了;

2、你输出到表格 T_sgmps中的记录很怪异,虽然也只有一行记录,但不是求和,而是明细。怪异的是明细为什么会横向输出,而不是纵向呢?这说明你数据结构是很特别的,应该不是我上面那种直列式的排列,因此SQL的求和代码我也想不出来了;
     根据你已经写出来的代码来看,我觉得你可以把
       cells(8+n,3)=rs.fields(i & "day")*1000
     改成:
        cells(8+n,3)=cells(8+n,3)+rs.fields(i & "day")*1000
     试一下,如果还不行,我就不知道了;



回复

使用道具 举报

发表于 2020-5-22 12:10 | 显示全部楼层
你的意思没看的很清楚,主要是不熟悉access;
看了你导出的数据,只有一行,我就猜一下吧:
1、按照你截图的写法,我想累加应该就是:
     cells(8+n,3)=cells(8+n,3)+rs.fields(i & "day")*1000
     这里的 cells(8+n,3)=cells(8+n,3)+....就是累加;
2、如果是先把数据写到工作表,再对工作表数据进行累计,按你 T_Sgmps 文件的结构,累加是:
     for i=3 to 33      '第 3 列到 第 33 列
         hj=hj+cells(1,i)
     next i
     累加的结果就在变量 hj 中;
3、累加的结构都是这样的:
     hj=hj+cells(1,i)
     cells(8+n,3)=cells(8+n,3)+rs.fields(i & "day")*1000

     你仔细观察,累加都是用自身再去与新的数据相加,这就是累加。你可以按照这个模式再对你的代码作修改;

回复

使用道具 举报

 楼主| 发表于 2020-5-22 13:37 | 显示全部楼层
hfwufanhf2006 发表于 2020-5-22 12:10
你的意思没看的很清楚,主要是不熟悉access;
看了你导出的数据,只有一行,我就猜一下吧:
1、按照你截 ...

感谢帮助。
我的意思指的是,比如说今天是22号,就求1-22号的值求和,这样的话只是在累加22号的值了


回复

使用道具 举报

 楼主| 发表于 2020-5-22 15:18 | 显示全部楼层
hfwufanhf2006 发表于 2020-5-22 14:57
我知道你求和的意思,但是我不知道你数据结构,我对access也不熟;
1、通常sql是可以直接求和的,没必要 ...

虽然还是不可以,但是非常感谢帮助,我再想想别的办法

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-4-23 22:52 , Processed in 0.283864 second(s), 11 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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