【问题标题】:Access SysCmd function not working as expected for some action values对于某些操作值,访问 SysCmd 功能无法按预期工作
【发布时间】:2015-06-05 23:51:17
【问题描述】:

我已阅读relevant historical material,这与其他人遇到的问题不同。添加DoEvents 无效。

第一个问题

RetVal = SysCmd(4, "Here's an Update!") 清除状态栏文本和仪表,而不是更新文本。我已经使用?SysCmd(4, "some text") 在子窗口和即时窗口中对此进行了测试。

第二个问题

更令人困惑的是SysCmd(3)SysCmd(5) 完全删除了状态栏、文本和仪表。 SysCmd(3)documentation 中描述:

当参数为 3 时,进度条从状态栏中移除。

对于SysCmd(5)another page

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

在 Access 2010 中添加常量名称(即acSysCmdSetStatus)似乎没有任何效果(因为这是 Access VBA,而不是 VBS)。

【问题讨论】:

    标签: ms-access vba ms-access-2010 statusbar


    【解决方案1】:

    我遇到的问题完全是关于一个错误的误解。 SysCmd 方法确实是 a lot of things,它有点压倒性。

    在 Access 的最底部,我们有状态栏。 左下角上的文字是Status Bar Text。这是通过acSysCmdSetStatus4 的值)和acSysCmdClearStatus5 的值)控制的。

    此文本不能与状态栏右下角上的Status Bar Progress Meter 同时使用。它有自己的文字。

    上面的误解是状态栏文本操作会更改状态栏进度条的文本。他们没有。

    有关SysCmd 操作值的参考,请参阅here

    【讨论】:

      【解决方案2】:

      很难说。您的代码在 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
      

      显示状态文本,向前弹出消息框,清除状态栏。

      【讨论】:

        猜你喜欢
        • 2020-02-26
        • 1970-01-01
        • 1970-01-01
        • 2016-11-12
        • 1970-01-01
        • 1970-01-01
        • 2021-10-13
        • 1970-01-01
        相关资源
        最近更新 更多