VBA DoCmd.Open 表单上的一组记录
VBA DoCmd.Open form on a group of records
我有一个表格 (frmQATeam),可以根据查询汇总记录。 (qQATeam) 它只显示一些较小的字段,所以我想要一个按钮,可以将我带到完整记录 (frmQASingleView) 的全屏视图,包括备注字段和其他较大格式的项目。我想查看汇总表中出现的每条记录,而不仅仅是一条记录。在这个按钮上,我使用 VBA 来拉起完整的视图表单。我试过:
WHERE 方法:DoCmd.OpenForm "frmQASingleView", , ,"Id = " Me.ID
但它只提供选定的记录,而不是 frmQAteam 中显示的所有 6 条记录。
FilterName 方法:DoCmd.OpenForm "QASingleView", , "qQATeamViewAll"
但此方法 returns 中的所有记录 table。
还有我在网上其他地方看到的建议方法(是的,它在导航子表单中)
Dim rs As Object
Dim lngBookmark As Long
lngBookmark = Me.ID
DoCmd.OpenForm "frmQASingleView"
Set rs = Forms!MainMenu.Form!btnManagersMenu.Form!NavigationSubform.Form.RecordsetClone
rs.FindFirst "ID = " & lngBookmark
但是这个方法也returns所有记录在Table.
我最后的尝试是设置一个宏,尽管人们警告我不要使用 OpenForm 设置并根据查询设置过滤器。在这种情况下,我发现您不能使用宏来过滤基于两个或多个具有关系的 table 的查询。
我束手无策,希望有人能提供帮助。
您可以在运行时将 RecordSource
更改为 frmQASingleView
。因此,如果您将其更改为使用与第一种形式相同的查询 qQATeam
,则它必须显示相同的 6 行。 :-)
建议您先打开表格为空隐藏。
DoCmd.OpenForm FormName:="frmQASingleView", View:=acNormal, WhereCondition:="1=2", WindowMode:=acHidden
然后更改它的 RecordSource
并取消隐藏它。
Forms!frmQASingleView.RecordSource = "qQATeam"
DoCmd.OpenForm FormName:="frmQASingleView" View:=acNormal, WindowMode:=acWindowNormal
我有一个表格 (frmQATeam),可以根据查询汇总记录。 (qQATeam) 它只显示一些较小的字段,所以我想要一个按钮,可以将我带到完整记录 (frmQASingleView) 的全屏视图,包括备注字段和其他较大格式的项目。我想查看汇总表中出现的每条记录,而不仅仅是一条记录。在这个按钮上,我使用 VBA 来拉起完整的视图表单。我试过:
WHERE 方法:DoCmd.OpenForm "frmQASingleView", , ,"Id = " Me.ID
但它只提供选定的记录,而不是 frmQAteam 中显示的所有 6 条记录。
FilterName 方法:DoCmd.OpenForm "QASingleView", , "qQATeamViewAll"
但此方法 returns 中的所有记录 table。
还有我在网上其他地方看到的建议方法(是的,它在导航子表单中)
Dim rs As Object
Dim lngBookmark As Long
lngBookmark = Me.ID
DoCmd.OpenForm "frmQASingleView"
Set rs = Forms!MainMenu.Form!btnManagersMenu.Form!NavigationSubform.Form.RecordsetClone
rs.FindFirst "ID = " & lngBookmark
但是这个方法也returns所有记录在Table.
我最后的尝试是设置一个宏,尽管人们警告我不要使用 OpenForm 设置并根据查询设置过滤器。在这种情况下,我发现您不能使用宏来过滤基于两个或多个具有关系的 table 的查询。
我束手无策,希望有人能提供帮助。
您可以在运行时将 RecordSource
更改为 frmQASingleView
。因此,如果您将其更改为使用与第一种形式相同的查询 qQATeam
,则它必须显示相同的 6 行。 :-)
建议您先打开表格为空隐藏。
DoCmd.OpenForm FormName:="frmQASingleView", View:=acNormal, WhereCondition:="1=2", WindowMode:=acHidden
然后更改它的 RecordSource
并取消隐藏它。
Forms!frmQASingleView.RecordSource = "qQATeam"
DoCmd.OpenForm FormName:="frmQASingleView" View:=acNormal, WindowMode:=acWindowNormal