gpt4 book ai didi

ms-access - MS Access 在运行 VBA 时卡住,然后在完成后解冻

转载 作者:行者123 更新时间:2023-12-04 01:50:39 25 4
gpt4 key购买 nike

我有一个循环遍历表的 VBA 脚本,它工作正常,只是在它运行代码时 Access 卡住。一旦代码运行,它就会解冻,一切都会如它所显示的那样(vba 执行了所需的操作,它打开了编码的最终查询等)

到目前为止一切正常,因为我已经实现(或想要实现)VBA 脚本的“进度状态”功能。这是因为由于新要求,正在分析的表从大约 4,000 条记录跃升至大约 50,000 条记录。

我通过使用在每条记录后刷新的简单模态对话框表单来完成此操作。

模态对话框最初是打开的:

DoCmd.OpenForm ("ProgressReport")
Forms("ProgressReport").Controls("ProgressLabel").Caption = "0 of " & RecordCount & " records analyzed."

然后在每次迭代之后:

RecordsAnalyzed = RecordsAnalyzed + 1
Forms("ProgressReport").Controls("ProgressLabel").Caption = RecordsAnalyzed & " of " & RecordCount & " records analyzed."
Forms("ProgressReport").Repaint

是否可以将“内存”分配给模态形式,这样即使 Access 卡住,它也能保持事件状态?代码有点复杂,但它只是 Do Until (EOF) 和 If 语句——非常基本的 VBA 函数。关于如何让这个进度条工作的任何想法?有或没有模态对话框。

我研究过编辑状态栏,但是,如果 Access 卡住,那也行不通。

最佳答案

您需要的是 DoEvents 语句。

这样做是让 CPU 队列中的其他项目运行。这会降低您的应用程序的速度,但您将重新获得对应用程序的控制权。

将命令放在其中一个循环中。

顺便说一句,过度使用 DoEvents 很容易。这SO post会告诉你更多。

关于ms-access - MS Access 在运行 VBA 时卡住,然后在完成后解冻,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16557461/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com