在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
当用户点击列表框中的其他记录时,如何更改上面的代码以便更改选定的选项卡和导航子窗体的源对象?
答案 0 :(得分:2)
Access对路径的正确语法提供了相对不错的解释。
所以你的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"