Ms access “如何弹出窗口”;请稍等;在access vba中运行进程时的消息
我的access窗体中有一个按钮,当单击它时,它会检查一些代码以在excel单元格中查找数据。完成这个过程需要一段时间。那个时候我需要向用户显示“请等待”消息 我正在调用此方法,但不起作用Ms access “如何弹出窗口”;请稍等;在access vba中运行进程时的消息,ms-access,vba,Ms Access,Vba,我的access窗体中有一个按钮,当单击它时,它会检查一些代码以在excel单元格中查找数据。完成这个过程需要一段时间。那个时候我需要向用户显示“请等待”消息 我正在调用此方法,但不起作用 Sub plswaitmsg() Dim statusmsg As Variant statusmsg = SysCmd(acSysCmdRemoveMeter) statusmsg = SysCmd(acSysCmdSetStatus,
Sub plswaitmsg()
Dim statusmsg As Variant
statusmsg = SysCmd(acSysCmdRemoveMeter)
statusmsg = SysCmd(acSysCmdSetStatus, "Loading dropdown data,please wait.")
End Sub
若不暂停marco的执行,则无法在Excel中显示MsgBox。 您应该使用状态栏来显示消息
Application.StatusBar = "Please be patient..."
那就把它清理干净
Application.StatusBar = False
您可以在执行模式下使用此状态栏。 这是一个有点多张贴在这里的整体,但它依赖于两个大的东西。首先,您可以在代码中动态创建任何表单的新实例。这取决于访问表单实际上只是美化的类模块这一事实。您可以通过使用默认名称“Form1”保存一个新表单,然后将此代码放在常规的*.bas模块中来尝试
Sub ShowForm()
Dim frm as New Form_Form1
frm.Visible = True
Stop
End Sub
请注意,我在中放置了一个断点,因为表单在超出范围时将自动销毁
第二件大事是使用DoEvents
给操作系统足够的时间重新绘制屏幕
理解了这两件事,您应该能够设计一个带有文本框的表单,该文本框在流程运行时会改变大小。另外,我建议使用UserForm而不是Access表单。当时我还不知道,但您不仅可以在Excel中使用UserForms,还可以在Access中使用UserForms。这里有一个非常简单的方法: 真正的进程结束时间是最新的代码行
- 所以,您将finish按摩作为标签标题放在末尾子代码行的上方李>
- 然后等待按摩标签标题应在处理前显示
- 然后,您的命令按钮可以在鼠标按下输入中使用“请等待”消息,而不是单击输入
SysCmd acSysCmdSetStatus,“您的消息”
,与上面的消息类似……我看不出MsgBox与此有什么关系吗?还必须将表单的ShowModal属性设置为false