重新设计我的雇主数据库的某些部分时,我遇到了最初创建它的人编写的子例程,这些子例程是这样的:
DoCmd.OpenQuery "qry1"
DoCmd.OpenQuery "qry2"
DoCmd.OpenQuery "qry3"
DoCmd.OpenQuery "qry4"
DoCmd.OpenQuery "qry5"
DoCmd.OpenQuery "qry6"
DoCmd.OpenQuery "qry7"
etc...
etc.....
etc.......
我一直使用 DoCmd.RunSQL 在事件等后面运行查询,主要是因为 SQL 都在 VBA 编辑器中的一个位置在我面前。
目前一些程序有多达 50 个 OpenQuery 处理包含 250000 多条记录的表。简要浏览一下查询,似乎其中许多查询可以组合,因为它们对相同的数据集执行类似的操作,在我看来,编写它们的人对 SQL 的理解并不好。
我的问题是哪种方法在性能等方面更好。DoCmd.OpenQuery 或 DoCmd.RunSQL
最佳答案
如果这些是操作查询(UPDATE
或 DELETE
或 INSERT
,而不仅仅是 SELECT
),它真的没关系。 (在 Access 尝试收集输出记录以显示在网格中时,可能会有一些微小的开销。)
如果它们不是操作查询,那么 DoCmd.RunSQL
无论如何都不会做任何事情。
此外,请考虑使用 DoCmd.Execute
而不是 DoCmd.RunSQL
,因为 Execute 可以使用保存的查询名称而不是原始 SQL。
关于sql - DoCmd.OpenQuery 或 DoCmd.RunSQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34903766/