我的访问表单中有一个按钮,点击它时会检查一些代码以查找excel单元格中的数据。完成这个过程需要一段时间。到那时我需要向用户显示Please wait消息。
我正在调用此方法,但无法正常工作
Sub plswaitmsg()
Dim statusmsg As Variant
statusmsg = SysCmd(acSysCmdRemoveMeter)
statusmsg = SysCmd(acSysCmdSetStatus, "Loading dropdown data,please wait.")
End Sub
答案 0 :(得分:3)
您可以在执行模式下使用此状态栏。 http://christopherjmcclellan.wordpress.com/2014/03/08/progress-bar-for-ms-access/
在这里完整地发布它有点多,但它依赖于两件大事。首先,您可以在代码中动态创建任何表单的新实例。这取决于Access表单实际上只是美化的类模块。您可以通过使用默认名称" Form1"保存新表单,然后将此代码放在常规* .bas模块中来自行尝试。
Sub ShowForm()
Dim frm as New Form_Form1
frm.Visible = True
Stop
End Sub
请注意,我设置了断点,因为当表单超出范围时,表单将自动销毁。
第二件大事是使用DoEvents
为操作系统提供足够的时间重新绘制屏幕。
了解这两件事,您应该能够设计一个带有文本框的表单,该文本框会随着您的流程运行而改变大小。另外,我实际上会推荐一个UserForm而不是Access Form。我当时并不知道,但您不仅可以在Excel中使用UserForms,还可以在Access中使用。
答案 1 :(得分:1)
您无法在Excel中显示MsgBox而不会暂停执行marco。 您应该使用状态栏显示消息
Application.StatusBar = "Please be patient..."
然后清除它
Application.StatusBar = False
答案 2 :(得分:-1)
这是一种非常简单的方法:
真正的流程结束时间是最新的代码行。