我有一个访问数据库我正在构建(我偶尔会发布我的问题)并且我对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
命令似乎就像我想要的那样,但我不确定我是否理解如何编写语法以移至正确的页面...我将进行实验,但如果任何人都知道我很想知道!
答案 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
,它包含一个导航子窗体(其结尾表示该子窗体是要打开窗体的位置! )
希望这有助于其他任何人!