设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

12下一页
返回列表 发新帖
查看: 4855|回复: 11
打印 上一主题 下一主题

Dsum 问题

[复制链接]
跳转到指定楼层
1#
发表于 2004-9-3 20:05:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我原来在MDB中用VBA代码Dsum()得到一个一对多窗体的"多方"窗体中余额合计值,赋值给"一方"窗体的文本框,但在ADP中语法错,请教如何解决.
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2004-9-4 01:44:00 | 只看该作者
ADP 中没有Dsum(),你可以先在子窗体中增加一个文本框隐藏起来,用Sum()求子窗体余额和计放在文本框中,然后再将文本框的值赋给一方窗体
3#
 楼主| 发表于 2004-9-4 01:59:00 | 只看该作者
行不通的,我用一按键单击事件保存时,“多方”窗体开始SUM统计,但这是不同步的,赋值给“一方”事件已经运行完,SUM还没有算出结果,于是就大错了。[em06]
4#
发表于 2004-9-11 05:33:00 | 只看该作者
没有你说的这种现象呀,我这里很正常。把你的ADP项目SEND上来研究研究。
5#
发表于 2004-9-11 05:34:00 | 只看该作者
还有一点,DSUM在ADP是可以用的,只是不能直接在后台中用,也就是在查询中用,只能在前台中用。因为DSUM实际上是一个VBA函数,不是TSQL函数。懂么?
6#
 楼主| 发表于 2004-9-13 00:40:00 | 只看该作者
Forms![零售窗口]![金额总计] = CurrentProject.Connection.Execute("SELECT Sum(金额) AS 金额之Sum FROM 進销表 GROUP BY 進销单ID HAVING ((進销单ID)=" & Forms![零售窗口]![進销单ID] & ")").GetString找了很多资料,终于找到了,用这种方法可以代替 Dsum 和其他的域聚合函数,速度比 Dsum 还要快。可以用在VBA代码,控件记录源,报表控件的记录源。但是 ADP 的速度还比不上 MDB 用 ODBC 链接 SQL2000 的速度,我试过。同时打开一个窗体,差别明显。
7#
发表于 2004-9-13 04:01:00 | 只看该作者
DSUM本质就是SELECT 语句组成的,这点不知道在N年前就已经知道了。你现在才了解,是不是迟了点?其它的函数,如DMAX,DCOUNT也是一样。ADP在网络,是比MDB有优势的,它们之间的差别在于:ADP把结果集放到客户机,MDB把要计算的数据放到客户机再计算。假如一个表有10万条记录,如何要执行SUM的话,ADP就是在服务器上先计算,再把SUM的结果放到客户机,MDB是先把10万条记录通过网络放到客户机,然后再执行SUM。
8#
发表于 2004-9-13 04:23:00 | 只看该作者
哈,但你的办法真的比DSUM快多了,我在ADP中测试过,1000次求和,你的方法是4S,我的是9S。[em04]
9#
发表于 2004-9-13 04:26:00 | 只看该作者
但是 ADP 的速度还比不上 MDB 用 ODBC 链接 SQL2000 的速度如果上面你说的问题存在,会不会是ADP的链接初始化比MDB慢得多?
10#
发表于 2006-6-16 23:09:00 | 只看该作者
好多东西都不会,努力。。。。。。。。。。。。。。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-11-29 23:33 , Processed in 0.130917 second(s), 34 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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