Access交流中心

北京 | 上海 | 天津 | 重庆 | 广州 | 深圳 | 珠海 | 汕头 | 佛山 | 中山 | 东莞 | 南京 | 苏州 | 无锡 | 常州 | 南通 | 扬州 | 徐州 | 杭州 | 温州 | 宁波 | 台州 | 福州 | 厦门 | 泉州 | 龙岩 | 合肥 | 芜湖 | 成都 | 遂宁 | 长沙 | 株洲 | 湘潭 | 武汉 | 南昌 | 济南 | 青岛 | 烟台 | 潍坊 | 淄博 | 济宁 | 太原 | 郑州 | 石家庄 | 保定 | 唐山 | 西安 | 大连 | 沈阳 | 长春 | 昆明 | 兰州 | 哈尔滨 | 佳木斯 | 南宁 | 桂林 | 海口 | 贵阳 | 西宁 | 乌鲁木齐 | 包头 |

[5分]当前记录的A字段取上一记录的B字段值同时当前记录的B字段值取当前记录的A值加C值,求解!

zonyoung  发表于:2015-01-14 17:52:13  
复制

在ACCESS表中,有如下需求,请高手帮忙,十分感谢。

1、  每个“工号”从1月开始一直到最后一个月分别进行逐月“上月调休积余汇总”及“本月调休积余汇总”的计算,其中,当“月份”为1时,“上月调休积余汇总”及“本月调休积余汇总”等于“本月调休积余”。如当1月时,I2=H2  J2=H2

2、  当“月份”大于等于2时,当月的“上月调休积余汇总”等于上月的“本月调休积余汇总”;当月的“本月调休积余汇总”等于当月的“上月调休积余汇总”+“本月调休积余”,这样逐月计算,一直算到最后一个月。

 

即:如存在10个工号,每个工号有12个月,就是循环计算120次。

点击下载此附件


 

Top
煮江品茶 发表于:2015-01-15 11:20:52
select *,dsum("本月调休积余","阁下的表名称","工号='" & [工号] & "' and 年份=" & [年份] & " and 月份<=" & [月份]) as  上月调休积余汇总,本月调休积余+上月调休积余汇总 as 本月调休积余汇总
from 阁下的表名称


zonyoung 发表于:2015-01-16 12:01:06

煮江品茶老师,我将您帮我写的程序放到COMMAND命令中后,报如下提示,请帮忙指点一下,感谢。




煮江品茶 发表于:2015-01-16 14:49:56

ssql="SELECT a.ID, a.姓名, a.工号, a.年份, a.月份, a.应考勤天数, a.公休天数, a.实出天数,"
ssql=ssql & " a.公休天数+a.实出天数-a.应考勤天数 AS 本月调休积余,"
ssql=ssql & "(select sum(b.公休天数+b.实出天数-b.应考勤天数) from  考勤汇总明细表当年 AS b where b.工号=a.工号 and b.年份=a.年份 and b.月份<a.月份) AS 上月月调休积余汇总,"
ssql=ssql &  "(select sum(b.公休天数+b.实出天数-b.应考勤天数) from  考勤汇总明细表当年 AS b where b.工号=a.工号 and b.年份=a.年份 and b.月份<=a.月份) AS 本月调休积余汇总"
ssql=ssql & " FROM 考勤汇总明细表当年 AS a;"





煮江品茶 发表于:2015-01-16 15:45:02
上月累计数似乎无必要,并自动计算每月日历天数,则可写为:

ssql="SELECT a.ID, a.姓名, a.工号, a.年份, a.月份,"
ssql=ssql & "Day(DateAdd("d",-1,DateAdd("m",1,DateSerial(a.年份,a.月份,1)))) AS 日历天数,"
ssql=ssql & " a.公休天数, a.实出天数,"
ssql=ssql & " a.公休天数+a.实出天数-[日历天数] AS 本月调休积余,"
ssql=ssql &  "(select sum(b.公休天数+b.实出天数-Day(DateAdd("d",-1,DateAdd("m",1,DateSerial(b.年份,b.月份,1))))) from  考勤汇总明细表当年 AS b where b.工号=a.工号 and b.年份=a.年份 and b.月份<=a.月份) AS 累计调休积余"
ssql=ssql & " FROM 考勤汇总明细表当年 AS a;"


点击下载此附件




总记录:4篇  页次:1/1 9 1 :