导航到导航子窗体中的其他选项卡

时间:2013-12-04 03:44:05

标签: vba ms-access access-vba ms-access-2010

在ms access 2010数据库中,我有一个列表框,其后续更新程序需要(以及其他内容)导航到导航子窗体中的特定选项卡。我可以让它来更改导航子窗体的SourceObject属性,但是所选的选项卡不会被更改,因此用户最终会看到选择了错误选项卡的正确源对象。这看起来不专业。如何更改选定的选项卡和源对象?

我上传了一个简化的数据库,将问题重新创建到this file sharing site

需要更改afterupdate方法的列表框名为lstbxClients。这是我目前的afterupdate方法草案,目前正在抛出一个错误:

Private Sub lstbxClients_AfterUpdate()
  Dim rst
  Set rst = Me.RecordsetClone
  rst.FindFirst "ClientNumber = " & lstbxClients.Column(0)
  Me.Bookmark = rst.Bookmark
  'Forms!Main!NavigationSubform.Form!NavigationSubform.SourceObject = "qryListCommunicationForms"
  DoCmd.BrowseTo acBrowseToForm, "qryListCommunicationForms", "Forms!Main!NavigationSubform.Form!NavigationSubform"
  Form.NavigationSubform "  "
  'Forms!Main!NavigationSubform.Form!NavigationSubform.SelectedTab = "CommFormsNavBtn"
  Set rst = Nothing
End Sub  

当用户点击列表框中的其他记录时,如何更改上面的代码以便更改选定的选项卡和导航子窗体的源对象?

3 个答案:

答案 0 :(得分:2)

Access对路径的正确语法提供了相对不错的解释。

Path argument is of the form: MainForm1.Subform1>Form1.Subform1

所以你的BrowseTo命令应如下所示:

DoCmd.BrowseTo acBrowseToForm, "qryListCommunicationForms", "Main.NavigationSubform>FindClientsNavigation.NavigationSubform"

答案 1 :(得分:1)

使用以下语法

DoCmd.BrowseTo acBrowseToForm, "qryListCommunicationForms", "Main.NavigationSubform>findClientsNavigation.NavigationSubform", "ClientNumber = " & lstbxClients.Column(0)

DoCmd.BrowseTo acBrowseToForm, "ListAddresses", "Main.NavigationSubform>findClientsNavigation.NavigationSubform", "ClientNumber = " & lstbxClients.Column(0)

唯一的变化是第二个参数语法,使用

"Main.NavigationSubform>findClientsNavigation.NavigationSubform"

希望这有帮助

答案 2 :(得分:0)

最简单的方法:

Form_NavFormName.NavigationSubform.SourceObject = "FormName"