首页 > 解决方案 > 通过查询访问拆分表单上的过滤器以报告

问题描述

我有一个拆分表单,我想做的是打开我在这个拆分表单中使用的过滤器的报告。重要的是,在这个拆分表单中,您可以更正行(您不能编辑前一行,但它会创建另外两行 - 一个是负数,另一个是编辑,我有一列存储 ID更正的行 - CorrectedRowID)。所以我不能基于该表创建报告,所以我创建了一个查询,该查询按 CorrectedRowID 对这些数据进行分组,它采用每个 ID 的最后一行,所以我只有每个 ID 的最新行。然后基于该查询我创建了报告。

在拆分表单上,我有打开报告的按钮。但是我想要的是,当我在此拆分表单中进行过滤并单击“打开表单”按钮时,它会打开过滤器上已经存在的报告。我在 VBA 的这个按钮中使用了这个代码:

Private Sub Command282_Click()

DoCmd.OpenReport "tb_ewid_WNT1_raport", acViewPreview, , Me.filter

End Sub

当我创建一个普通报告(不是基于查询)时,过滤器效果很好,但是当我在此拆分表单中的一列上对数据进行一些过滤时,它会询问我要过滤我的数据的列的值。

查询返回每个 ID 的最新行。例如:

ID 姓名 数量 价格 更正行 ID 修正
1 面包 4 1,5 1
2 牛奶 3 2,3 2
3 面包 -4 1,5 1 是的
4 面包 11 1,5 1 是的

在这种情况下查询将返回这个,因此对于每个 CorrectedRowID 它返回最高 ID:

ID 姓名 数量 价格 更正行 ID 修正
2 牛奶 3 2,3 2
4 面包 11 1,5 1 是的

我基于此查询创建了报告。我还在 splitform 上创建了一个使用我编写的代码的按钮。当我过滤我的数据并单击此按钮时,它会询问我某些列的值(每次都不相同)。它要求的值是组合框,它们从不同的表中获取值。该查询使用 JOIN。

我在哪里犯错了?

标签: sqlvbams-access

解决方案


推荐阅读