ms-access - 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
解决方案
您应该能够在单个查询中执行此操作:
UPDATE Tab_personal_3 t3
INNER JOIN Tab_personal_2 t2 ON t2.ID = t3.ID
SET t3.RFC = t2.RFC
当然,如果您愿意,可以通过 VBA 执行此查询。但是存储查询允许 Access 存储执行计划,并提高查询速度。
推荐阅读
- java - JAVA - 在测试 SOAP Web 服务时从 SOAP UI 获取空值
- kubernetes - 是否可以将小型 Kubernetes 配置组合成一个大型配置
- css - 应用程序 UI 中的移动设备联系人列表
- java - Tomcat进程未关闭
- python - Python - tkinter 和 glob.glob 一起工作
- openmp - openmp 中的依赖部分
- google-chrome - 如何更改谷歌浏览器扩展中的下载文件夹?
- javascript - FullCalendar 不显示日期时间
- java - 使用单例或依赖注入其中之一的优缺点
- c# - 在 NodeList XML 中获取节点