我为Access表单提供以下代码。似乎SendKeys
在打开和关闭表单时通过打开和关闭NumLock键弄乱了我。
由于我不想涉足的正当理由,我真的不想完全隐藏功能区(我希望下拉菜单仍可访问),因此DoCmd.ShowToolbar
命令不是我的首选方法。
关于我如何使用SendKeys
命令修改下面的代码来完成我想要的工作,是否有人有任何建议?
使用Access 2007这样的命令
CommandBars.ExecuteMso "MinimizeRibbon"
对我不可用。
顺便说一下,数据库将是分布式的,因此解决方案必须包含在数据库中。
Private Sub Form_Close()
' Unhide navigation pane
DoCmd.NavigateTo "acNavigationCategoryObjectType"
DoCmd.Maximize
' Maximize the ribbon
RibbonState = (CommandBars("Ribbon").Controls(1).Height < 75)
Select Case RibbonState
Case True
SendKeys "^{F1}", True
Case False
'Do nothing, already maximized
End Select
End Sub
Private Sub Form_Load()
' Hide navigation pane
DoCmd.NavigateTo "acNavigationCategoryObjectType"
DoCmd.Minimize
Debug.Print Application.CommandBars.Item("Ribbon").Height
' Minimize ribbon
RibbonState = (CommandBars("Ribbon").Controls(1).Height < 100)
Select Case RibbonState
Case True
'Do nothing, already minimized
Case False
SendKeys "^{F1}", False
End Select
End Sub
最佳答案
这是Microsoft VBA中的错误。但是有一种解决方法。
使用F8遍历宏并找到将其关闭的位置。通常在SendKeys
之后。
然后添加一个
Sendkeys "{NUMLOCK}", True
在行后可以反转效果。
如果找不到,只需将其添加到末尾,当它完成时,它将返回。希望如果您在显示/隐藏过程中添加它,它将可以使用。
关于vba - SendKeys通过Access窗体中的VBA代码弄乱了我的NumLock key ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25977933/