1

我希望在这里遗漏一些明显的东西......

我刚刚开始开发一个新的 Access 2010 应用程序。一些个人的,希望是简单的。

我需要做的第一件事是从硬盘驱动器中读取一堆文件。如果信息尚不存在,我会解析将信息添加到表中的内容。

代码工作正常,这不是问题。由于可能需要一段时间,我使用标准表单添加了一个简单的进度对话框,但处于对话框/弹出模式。随着 FSO.Folder.Files 对象的 For Each 循环的进行,我将一些信息发送到几个文本框并发出 Me.Repaint(也尝试过 DoCmd.RepaintObject acForm,“FormName”)。

问题是,在重绘停止响应之前,我可以完成 5% 到 35% 的过程。表单只有在达到 100% 时才会重新绘制。

该过程使用有限的递归 - 如果有一个子文件夹 - 它会调用自己来处理该子文件夹,但文件夹结构是相当线性的,所以其中并不多。

表格没有任何约束。所有表更新都发生在代码中并通过 RecordSets。

任何想法为什么 Access 停止响应?

干杯,

罗伊

4

1 回答 1

0

DoEvents之后添加Repaint。这将导致 Access 屈服于 Windows,然后它可以处理其挂起的任务......例如在这种情况下更新显示。

实际上,如果您的代码更新文本框,我不明白您为什么需要Repaint表单才能显示更改。试试这样的东西......

Me.MyTextBox = "hello"
DoEvents
于 2013-02-15T15:21:05.997 回答