MSAccess - 最小化工具栏功能区OnLoad()?

Mar*_*ier 8 ms-access vba

我正在寻找一种可靠的方法来在OnLoad()事件期间最小化默认的MSAccess工具栏功能区.

我意识到可以完全隐藏工具栏,但这不是我想要做的 - 我只想最小化功能区:

DoCmd.ShowToolbar "Ribbon", acToolbarNo    'Hides the full toolbar
DoCmd.ShowToolbar "Ribbon", acToolbarYes   'Show
Run Code Online (Sandbox Code Playgroud)

我尝试了几种方法,取得了不同的成功:

在Access 2010和2013(VB7)中:

CommandBars.ExecuteMso "MinimizeRibbon"
Run Code Online (Sandbox Code Playgroud)

早期版本:

SendKeys "^{F1}", False
Run Code Online (Sandbox Code Playgroud)

这两种方法似乎都在会话之间作为TOGGLE运行.有没有一种方法来确定当前状态,然后应用适当的代码?

我的用户使用Access:2007,2010,2013

谢谢你的任何建议!

标记

Dav*_*art 10

访问2010版本及以上版本,您应该在启动表单中执行此操作.如果您只使用ExecuteMso行,它将在每次打开表单时切换您的功能区.要始终最小化启动时功能区,请使用以下代码.

If CommandBars("ribbon").Height > 100 Then
    CommandBars.ExecuteMso "MinimizeRibbon"
End If
Run Code Online (Sandbox Code Playgroud)

希望这有助于一些正在寻找像我一样的答案的人

戴夫


Mar*_*ier 7

这是我的实现的片段:

Select Case SysCmd(acSysCmdAccessVer)
    Case 7: accVer = "95"
    Case 8: accVer = "97"
    Case 9: accVer = "2000"
    Case 10: accVer = "2002"
    Case 11: accVer = "2003"
    Case 12: accVer = "2007"
    Case 13: accVer = "Pirated!"
    Case 14: accVer = "2010"
    Case 15: accVer = "2013"
    Case Else: accVer = "Unknown"
End Select

RibbonState = (CommandBars("Ribbon").Controls(1).Height < 100)

Select Case RibbonState
    Case True
        'Do nothing, already minimized
    Case False
        If accVer > 13 Then
            CommandBars.ExecuteMso "MinimizeRibbon"
        Else
            SendKeys "^{F1}", False
        End If
End Select
Run Code Online (Sandbox Code Playgroud)

  • `如果accVer> 13那么` - accVer在这里持有一个字符串 (2认同)

Eli*_*ias 5

在MSDN上查看此答案。他分享了几种不同的处理方法,包括一个示例数据库。

EG在Access 2010中,您可以使用以下方式更改功能区状态:

CommandBars.ExecuteMso "MinimizeRibbon"
Run Code Online (Sandbox Code Playgroud)

http://social.msdn.microsoft.com/Forums/office/zh-CN/2f0d95a8-ed5f-4007-831d-05ef7e7a4263/minimize-the-ribbon-at-access-start-up-using-vba

他在以下链接:

http://www.accessribbon.de/en/index.php?FAQ:19

http://www.accessribbon.de/en/index.php?下载次数:15

根据所使用的访问权限,也许可以使用不同的功能。

-http : //windowssecrets.com/forums/showthread.php/142262-How-to-find-Access-version-in-code中获取此内容

Public Function AccessVersionID() As String


   Select Case SysCmd(acSysCmdAccessVer)
     Case 7: AccessVersionID = "95"
     Case 8: AccessVersionID = "97"
     Case 9: AccessVersionID = "2000"
     Case 10: AccessVersionID = "2002"
     Case 11: AccessVersionID = "2003"
     Case 12: AccessVersionID = "2007"
     Case 13: AccessVersionID = "Pirated!"
     Case 14: AccessVersionID = "2010"
     Case 15: AccessVersionID = "2013"
     Case Else: AccessVersionID = "Unknown"
   End Select

 End Function            'AccessVersionID()
Run Code Online (Sandbox Code Playgroud)