首页 > 解决方案 > MS Access VBA 改进脚本

问题描述

我在 MS Access 中有这段代码(我是在 VBA 中完成的,因为我没有找到在 Access 中创建过程的方法)。它的作用很简单,它从一个表中获取一个字段,并替换另一个 ID 相同的表中的值。

我怎样才能更快地得到这个?目前完成它大约需要 8 分钟(处理器总是低于 20%,所以这与处理器功率无关)。

Set rst = CurrentDb.OpenRecordset("Tab_personal_2")

 rst.MoveFirst

 DoCmd.SetWarnings False

 Do Until rst.EOF
    DoCmd.RunSQL ("UPDATE Tab_personal_3 SET RFC = '" & rst("RFC") & "' WHERE Id = " & rst("Id"))
    rst.MoveNext

 Loop

标签: ms-accessstored-proceduresvba

解决方案


您应该能够在单个查询中执行此操作:

UPDATE Tab_personal_3 t3
INNER JOIN Tab_personal_2 t2 ON t2.ID = t3.ID
SET t3.RFC = t2.RFC

当然,如果您愿意,可以通过 VBA 执行此查询。但是存储查询允许 Access 存储执行计划,并提高查询速度。


推荐阅读