2017-03-31 17 views
0

好吧,首先是我的问题: 当然,你可以打开Access“取消隐藏列”菜单有:编程(VBA)关闭与RunCommand打开一个窗口

DoCmd.RunCommand acCmdUnhideColumns 

但有代码,可以关闭那弹出菜单?也许在一个计时器上,比如如何创建一个消息框来在设定时间后自动关闭?

我知道这听起来很疯狂,所以这里的解释,为什么我得走歧途的背景。

在我创建了一个按钮加载用户配置文件,显示,隐藏和重新排列取决于用户的角色列分割形式。
工作正常,但正如我在StackExchange上学到的:“在正常模式下打开表单时进行的设计更改无法保存”,因此每次用户打开表单时都需要完成更改。

我发现,刚打开和关闭“取消隐藏列”菜单触发访问询问用户是否要保存布局时,窗体关闭。现在,我只是设置布局,然后打开菜单,迫使用户手动关闭它,但如果他们不必这样做,会更顺畅。这是我最接近的解决方案,适合我们的情况。我知道我可以设置配置文件在表单打开时运行,但有些用户会进一步在配置文件之外定制其布局,这会干扰他们。我能想到的所有其他解决方案都比这更重,假设我可以实现它。尽管我接受其他建议。

谢谢

回答

1

用户关闭窗体与X关闭吗?我在设计中禁用了它,并使它们始终使用自定义按钮关闭窗体。代码:

DoCmd.Close acForm, Me.Name, acSaveNo

我还可以禁用应用程序退出和X关闭。他们关闭数据库与主菜单窗体上从不关闭的按钮。还可以自定义功能区,隐藏导航窗格并禁用功能键并右键单击。并且不要教他们关于换档钥匙绕行。

+0

他们仍然可以使用“X”,但用户大多使用的代码与您的代码类似。为了测试,我将其更改为您的代码。事实上,情况变得更糟。它杀死了unhidecolumns命令触发保存请求但未保存的能力。 将您的代码更改为acSaveYes而不是进行更改,但不是我想要的更改。它仍然不会触发自己的列布局保存,但与unhidecolumns命令一起保存布局而不用询问。所以一个温和的改进,但我仍然需要打开unhidecolumns窗口并让用户关闭它。谢谢 –