如何创建包含报表筛选选项的弹出窗口

时间:2016-03-18 13:11:28

标签: ms-access popup ms-access-2010 filtering

MS Access新手,几乎没有VBA / SQL经验。我创建了一个包含表格,查询,表单和报告的数据库,除了我选择的一些选项之外,它们都能很好地协同工作。

更改为以下方法的目的:目前,我已创建了三种主要报告类型,每种报告都有不同的过滤器选项。 AKA:有一个SEPARATE REPORT显示每个不同的过滤器选项,即使报告包含相同的根信息。如果有一个报告允许用户过滤/分组/排序多种方式来简化报告流程,那就太棒了。

我希望有一个'过滤器' “报告”表单上的按钮,通过组合框打开一个包含过滤器选项的弹出窗口。为了澄清 - 弹出窗体已经创建,我可以轻松添加“过滤选项”。按钮到打开弹出窗口的报告表单。

弹出窗体的组合框包含与报表中的主表上的字段名称相关的控件来源,以及“关闭”按钮'应用过滤器&# 39;和,'清除过滤器'。

我需要帮助:获取组合框以提供选项以及获取“应用过滤器”#39;按钮实际工作。过滤器选项需要从其中一个主表中的字段中提取,不允许任何文本输入。

'应用过滤器'按钮需要执行以下操作:

  • 每个组合框选择应用过滤器。用户可以选择将过滤器留空。
  • 为用户提供已应用过滤器的报告预览

2 个答案:

答案 0 :(得分:0)

您真正想要做的是关闭报告并使用“过滤器”和“预览”选项重新打开报告。查看DoCmd.OpenReport。您必须根据用户选择的内容将过滤器转换为SQL语言过滤器,但其他一切都非常简单。

答案 1 :(得分:0)

所以我的工作方式是在表单查询中构建一个条件,并在弹出窗体的组合框周围加一个参数 ![QueryCriteria

然后以你的形式vba我写道:

Private Sub Filter1_AfterUpdate()
     DoCmd.Close acReport, "Rpt2_FWItemsDue_AllSubs" 
     DoCmd.OpenReport "Rpt2_FWItemsDue_AllSubs", A_PREVIEW
     DoCmd.Maximize  
End Sub

假设控件名称为“Filter1”,表单名称为“Rpt2_FWItemsDue_AllSubs”,“Filter1”过滤报表中的“FW_SubName”。