【发布时间】:2018-09-26 17:25:27
【问题描述】:
我有一个基于查询汇总记录的表单 (frmQATeam)。 (qQATeam) 它只显示一些较小的字段,所以我想要一个按钮,可以将我带到完整记录的全屏视图 (frmQASingleView),包括备注字段和其他较大格式的项目。我想查看汇总表上出现的每条记录,而不仅仅是一条。在这个按钮上,我使用 VBA 来拉出完整的视图表单。我试过了:
WHERE 方法:DoCmd.OpenForm "frmQASingleView", , ,"Id = " Me.ID,但它只提供选定的记录,而不是 frmQAteam 中显示的全部 6 个记录。
FilterName 方法:DoCmd.OpenForm "QASingleView", , "qQATeamViewAll" 但此方法返回表中的所有记录。
我在网上其他地方看到的一种方法(是的,在导航子表单中)
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
但是这个方法也会返回Table中的所有记录。
我最后的尝试是设置一个宏,尽管人们警告我不要使用 OpenForm 设置并根据查询设置过滤器。在这种情况下,我发现您不能使用宏来过滤基于具有关系的两个或多个表的查询。
我束手无策,希望有人能提供帮助。
【问题讨论】:
-
我有很多表单和查询,我不想为我想查看的每种查询都设置一个 frmQASingleView。也许我应该看看 VBA 中是否有办法在我打开表单时设置表单记录源属性?
-
那么也许你想做
Forms!frmQASingleView.RecordSource = "something",对吗? -
成功了!我将代码更改为 DoCmd.OpenForm "frmQASingleView" Forms!frmQASingleView.RecordSource = "qQATeam" 并且效果很好。如果你把它变成一个答案,我会给你功劳,非常感谢你!
标签: ms-access vba ms-access-2013