以下是引用aydl1014在2005-9-30 10:23:00的发言:
我是这样想的,打开窗体显示的记录是经过筛选得来的,这一步已经筛选过一次了。再在“窗体页脚”中加个文本框筛选数据源表所有记录并挑出类别为“01”的数量进行合计,又重复筛选一次。这样当数据源表记录多的情况下,打开这个窗体时会很慢。
目前这个窗体打开已经很慢了。所以我想打开窗体时筛选一次,然后在这一次筛选出的记录上合计它的“01”类别的数量。
既然=Sum([数量]*([记录类别]="01")*(-1))不比Dsum高,那我还是想想其他方法吧,比如增加“临时表”。
不管如何,先谢谢你!
因为Sum正是从当前记录集中获取数据。如果是你描述的这种情况,报表本身的数据是整个域一个很小的子集,那么Sum的执行效率完全可能超过DSum。你可以尝试一下采用Sum,然后在大数据量环境下进行一个对比测试,看看效果如何。
另外,窗体打开慢并不一定是因为DSum,DSum采用了优秀的算法,我和cg1版主曾经在10万条记录的数量级上进行过测试,发现DSum的执行效率比我们预计中要高得多,我和cg1的结论是在Access应用级别上(百万记录之内),DSum完全够用了,如果程序速度慢,很有可能是别的原因造成的,比方说算法上的问题。
[此贴子已经被作者于2005-9-30 11:56:20编辑过]
|