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

时间:2013-08-14 19:09:35

标签: vba ms-access

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

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

DoCmd.ShowToolbar "Ribbon", acToolbarNo    'Hides the full toolbar
DoCmd.ShowToolbar "Ribbon", acToolbarYes   'Show

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

在Access 2010& 2013(VB7):

CommandBars.ExecuteMso "MinimizeRibbon"

早期版本:

SendKeys "^{F1}", False

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

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

感谢您的任何建议!

标记

5 个答案:

答案 0 :(得分:10)

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

If CommandBars("ribbon").Height > 100 Then
    CommandBars.ExecuteMso "MinimizeRibbon"
End If

希望这能帮助一些正在寻找答案的人,就像我一样

戴夫

答案 1 :(得分: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

答案 2 :(得分:4)

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

E.G。     在Access 2010中,您可以使用以下命令更改功能区状态:

CommandBars.ExecuteMso "MinimizeRibbon"

http://social.msdn.microsoft.com/Forums/office/en-US/2f0d95a8-ed5f-4007-831d-05ef7e7a4263/minimize-the-ribbon-at-access-startup-using-vba

他链接:

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

http://www.accessribbon.de/en/index.php?Downloads: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()

答案 3 :(得分:1)

刚刚迁移到Access 2016.我的数据库使用与Dave Stuart提供的代码相似的代码。看起来最小化的色带现在的高度为'102',所以使用了(例如):

If CommandBars("ribbon").Height > 120 Then
  CommandBars.ExecuteMso "MinimizeRibbon"
End If

答案 4 :(得分:0)

Sub ToggleRibbon(Optional Show)

    If IsMissing(Show) Then
        CommandBars.ExecuteMso "MinimizeRibbon"   'Toggle

    ElseIf Show = True Then
        If CommandBars("ribbon").Height < 100 Then
            CommandBars.ExecuteMso "MinimizeRibbon"
        End If

    ElseIf Show = False Then
        If CommandBars("ribbon").Height > 100 Then
            CommandBars.ExecuteMso "MinimizeRibbon"
        End If

    End If

End Sub