Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ms access MS Access 2010功能区未从报表更改为表单_Ms Access_Ribbon_Terminal Services - Fatal编程技术网

Ms access MS Access 2010功能区未从报表更改为表单

Ms access MS Access 2010功能区未从报表更改为表单,ms-access,ribbon,terminal-services,Ms Access,Ribbon,Terminal Services,在一个应用程序中,我有两个功能区:一个用于所有表单的通用功能区,一个用于所有报表的报表专用功能区。从报表管理器样式的表单中,用户可以选择报表并预览它 报告打开时,将正确显示“报告”功能区。但是,当报表关闭时,“报表管理器”窗体仍会显示“报表”功能区,而不是常规功能区 关闭此窗体后,功能区将变回常规窗体 请注意,用户通过终端服务器以accde身份访问此应用程序 这种不正确的行为不会发生在本地开发机器上,因此我怀疑这是由于TS“刷新”问题造成的,我在其他一些情况下也注意到了这一问题 无论如何,在报表

在一个应用程序中,我有两个功能区:一个用于所有表单的通用功能区,一个用于所有报表的报表专用功能区。从报表管理器样式的表单中,用户可以选择报表并预览它

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

关闭此窗体后,功能区将变回常规窗体

请注意,用户通过终端服务器以accde身份访问此应用程序

这种不正确的行为不会发生在本地开发机器上,因此我怀疑这是由于TS“刷新”问题造成的,我在其他一些情况下也注意到了这一问题


无论如何,在报表关闭时强制“刷新”色带,因此显示报表管理器表单?

< P>我会考虑在您的启动代码中抓取未重新显示的主带的句柄。然后在“关闭时报告”事件中执行功能区失效命令,如下所示:

MyMainRibbon.Invalidate

因此,您可以“强制”功能区重新打印。这确实建议您始终使用accDE,因为使用accDB时,任何未经处理的错误也将丢失上面保存对功能区引用的全局变量。

谢谢您的建议。我已经有了对ribbon对象的全局引用,因为我有时会在常规ribbon上显示/隐藏一个或两个按钮。我尝试将Invalidate方法添加到报表的Close事件中,但没有成功,可能是因为此时报表在技术上仍然处于活动状态?我尝试将Invalidate添加到OnGotFocus事件的报告表单中,但它没有被触发,不知道为什么