ms访问报告中的计数行在2列中具有相同的数据

时间:2019-02-19 07:43:49

标签: access-vba ms-access-2013 ms-access-reports

  1. form before that user need to select and when search button is clicked, it will show a report based on user selection

  2. this is the report after the search button is click

嗨,专家。我在ms Access报告中查找行与列和名称之间有重复数据的行时遇到问题。因此,如果在第一行中,列family = a和name = b,而在另一行中family = a和name = b,则无论其他列如何,我们都有重复的行。我希望它从报表而不是从表或查询中计数。这是因为该报表将基于用户从其他表单的组合框和列表框中选择而显示。然后单击搜索按钮,它将生成报告。

因此,我想在报告中有一个“摘要”按钮,该按钮可以显示如下结果(基于报告表单):

the result

以此类推....

希望我能收到你们的积极反馈。谢谢

下面是我用来生成报告的代码:

Code for button report

2 个答案:

答案 0 :(得分:0)

您可以基于报表查询构建汇总查询,也可以基于此查询构建报表。

SELECT Family, whichTest, Count(*) as ProductCount FROM Report_Query_Name GROUP BY Family, whichTest

这考虑到您已将报告查询另存为报告之外的单独查询。

答案 1 :(得分:0)

执行此操作而不传递多个参数的一种方法是将摘要放置在子报表中,并通过按一下按钮显示该子报表。不幸的是,页脚中的子报表在访问中存在错误,因此您必须手动过滤子报表。 我们从一个类似的简单规范化数据库开始: enter image description here 然后,我添加了一个简单的表单,其中包含多个选择的家庭列表框和一个用于打开过滤报告的按钮。 enter image description here

Private Sub cmdSearch_Click()
'Build Filter for report
Dim strFilter As String
Dim firstselectedfamily As Boolean
firstselectedfamily = True
For i = 0 To lstFamilys.ListCount - 1
If lstFamilys.Selected(i) = True Then
If firstselectedfamily = True Then
strFilter = "FamilyFK = " & lstFamilys.Column(0, i)
firstselectedfamily = False
Else
strFilter = strFilter & " OR FamilyFK = " & lstFamilys.Column(0, i)
End If
End If
Next i
'open report with filter
DoCmd.OpenReport "ExampleReport", acViewReport, "", strFilter, acNormal
End Sub

这是ExampleReport,带有一个按钮,用于显示重复的摘要: enter image description here

该按钮将根据查找重复项的查询显示隐藏的子报告: enter image description here

重复查询是根据家庭和测试进行分组而进行的,其中familyID和TestID的计数均至少为1: enter image description here 通常,摘要报告将通过主子关系链接到主报告,但是摘要在主报告页脚中看起来很自然,在此子报告中有错误,并且无法正确过滤。为了解决该错误,我们提供了用于过滤摘要报告的代码:

Private Sub cmdSummary_Click()
'filter summary form by using the main reports filter
Me.subfrmSummary.Report.Filter = Me.Filter
Me.subfrmSummary.Report.FilterOn = True
Me.subfrmSummary.Requery
'show/hide summary form
If Me.subfrmSummary.Report.Visible = False Then
Me.subfrmSummary.Report.Visible = True
Else
Me.subfrmSummary.Report.Visible = False
End If
End Sub

同样,要解决该错误,请不要使用主/子关系将子报表链接到主报表。而是使用代码设置过滤器。