设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

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

[ADO/DAO] 请教如何通过ADO或DAO的实现快速统计?

[复制链接]
跳转到指定楼层
1#
发表于 2007-7-27 06:16:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
<>表  “学生管理” 有如下字段</P>
<><br>事件ID     学生姓名        时间          类别       内容            摘要<br>             <br>1             甲         2007-7-1        奖励      成绩优秀       月度小考分数全班第一</P>
<>2             乙         2007-7-3        处罚      迟到           早上10点才回到学校</P>
<P>3             乙         2007-7-3        处罚      早退           下午2点就离开课室        </P>
<P>4             丙         2007-7-7        奖励      表现突出       主动打扫卫生</P>
<P>5             甲         2007-7-9        奖励      成绩优秀       级运动会长跑第一</P>
<P>6             丙         2007-7-9        处罚      违规           上课打瞌睡</P>
<P>7             乙         2007-7-15       处罚      违规           与隔壁班大熊打架         </P>
<P>……</P>
<P>在每月和期末的时候就需要进行统计汇总,用Dcount 等域函数,是可以做到在子窗体中使用数据表显示如下的的统计结果的:</P>
<P>成绩优秀次数=dcount("[ID]","学生管理","[内容]="成绩优秀" and [姓名]='"me.姓名"')</P>
<P>奖励小计=dcount("[ID]","学生管理","[类别]="奖励" and [姓名]='"me.姓名"')</P>
<P><br><br></P>
<P><br>但是在数据量多或使用次数多时非常慢,请教如何通过ADO或DAO的实现?</P><br><br><br><br>
[此贴子已经被作者于2007-7-26 23:05:49编辑过]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
 楼主| 发表于 2007-7-27 07:15:00 | 只看该作者
<>以上是我所举的简单例子,但实际要进行的统计远远比这例子复杂,在数据表子窗体里面要至少进行15X20约300次dcount操作,在记录数目过1000条的时候非常慢,差不多要1分钟才出结果。</P>
<>所以只能抛弃使用域函数,无奈通过使用很多个嵌套查询来实现的,非常麻烦。猜想如果能转用ADO或DAO应该会简便一些,请各位指教一下。</P>
3#
发表于 2007-7-27 17:46:00 | 只看该作者
<>大师,这个问题我也遇到过,但是只要使用ADO或DAO,最后就要用到带D的函数,结果就是速度慢,电脑象处于“死机状态”。所以只能在表的结构设计和查询上想办法,嵌套再多速度也比这个快。</P>
<>还有,您有空请指导用第三方软件打开有密码共享文件夹的办法,谢!</P>
4#
发表于 2007-7-27 18:14:00 | 只看该作者
try<br>transform nz(count(*),0)<br>select 学生姓名,sum(iif(类别='奖励',1,0)) as 奖励小计,<br>sum(iif(类别='处罚 ',1,0)) as 处罚小计<br> from table group by 学生姓名<br>pivot 内容 &amp; "次数"<br>
5#
发表于 2007-7-27 18:24:00 | 只看该作者
<DIV class=quote><B>以下是引用<I>rjacky</I>在2007-7-26 23:15:00的发言:</B><BR>
<>以上是我所举的简单例子,但实际要进行的统计远远比这例子复杂,在数据表子窗体里面要至少进行15X20约300次dcount操作,在记录数目过1000条的时候非常慢,差不多要1分钟才出结果。</P>
<>所以只能抛弃使用域函数,无奈通过使用很多个嵌套查询来实现的,非常麻烦。猜想如果能转用ADO或DAO应该会简便一些,请各位指教一下。</P></DIV>
<p>不要用域函数,用查询的方法。<BR>

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
6#
 楼主| 发表于 2007-7-28 02:27:00 | 只看该作者
<>谢谢楼上两位朋友热心的指导!我现在也是用查询的方法来实现的,不过比你们的麻烦不少,现在又学到新方法了。</P>

<>但还是想了解一下如何用ADO或DAO实现,想和查询对比一下有何差别,请大家指教。</P>
7#
 楼主| 发表于 2007-7-28 02:43:00 | 只看该作者
<>to 3楼的朋友:</P>
<>我的保护mdb方法操作繁琐,设置要求比较高,你先确认一下,能不能做到:</P>
<>1、客户端的操作系统所在分区必须为ntfs格式;</P>
<P>2、用户在客户端上没有管理员权限,只有普通用户权限;</P>
<P>3、用户能容忍禁打开这个收保护的数据库时,office助手和帮助功能被禁用,F1等快捷键被禁用,输入法帮助被禁用</P>
<P>4、数据库的所有窗口必须设置为弹出模式,也就是说不能同时打开或操作多个窗口(如果你用的access2000,那么所有的报表会在窗体设置为模式时将会显示不正常),自定义菜单不能使用</P>
<P>5、如果你的数据库有打印功能,那么用户不能随意选择打印机,基本只能使用预先设置的打印机</P>
<P><br><br>以上只要有任何一点不能满足,稍懂电脑的用户就能突破限制,所有的努力就会白费</P><br>
[此贴子已经被作者于2007-7-27 19:11:16编辑过]

8#
发表于 2007-7-28 02:44:00 | 只看该作者
能用查询就不用ado,维护方便。
9#
 楼主| 发表于 2007-7-28 02:49:00 | 只看该作者
<><FONT face=Verdana color=#61b713><STRONG>tz-chf</STRONG><FONT color=#000000>兄,你懂的话就说一下吧,之前也有不少朋友问过你呢</FONT></FONT></P>

<>查询虽然维护方便,但是如果做在VBA里面安全性更高一点</P>
[此贴子已经被作者于2007-7-27 18:50:45编辑过]

10#
发表于 2007-7-28 05:52:00 | 只看该作者
<DIV class=quote><B>以下是引用<I>rjacky</I>在2007-7-27 18:43:00的发言:</B><BR>
<>to 3楼的朋友:</P>
<>我的保护mdb方法操作繁琐,设置要求比较高,你先确认一下,能不能做到:</P>
<>1、客户端的操作系统所在分区必须为ntfs格式;</P>
<P>2、用户在客户端上没有管理员权限,只有普通用户权限;</P>
<P>3、用户能容忍禁打开这个收保护的数据库时,office助手和帮助功能被禁用,F1等快捷键被禁用,输入法帮助被禁用</P>
<P>4、数据库的所有窗口必须设置为弹出模式,也就是说不能同时打开或操作多个窗口(如果你用的access2000,那么所有的报表会在窗体设置为模式时将会显示不正常),自定义菜单不能使用</P>
<P>5、如果你的数据库有打印功能,那么用户不能随意选择打印机,基本只能使用预先设置的打印机</P>
<P><BR><BR>以上只要有任何一点不能满足,稍懂电脑的用户就能突破限制,所有的努力就会白费</P><BR><BR></DIV>
<P>
<P>谢谢你这么热心的回复!</P>
<P>以上5条都有困难,你说稍懂电脑的人就可以突破,但我没能看出有什么用,看来我还是不懂电脑。</P>
<P>我能理解作为服务器端使用NTFS的作用,但为什么还要限制客户端呢?</P>
<P>你的思路我简单理解为,在NTFE磁盘上安装MDE文件的共享文件夹,然后设置权限,给某个用户名控制,然后在其他电脑使用这个用户名,输入正确密码才可以访问这个文件夹。为了不暴露密码,使用第三方软件隐藏路径和密码,直接打开数据库。</P>
<P>你追求的是完美的方案,而我要求的是能对付像我这样的菜鸟就行了。</P>
<P>我希望做到的是:</P>
<P>1、我的MDE放在WINDOWS2003操作系统的NTFS分区内,设置服务器的访问权限。</P>
<P>2、不限制客户端的操作系统,发布的时候可以要求客户端运行第三方软件连接数据库。如果是一个MDE做的就更好了,隐藏了访问文件夹的用户名、密码和路径。</P>
<P>3、没有密码就不能打开共享文件夹,当然也不能删除。</P>
<P>只要这样就可以了,能行吗?我不会的是第二条,请继续指点,谢谢!</P>
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-2 10:34 , Processed in 0.097876 second(s), 34 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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