我正在开发一个分为多个部分的Access数据库。每个都有一个Main-Form,其中包含嵌套选项卡中的子表单。
操作实例
我们有一个起始区域,分为不同的主题。这些主题形式具有代表Subthemes的按钮。
当我点击按钮A时,我想从Mainform 1导航到Mainform 2 Subtheme A(这是默认设置)。
当我按下按钮B时,我想从Mainform 1导航到Mainform 2 Subtheme B.(我无法使其工作)
我所知道的
我可以轻松地从Mainform 1到Mainform 2登陆,默认情况下主题1
Private Sub buttonB_Click()
DoCmd.openForm "Mainform2", _
End Sub
我不知道如何导航到Mainform2-> Sub Theme B.我可以使用OpenArgs打开正确的子表单,但我无法使用Tabs。我试图在mainform2的onLoad()中使用DoCmd.browseTo,但这会破坏该过程。
如果我没弄错的话,应该有一种方法可以在buttonB_click()中使用DoCmd.browseTo,但我无法正确使用该路径。
DoCmd.OpenForm Method (Access)
DoCmd.BrowseTo Method (Access)
我试图尽可能地描述问题,所以答案对其他人也有帮助。我希望你能帮助我!
答案 0 :(得分:0)
所以我设法解决了它:
首先,我们导航到Theme2的Main-Form,并在OpenArgs的帮助下告诉我们想要的主题:
Private Sub buttonThemeB_Click()
DoCmd.openForm "Mainform2", _
OpenArgs:="Theme B"
End Sub
在Mainform2的FormLoad()中,我们检查OpenArgs并导航Subform-Controle:
Private Sub Form_Load()
Dim strSubFormToken As String
' If OpenArgs property contains a subform name, open corresponding subform
If Me.OpenArgs <> 0 Then strSubFormToken = Me.OpenArgs
Select Case strSubFormToken
Case "Theme A"
strSubForm = "form_themeA"
Case "Theme B"
strSubForm = "form_themeB"
End Select
strSubForm =
If Len(strSubForm) > 0 Then
DoCmd.BrowseTo acBrowseToForm, strSubForm, "frmTheme2.Navigationsunterformular" 'Your Navigationtarget
End If
End Sub
所有这一切的主要问题是,如果你使用 DoCmd.BrowseTo路径进行子窗体控制,你必须知道一些没有记录的规则:
“&gt;”字符似乎不常见,因为它是专门为BrowseTo的Path参数引入的。它的含义是:“&gt;”字符右侧的表单被加载到左侧指定的子表单控件中。
因此,在导航子控件之前,我们必须首先打开新的主窗体。
似乎是处理此问题的最佳方式。 谢谢你的建议!