我有一个有3个选项卡的导航表单。家庭,客户,装饰。
在导航表单上,我有一个未绑定的字段LOTNUMSELECT。
在每个选项卡中的Subform上,它有一个名为LOT_NUMBER的字段。
由于主/子关系似乎不可能与导航表单,我正在寻找子表单过滤加载。
用户在LOTNUMSELECT中输入lot #,然后单击选项卡。当标签变为当前时,将显示特定批号(记录)。
我一直在做这个从"控制面板"表单打开另一个表单与以下代码。
Dim stDocName As String
Dim stLinkCriteria As String
stDocName = "Decor"
If IsNull(LotNumberSelect.Value) = True Then
MsgBox "Please enter a lot number first."
Else
stLinkCriteria = "[Lot_Number]=" & "'" & Me![LotNumberSelect] & "'"
DoCmd.OpenForm stDocName, , , stLinkCriteria
End If
我只是不知道如何编辑这个工作与导航表单和子表单
导航控件由两部分组成。导航菜单和导航子表单。每个导航按钮(又名选项卡)将加载一个目标表单到navigationsubform控件中。一次只能将一个表单加载到navigation子表单中。由于navigationsubform打开了目标表单,因此可以使用标准的"form_open"方法来设置过滤器或相应地设置记录集。你所要做的就是点击表单的打开事件在该事件中你可以通过
访问父控件 dim lotno as long
Lotno = nz(me.Parent!controlname.value,0)
If lotno <> 0 the
' do your filter or recordset operation
End if
你也可以使用form_load事件。由于您将在加载后执行过滤器,因此最好将其设置在form_open上。这将提高你的表现。
PART2
在做了一些实验之后,我有了更多的想法。
我认为导航控件不适合你的情况。导航控件似乎没有事件和属性,可以让您将其链接到具有导航控件的主窗体上的控件(我认为这就是您正在尝试做的)。
我想你会发现使用"tab控件"更容易,在这种情况下,它更容易工作。
我认为导航控件实际上被设计成一个菜单,允许您访问其中的其他表单和报表。
这里有一个关于使用标签控件的视频链接:视频1视频2
这里有一些关于使用导航控件的视频链接:视频1视频2视频3
下面是我对导航控件做的一些注释:
导航控件有一个"导航子表单",它没有任何主/子数据链接字段。但是,此子表单不是普通的子表单。
使用导航控件,您必须将导航按钮(在导航菜单中)的"导航目标名称"属性设置为单击按钮时希望在导航子表单中显示的表单。
此外,该按钮有一个属性"Navigation Where子句",我相信它被用来设置过滤加载表单时显示的行。当在主窗体上使用控件时,似乎不存在允许您更改此筛选器的事件。