Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ms access 在类模块中将持久性设置为DAO记录集_Ms Access_Vba_Class - Fatal编程技术网

Ms access 在类模块中将持久性设置为DAO记录集

Ms access 在类模块中将持久性设置为DAO记录集,ms-access,vba,class,Ms Access,Vba,Class,作为一组递归任务的一部分,我正在筛选DAO记录集的子结果。我正在尝试加快例程的速度,我可以看到每次实例化类对象时记录集都会被重新打开。这一步发生了数百次。难道没有办法重复使用它吗?这里的关键词是持久性,不是吗 我尝试在实例化事件中设置记录集,或者在函数中设置。我尝试使用static(而不是dim或private)来声明记录集。我还研究了类对象的声明和设置方式 我知道一个常见的解决方案是为每个调用更改特定的SQL源,但是生成记录集的查询本身速度很慢,所以我认为这没有什么帮助。是的,基表的索引是最佳

作为一组递归任务的一部分,我正在筛选DAO记录集的子结果。我正在尝试加快例程的速度,我可以看到每次实例化类对象时记录集都会被重新打开。这一步发生了数百次。难道没有办法重复使用它吗?这里的关键词是持久性,不是吗

我尝试在实例化事件中设置记录集,或者在函数中设置。我尝试使用static(而不是dim或private)来声明记录集。我还研究了类对象的声明和设置方式

我知道一个常见的解决方案是为每个调用更改特定的SQL源,但是生成记录集的查询本身速度很慢,所以我认为这没有什么帮助。是的,基表的索引是最佳的


我很乐意发布代码,但这足以让您提供任何提示吗?

记录集本身是否只需要创建一次,然后进行多次过滤


如果是这样,能否将记录集作为参数传递给对其进行过滤的classes方法/函数?这样就可以创建一次记录集。

Aha!这可能就是我需要的。可以说,我会通过的。一周后:让我投票表决这个答案,并接受它。这很好,因为我的方法中的错误(这是一个愚蠢的错误)代价高昂,纠正它是一个很大的解脱。请注意,索引Yes/No aka booklen字段也有助于提高性能。例如,为一个包含2000条记录的作业表上的“是/否”字段编制索引,在一个同样包含800K条记录的表的查询中,会造成性能上的巨大差异。我将索引放在有排序/筛选的位置。。。。所以,如果一个Y/N字段将被排序或过滤,那么它将得到一个索引。你的意思是,即使没有进入查询处理,它也有助于索引Y/N吗?或者,如果Y/N是查询处理的一部分,那么它和其他字段一样需要索引吗?