2015-02-07 168 views
1

在应用程序中,我有两个功能区:用于所有表单的“常规”功能区和用于所有报表的特定于报表的功能区。从“报告管理器”样式表格中,用户可以选择一个报告并预览它。MS Access 2010功能区不会从报表更改为表格

当报告打开时,它会正确显示报告功能区。但是,报告关闭后,报告管理器窗体仍显示报告功能区,而不是常规窗体。

一旦这个表单被关闭,功能区将变回一般状态。

请注意,用户通过终端服务器作为accde访问此应用程序。

这不正确的行为不会发生在本地开发机器上,所以我怀疑这是由于TS'刷新'问题 - 我在其他情况下注意到了这一点。

无论如何在报告关闭时强制刷新功能区,因此显示报表管理器窗体?

回答

0

我会考虑在您的启动代码中抓取主要功能区的句柄(即不会重新显示)。然后,在关闭事件执行的带状此命令无效的报告:

MyMainRibbon.Invalidate 

这样你就可以“强制”带状重新情节。这确实表明你总是使用accDE,因为对于accDB,那么任何未经手动的错误也将失去上述带有对功能区的引用的全局变量。

+0

感谢Albert的建议。由于我有时在常规功能区上显示/隐藏一个或两个按钮,因此我已经有了对该功能区对象的全局引用。 我尝试将Invalidate方法添加到报表的Close事件中,但它不起作用,可能是因为该报表在技术上仍处于活动状态? 我试着添加Invalidate到报表窗体“OnGotFocus”事件,但它没有被触发,不知道为什么不。 :( – maxhugen 2015-02-08 22:47:58