我正在开发一个 Access 应用程序,在该应用程序中运行一个将一堆文本文件导入 Access 的进程,并且我想为此进程显示一个进度表。
我已经构建了一个简单的进度条:我有一个包含五个矩形和一个文本框的表单。当五分之一的文本文件完成导入时,文本框会显示“导入的文件的百分之二十”,并且其中一个矩形变得可见。当第二个五分之一完成时,它会再次更新,依此类推。
我遇到的问题是表单仅在 60% 和 100% 时更新。其他增量的代码有效,但表单未更新。我怀疑当我运行 VBA 语句时
Forms("ImportingData")!Box1.Visible = True
该脚本实际上不会暂停,直到该框在屏幕上可见,然后继续运行。它只是在内部更改属性或其他内容。我试图通过让它暂停 1 秒来解决这个问题
Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Sub UpdateStatusForm(fifth As Integer)
If fifth = 1 Then
Forms("ImportingData")!PctComp.Caption = "20 percent of txt files imported"
Forms("ImportingData")!Box1.Visible = True
ElseIf fifth = 2 Then ...
Sleep(1000)
End Sub
但它没有奏效。还有其他建议吗?
谢谢!