在导航中打开子表单(ELI5)

时间:2015-01-29 17:44:20

标签: forms vba ms-access access-vba

我有一个访问数据库我正在构建(我偶尔会发布我的问题)并且我对ms访问有一般性问题:

如何在导航表单中打开子表单?

我有一个主/子树:

Main Navigation Form -> Main Student Records Navigation Form -> View All Students Datasheet -> View Edit Student

我的目标是点击数据表中记录的ID,然后打开"查看/编辑学生"显示完整的详细信息(数据表只有几个元素)。

但老实说,我并不了解如何调用子窗体来打开。我已经读过它了,我认为它就像是

DoCmd.OpenForm Forms!NavigationForm.StudentNav_Form.ViewEditStud_Form

但这不起作用。但我觉得这个问题对于访问的方式是系统性的。我不确定我是否理解VBA中的引用和调用对象是如何工作的。阅读msdn文章只会让我更加困惑>。<

全部谢谢!


编辑:我发现了这个:navigating to a different tab in navigation subform

BrowseTo命令似乎就像我想要的那样,但我不确定我是否理解如何编写语法以移至正确的页面...我将进行实验,但如果任何人都知道我很想知道!

2 个答案:

答案 0 :(得分:0)

老实说,当我开始编程访问时,表单导航是我习惯的最难的事情之一。我认为你要找的是这样的:

DoCmd.OpenForm "FormName", acNormal, "", "[Record_ID] = " & Me.Record_ID, , acNormal

如果你的Record_ID由于某种原因是一个字符串,它将是单引号,如下所示:

DoCmd.OpenForm "FormName", acNormal, "", "[Record_ID] = '" & Me.Record_ID & "'", , acNormal

显然,您需要将FormName替换为要打开的表单的名称,并将Record_ID替换为该列的实际名称。通过它的外观,您的FormName可能是ViewEditStud_Form。

答案 1 :(得分:0)

我已经解决了。我不希望DoCmd.Open我想要DoCmd.Browseto,如上文所述。浏览的语法如下:

DoCmd.BrowseTo acBrowseToForm, "ViewEditStud_Form", "NavigationForm.NavigationSubform>StudentNav_Form.NavigationSubform"

我花了一段时间才明白这一点,所以我要打破它。

acBrowseToForm告诉它我正在浏览表格(显然!) "ViewEditStud_Form"是我正在浏览的表单。 "NavigationForm.NavigationSubform>StudentNav_Form.NavigationSubform"是打开它的指示。 NavigationForm是我的主导航表单的名称。 .NavigationSubform>标识有一个子窗体可以打开它,并且该子窗体是StudentNav_Form,它包含一个导航子窗体(其结尾表示该子窗体是要打开窗体的位置! )

希望这有助于其他任何人!