Ms access 如何使用VBA刷新导航窗格
我有一个前端数据库,我动态地向后端数据库添加一些链接表。接下来,我从隐藏的系统表中读取它们的ID,以便将它们添加到导航窗格中,在我创建的一些自定义组中 虽然我相信我使用了正确的表/值,但在完成MSysNavPaneGroupToObjects表中的插入后,我找不到任何方法来刷新导航窗格 关于我想要实现的目标的唯一信息可以在这里找到: 但是在我的例子中,所有的值都被成功创建(我想),但是我在导航窗格中看不到条目。有时它是有效的,但大多数时候我只看到空组 我想知道是否有人解决了类似的问题,或者有一个文档/论坛,我可以找到更多信息。谢谢请尝试以下操作: 或者:Ms access 如何使用VBA刷新导航窗格,ms-access,vba,Ms Access,Vba,我有一个前端数据库,我动态地向后端数据库添加一些链接表。接下来,我从隐藏的系统表中读取它们的ID,以便将它们添加到导航窗格中,在我创建的一些自定义组中 虽然我相信我使用了正确的表/值,但在完成MSysNavPaneGroupToObjects表中的插入后,我找不到任何方法来刷新导航窗格 关于我想要实现的目标的唯一信息可以在这里找到: 但是在我的例子中,所有的值都被成功创建(我想),但是我在导航窗格中看不到条目。有时它是有效的,但大多数时候我只看到空组 我想知道是否有人解决了类似的问题,或者有一个
CurrentDb.TableDefs.Refresh
access中存在一个bug,您必须刷新导航窗格,以便它们显示,甚至关闭并重新打开 另一个选择是隐藏然后显示,但这可能只是像其他建议一样刷新它
隐藏
DoCmd.RunCommand acCmdWindowHide
展示
DoCmd.SelectObject acTable, , True
如果写入
MSysNav*
表的更改并不总是显示在导航窗格中,即使在关闭和重新打开数据库之后,那么这实际上不是“刷新”问题。其他一些东西可能会干扰这些表的更新,使您的更改无效
在一篇文章中,Wayne G.Dunn建议“这个[MSysNavPaneObjectIDs]表是在访问的突发奇想下重建的”,这可能会与应用程序VBA代码对该表的更新发生冲突。如果这是真的,并且MSACCESS.EXE希望在数据库打开时(有效地)以独占方式访问MSysNav*
系统表,那么解决方法是确保在应用MSysNav*
修改时,正在修改的数据库不会在MSACCESS.EXE中打开
一种方法是使用“主”数据库中的VBA代码
应用程序关闭“主”数据库。退出
MSysNav*
表,而MSACCESS.EXE没有打开它- “主”数据库的完整路径(以便单独的进程可以找到它)
- MSACCESS.EXE的相关副本的完整路径(这样单独的进程可以在完成后重新加载主数据库),以及
- 要在主数据库的
表中添加或更新的项MSysNav*
DoCmd.SelectObject acTable, , True