我正在寻找一种可靠的方法来在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
感谢您的任何建议!
标记
答案 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://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