【问题标题】:How to create pop-up window containing filter options for a report如何为报表创建包含过滤器选项的弹出窗口
【发布时间】:2019-02-01 22:16:07
【问题描述】:

这里是 MS Access 新手,几乎没有 VBA/SQL 经验。我创建了一个包含表、查询、表单和报告的数据库,除了一些我坚持的选择之外,所有这些都可以很好地协同工作。

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

我想在我的报告表单上有一个“过滤器”按钮,它会打开一个弹出窗口,其中包含通过组合框的过滤器选项。澄清一下 - 弹出式表单已创建,我可以轻松地将“过滤选项”按钮添加到打开弹出式窗口的报告表单中。

弹出式表单具有组合框,其中包含与报告从中提取的主表上的字段名称相关的控制源,以及用于“关闭”、“应用过滤器”和“清除过滤器”的按钮。

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

“应用过滤器”按钮需要做以下事情:

  • 为每个组合框选择应用过滤器。需要允许用户选择将过滤器留空。
  • 为用户提供带有应用过滤器的报告预览

【问题讨论】:

  • 欢迎来到 Stack Overflow。我们是一群学生和专业人士,他们在具体问题和问题上互相帮助。你问的要复杂得多。请返回具体问题,我们会尽力而为。例如,“我在 TableY 中有 FieldX,我想将其用作组合框的源。这是我尝试过的代码,但它不起作用。有人可以帮忙吗?”。这里没有人会为您完成整个项目,实际上有一个“投票结束”的原因,您的问题可能会被关闭。

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


【解决方案1】:

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

【讨论】:

  • 我在这里可能是一个失败的原因,但是您如何将过滤器转换为SQL?
  • 您创建一个字符串,就像它是 SQL 中的 WHERE 子句一样,并将其传递给 OpenReport 函数。这确实意味着您至少需要 SQL 语言和 Access VBA 的基本知识。
  • 可能在报表的 SQL 中与在设计视图的记录源中一样,选择类型为报表,您可以将其他表单的下拉选择添加为 SQL 的条件
【解决方案2】:

所以我的工作方式是在表单查询中构建一个标准,并在弹出表单的组合框周围设置一个参数

然后在你的表单 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”。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-28
    • 1970-01-01
    • 2014-05-26
    • 1970-01-01
    • 1970-01-01
    • 2021-10-07
    相关资源
    最近更新 更多