Office中国论坛/Access中国论坛

标题: 子窗体求和 [打印本页]

作者: 张杨    时间: 2010-9-7 10:58
标题: 子窗体求和
我在数据库窗体1中建立一个子窗体2,在窗体1下方分别设了文本框[产品编号]和[产品名称]对子窗体查询,输入信息后可以进行查询,请问怎样对子窗体2查询后的数据例如单价一列进行求和而不是所有子窗体2单价的数据。我还在下方建了一个文本框1想让求和数据显示在上面。请教各位高手该怎样做?
作者: lovehere    时间: 2010-9-7 11:00
这样的问题最好传实例上来吧,我看的晕晕乎乎的,呵呵
作者: hjb016    时间: 2010-9-7 12:44
您可以用DSum函数,对单价进行求和的
比如
求和.value=nz(DSUM("单价","表名/查询","条件"))
作者: 张杨    时间: 2010-9-8 14:12
谢谢3楼解答,不是我想要的。简单来说就是在窗体中怎样对筛选过的窗体一列进行自动求和
作者: hjb016    时间: 2010-9-8 14:45
自动求和  也不知道要如何自动?
我们一般都是通过这种方式,你设置后面的条件,它也就自动筛选你查询的数据求和.功能是可以实现,只是可能不是你想要要的.

帮你再顶一下吧!
作者: 张杨    时间: 2010-9-8 17:12
我只是想这么做,不知道行不行。我试了多种方法都达不到理想效果。我再说一下想法,就是在ACCESS窗体中建了一个子窗体,在菜单栏不有一个[按内容筛选窗体]吗?我想对任何筛选过的当前窗体(列1)的数据进行求和。
作者: todaynew    时间: 2010-9-8 17:30
试试这样处理:
求和.value=nz(DSUM("单价","表名/查询",me.子窗体.form.Filter))
作者: hjb016    时间: 2010-9-8 17:40
试试这样处理:
求和.value=nz(DSUM("单价","表名/查询",me.子窗体.form.Filter))
todaynew 发表于 2010-9-8 17:30

这个方法比较好,代码精简.支持!!!



作者: todaynew    时间: 2010-9-8 21:09
这个方法比较好,代码精简.支持!!!
hjb016 发表于 2010-9-8 17:40

我试了一下,用子窗体的“成为当前”事件写以上代码,点击【按内容筛选窗体】可以立即更新数据,可是点击【取消筛选】不能还原。不知道这类问题如何解决?



作者: hjb016    时间: 2010-9-9 07:26
还没去试,先顶一下.试了再回复您!或者有高手也知道的,先解决.我也学习学习!
作者: kent_73    时间: 2010-9-9 07:38
先在子窗体上对某字段进行求和,再在主窗体上引用子窗体的求和
作者: 张杨    时间: 2010-9-9 08:21
9#问题,1正确的方法应该是关闭之后再从起窗体,2有时吧按升序降序也行,我还没研究透,不过你可以在下面设置一查询按钮,不用管是否能恢复都能查询你想要的东西,因为数据源不变。
作者: hjb016    时间: 2010-9-9 08:42
以前我们一般都只是在查询的时候,点击查询,加上求和的代码.就计算想求和的字段.赋值于主窗体的求和文本框.
在这里也学习一下其他的方法,大家多多交流.
作者: 张杨    时间: 2010-9-10 08:44
value=nz(DSUM("单价","表名/查询",me.子窗体.form.Filter)),这个方法好像不行,下面是例子,我现在就想对按照信息对查询后[数量]一列数据求和自动显示在汇总文本框中,请问该怎么办?谢
作者: hjb016    时间: 2010-9-10 09:48
Dim strSQL As String
   
    If IsNull(Me.文本18) And IsNull(Me.文本21) Then
        MsgBox "请输入要查询的产品编号或产品名称!"
    Else
        strSQL = "select * from CK_入库明细表 where ([产品编号] like '*" & Me.文本21 & "*') and ([产品名称] like '*" & Me.文本18 & "*');"
        Me.ZY.Form.RecordSource = strSQL
        Text7.Value = Nz(DSum("数量", "CK_入库明细表", Me.ZY.Form.Filter))
    End If
作者: hjb016    时间: 2010-9-10 09:48
这样,你点击查找的时候,就自动求和了.
作者: 张杨    时间: 2010-9-10 13:09
谢谢,哇这样的,可以。

作者: hjb016    时间: 2010-9-10 13:12
问题解决了,结贴!
作者: 张杨    时间: 2010-9-10 15:54
谢谢HIBO16的回复,刚我没仔细看,好像还不行。你那汇总的是整个数据源[数量]一列总和,我要的是查询到哪就汇总到哪?所以还得请教哇?
作者: hjb016    时间: 2010-9-10 16:21
改成这样就可以了.
Text7.Value = Nz(DSum("数量", "CK_入库明细表", "([产品编号] like '*" & Me.文本21 & "*') and ([产品名称] like '*" & Me.文本18 & "*')"))
作者: 张杨    时间: 2010-9-10 16:56
哇,这回真搞定了,太感谢了你(HJB016)帮了我大忙。
作者: hjb016    时间: 2010-9-10 17:03
呵呵!
作者: ycxchen    时间: 2010-9-11 09:53
HJB016靓女高手一个,很实用的例子,学习了!




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