如何从窗体导航到不同形式的子窗体?
我正在研究分为多个部分的Access数据库。每个嵌套标签都有一个带有子表单的主表单。如何从窗体导航到不同形式的子窗体?
演练
我们有一个出发区被分成不同的主题。这些主题表单具有代表SubThemes的按钮。
当我击按钮我要离开MainForm的1至2 MainForm的副主题A(简单,因为它是默认值)。
当我击按钮BI要离开MainForm的1至2 MainForm的副主题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)
我试图说明问题尽可能通用这样的答案可以成为别人有帮助。我希望你可以帮助我!
所以我设法解决这个问题:
首先我们定位到THEME2的主要表格,并与OpenArgs的帮助,告诉它我们需要哪个话题:
Private Sub buttonThemeB_Click()
DoCmd.openForm "Mainform2", _
OpenArgs:="Theme B"
End Sub
在FormLoad() Mainform2我们检查OpenArgs和导航窗体-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
的Mainproblem在这一切的是,如果你使用DoCmd.BrowseTo路径对照子窗体OL你要知道,没有记载的一些规则:
的“>”字符似乎不寻常的,这是因为它已经为BrowseTo的Path参数具体介绍了。它的含义是这样的:“>”字符右边的表单被加载到其左侧指定的子表单控件中。
- 该路径必须指定一系列Form。SubFormControl对。指定的每个子窗体控件都必须是其路径之前的窗体中的控件。
- 对必须用“>”字符分隔。 ,最重要的是:(或浏览器窗口,如果应用程序在网络上运行)
- 该路径中的第一种形式必须是目前在Access窗口直接加载形式这意味着只有Path参数允许您更改当前可见的子窗体控件的内容。
因此,我们必须在导航子控件之前首先打开新的主窗体。
似乎是处理此问题的最佳方法。 感谢您的建议!
您是使用选项卡控件还是导航控件进行导航? –
看看是否有帮助:https://*.com/questions/44529082/change-navigation-tab-on-navigation-control-of-access/44529794#44529794 –
我相信我使用的实现是NavigationControl。 Kostas的例子是在选项卡控制上,并且不起作用。 – whoami