Office中国论坛/Access中国论坛

标题: 请教ADOTransForm事例子窗体的金额合计后引用到主窗体的合计金额中的问题 [打印本页]

作者: tmtming    时间: 2011-4-24 17:54
标题: 请教ADOTransForm事例子窗体的金额合计后引用到主窗体的合计金额中的问题
用t小宝版主的ADOTransForm事例更改成自己用的窗体,现想将子窗体的金额合计后引用到主窗体的合计金额中,不懂怎做,请各位指教。
作者: fengtao666    时间: 2011-4-24 22:21
本帖最后由 fengtao666 于 2011-4-24 22:22 编辑

帮你改了一下,希望你能用。
作者: tmtming    时间: 2011-4-25 00:26
谢谢fengtao666的帮忙,但可能我说得不清楚,主窗体的合计金额要跟随子窗体上的金额改变而改变,比如子窗体上原有两条记录,金额是100和200,主窗体的合计金额为300,但删除了子窗体上金额是100的那条记录,主窗体的合计金额应该为200,但现在主窗体的合计金额不能跟随更新。又比如原来输入的数量或者单价更改后,主窗体的合计金额也要跟随更新。我是要这个效果。
作者: gxy1000    时间: 2011-4-25 13:11
合计金额=((金额子窗体.Form.text00)+(金额子窗体.Form.text01)))
作者: gxy1000    时间: 2011-4-25 13:15
子窗体上添加文本框:=sum([金额])

合计金额=((子窗体名称.Form.text00))
作者: tmtming    时间: 2011-4-25 16:08
gxy1000 发表于 2011-4-25 13:15
子窗体上添加文本框:=sum([金额])

合计金额=((子窗体名称.Form.text00))

这样也不行,还有什么办法吗?
作者: todaynew    时间: 2011-4-25 16:13
tmtming 发表于 2011-4-25 16:08
这样也不行,还有什么办法吗?

还可以用Dsum函数直接进行统计。
作者: tmtming    时间: 2011-4-25 17:28
todaynew 发表于 2011-4-25 16:13
还可以用Dsum函数直接进行统计。

Forms![d送货单]![合计金额] = Dsum([Me.金额])是这样吗?提示参数不可选。
版主可不可以说祥细一点。
作者: todaynew    时间: 2011-4-25 17:41
本帖最后由 todaynew 于 2011-4-25 17:42 编辑
tmtming 发表于 2011-4-25 17:28
Forms![d送货单]![合计金额] = Dsum([Me.金额])是这样吗?提示参数不可选。
版主可不可以说祥细一点。


假设:
1、你的主窗体名曰【主窗体】,子窗体名曰【子窗体】;
2、主窗体和子窗体上各有一个控件均名曰【送货单号】,主子窗体间以送货单号链接;
3、你的子窗体数据源假设是表名【送货单表】。

你希望在主窗体的一个名曰【金额合计】的控件中得到子窗体金额的和,并随主窗体的滚动该合计数对应变化,则你可以在主窗体的金额合计的控件来源中写:

=Dsum("金额","送货单表","送货单号='" & froms!主窗体!送货单号 & "'")


作者: tmtming    时间: 2011-4-25 17:50
todaynew 发表于 2011-4-25 17:41
假设:
1、你的主窗体名曰【主窗体】,子窗体名曰【子窗体】;
2、主窗体和子窗体上各有一个控件均名 ...

现问题是在输入或编辑时,子窗体的数据不是马上保存到表的,要按保存按钮才保存。所以没保存之前,表是没有此单号的数据的。
作者: todaynew    时间: 2011-4-25 18:18
tmtming 发表于 2011-4-25 17:50
现问题是在输入或编辑时,子窗体的数据不是马上保存到表的,要按保存按钮才保存。所以没保存之前,表是没 ...

不可能吧?那你要解决的已经不是计算合计的问题了,呵呵。
作者: tmtming    时间: 2011-4-25 18:33
todaynew 发表于 2011-4-25 18:18
不可能吧?那你要解决的已经不是计算合计的问题了,呵呵。

那怎样才可以做到,请指教。
作者: tmtming    时间: 2011-4-26 15:58
有什么办法吗?
作者: gxy1000    时间: 2011-4-28 12:47
晕!




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