我已阅读relevant historical material,这与其他人的问题不同。添加DoEvents
无效。
RetVal = SysCmd(4, "Here's an Update!")
清除状态栏文本和计量器,而不是更新文本。我已使用?SysCmd(4, "some text")
在子窗口和即时窗口中对此进行了测试。
更令人困惑的是SysCmd(3)
和SysCmd(5)
两者完全删除了状态栏,文字和计费器。 documentation中描述了SysCmd(3)
:
当参数为3时,进度表将从状态栏中删除。
对于another page上的SysCmd(5)
:
当action参数为5时,将删除前一个SysCmd()函数设置的状态栏文本。
与这些描述相反,整个状态栏已被删除。
我甚至尝试过测试the suggested sub from Microsoft:
Function StatusBar ()
Dim RetVal As Variant
RetVal = SysCmd(4, "The rain in Spain falls mainly ...")
MsgBox "Press OK when you are ready to finish!"
RetVal = SysCmd(5)
End Function
测试此结果只会出现消息框。
据我所知,其他一切都运转良好。这些按预期工作:
RetVal = SysCmd(1, "Beginning Queries...", 10) 'adds the status bar
RetVal = SysCmd(2,1) 'moves the meter
添加常量名称(即acSysCmdSetStatus
)似乎在Access 2010中没有任何影响(因为这是Access VBA,而不是VBS)。
答案 0 :(得分:1)
我遇到的问题都是关于一个错误的误解。 SysCmd
方法执行a lot of things并且有点压倒性。
在Access的最底部,我们有状态栏。 左下角上的文字是Status Bar Text。这是通过acSysCmdSetStatus
(值4
)和acSysCmdClearStatus
(5
的值)来控制的。
此文字不能与Status Bar Progress Meter同时使用,here位于状态栏的右下角。它有自己的文字。
上面的误解是状态栏文本操作会更改状态栏进度表的文本。他们没有。
答案 1 :(得分:0)
很难说。您的代码在A2013中运行良好,缩减版本也是如此:
Public Function StatusBar()
SysCmd acSysCmdSetStatus, "The rain in Spain falls mainly ..."
MsgBox "Press OK when you are ready to finish!"
SysCmd acSysCmdClearStatus
End Function
显示状态文本,消息框弹出,状态栏被清除。