Office中国论坛/Access中国论坛

标题: 区域求和 [打印本页]

作者: 张杨    时间: 2011-1-10 15:54
标题: 区域求和
请教各位高手,我在ACCESS 中主窗体中建了一个子窗体,分别做了一个[始日期]文本框和[止日期]文本框,设置[查询]按钮可以对其查询。我又做了一个文本框1(想对[数量]一列求和),请问怎样对日期筛选后,文本框1就自动显示当前[数量]一列的总和。
作者: todaynew    时间: 2011-1-10 17:34
有若干种办法:
1、在子窗体页脚加一个控件,控件值来源为=sum([数量]),然后在主窗体控件中引用这个值。
2、用Dsum函数求数量。
作者: 张杨    时间: 2011-1-11 14:08
dsum怎样写代码?是对筛选后的数量求和,能否具体点。谢谢
作者: todaynew    时间: 2011-1-11 14:17
本帖最后由 todaynew 于 2011-1-11 14:22 编辑

比如要求某段日前内的收料金额,可以这样:
me.text1.value=dsum("数量*单价","收料表","日期>=#2010/1/1# and 日期<=#2010/1/15#")

如用控件变量可以这样:
me.text1.value=dsum("数量*单价","收料表","日期>=#" & me.起始日期.value & "# and 日期<=#" & me.截止日期.value  & "#")

作者: zyp    时间: 2011-1-11 14:18
dsum("[数量]","表名","[日期] BETWEEN '起始日期' AND '终止日期'")
作者: 张杨    时间: 2011-1-12 10:11
版主方法可行,ZYP方法暂不可行,谢谢你们。
作者: 张杨    时间: 2011-1-12 12:01
me.text1.value=dsum("总价","出库表","日期>=#" & me.起始日期.value & "# and 日期<=#" & me.截止日期.value  & "#"),我想TEXT1的值既对日期区域进行筛选还要对项目一列进行筛选之后在求和该怎样写代码?请教各位师父们?

作者: 张杨    时间: 2011-1-12 17:07
Me.Text3.Value = DSum("总价", "YB2", "日期>=#" & Me.文本31.Value & "# and 日期<=#" & Me.文本32.Value & "# and [项目] like '*" & Me.文本003 & "*' ")  好像不行,请高手们再帮帮忙?

作者: roych    时间: 2011-1-12 18:13
“项目”里为什么加上书名号?是窗体控件么?
作者: 张杨    时间: 2011-1-13 08:07
不是控件是文本框
作者: 张杨    时间: 2011-1-13 08:17
实在高去掉就可以了,谢谢roych提示。
作者: roych    时间: 2011-1-13 09:05
HoHo,以前也总是犯类似的错误,后来才知道,表地段里是不需要加书名号的。
作者: todaynew    时间: 2011-1-13 10:32
本帖最后由 todaynew 于 2011-1-13 10:33 编辑

回复 张杨 的帖子

ZYP同志的写法更简洁规范,只是你没有理解。呵呵
作者: 张杨    时间: 2011-1-13 11:41
Me.Text3.Value=dsum("[总价]","YB2","[日期] BETWEEN '起始日期' AND '终止日期'"),这样写不行。YB2是查询。该怎样写才行?
作者: todaynew    时间: 2011-1-17 20:25
本帖最后由 todaynew 于 2011-1-17 20:27 编辑
张杨 发表于 2011-1-13 11:41
Me.Text3.Value=dsum("[总价]","YB2","[日期] BETWEEN '起始日期' AND '终止日期'"),这样写不行。YB2是查询 ...

变量都要放在引号之外,否则就会当成字符串了。
Me.Text3.Value=dsum("[总价]","YB2","[日期] BETWEEN #"  &  me.起始日期.value & "# AND #" &  me.终止日期.value & "#")
作者: miracle-y    时间: 2011-1-17 23:49
学习了
作者: 张杨    时间: 2011-2-24 15:25
谢谢版主解答




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3