创建用户输入报告开始和结束日期的表单

Posted

技术标签:

【中文标题】创建用户输入报告开始和结束日期的表单【英文标题】:Creating a form where user inputs start and end dates of a report 【发布时间】:2014-08-22 09:34:49 【问题描述】:

我正在开发 MS Access 2007。

我正在尝试创建一个表单,用户将在其中输入 2 个日期 - 一个开始日期和一个结束日期。我希望这些日期成为报告的界限。

例如,如果用户输入 01/03/14 和 10/03/14,我希望 Access 创建这两个日期之间数据(例如售价)的报告。

我该怎么做?

【问题讨论】:

【参考方案1】:

有几种方法可以执行此操作。

在我个人看来,最简单、最直接的方法是创建一个表单,用户将在其中输入开始/结束日期,使用一个查询来捕获报告所需的所有信息(包括您的日期参数),以及以您的查询为记录源的报告。

表格

创建一个包含 2 个文本框控件的表单:将它们命名为您喜欢的任何名称(例如 StartDateTxt、EndDateTxt)和一个按钮控件。

查询

现在,创建一个查询,检索此报告所需的所有正确信息。我知道你说的是售价,首先。

对于您想要缩小搜索范围的日期字段,您需要将它们放在WHERE 子句或QBE 中的Criteria 字段中。它可能看起来像:

[Forms]![YourFormName]![StartDateTxt] and [Forms]![YourFormName]![EndDateTxt]

注意:引用字段有时可以be tricky。

报告

接下来,您需要创建一个报告。如果您不熟悉此功能,可以使用位于以下位置的报告向导:创建 - 报告部分 - 报告向导。

您可以从第一个提示的下拉列表中选择您的查询,然后添加您想要/需要的字段。点击下一步:在这里您可以对您在报告中出现的顺序进行排序。点击下一步:然后你可以证明你的布局是合理的——如果你不熟悉这些差异,你可以玩弄它们。单击下一步:选择要应用于报告的“主题”(字体/颜色等)。单击下一步:然后您可以预览报表或修改报表的设计。 (实际上,您可以通过单击任一按钮并单击打印预览或设计视图来实现。)

如果您单击预览报告 - Access 应该会询问您基础查询所需的任何参数。

返回表格。

右键单击您的按钮控件。 -> 属性 -> 事件 -> OnClick -> 单击行最右侧的[...] 图标。选择代码生成器。

VBA

Private SubEnd Sub 之间,你会写

DoCmd.OpenReport "YourReportName"

您还可以检查以确保您的报告尚未打开。

Dim ReportName As String
ReportName = "YourReportName"

            If CurrentProject.AllReports(ReportName).IsLoaded Then
                DoCmd.Close acReport, ReportName
            End If

            DoCmd.OpenReport ReportName, acViewPreview

我希望这可以帮助您/回答您的问题。

编辑:如果有人想通过澄清或其他替代方法对此进行编辑/添加,请随意。请告诉我。

【讨论】:

这太棒了!!非常感谢你!另外,有什么方法可以在普通报表视图(如子表单或导航表单)而不是打印预览中打开报表? @rob 我不确定你在问什么。有 3 种查看报告的方法。 1) 设计视图 2) 布局视图和 3) 打印预览。在DoCmd.OpenReport 方法的OpenArgs 上,您可以将acViewPreview 更改为acViewNormal。 Here is more detail. 问题是每次我按下 RunReport 按钮时,它都会打印出来——这让办公室秘书很烦恼。我不希望这种情况发生。 另外如何在导航表单中定位导航表单中的文本框? @rob - 您的第一条评论 - 将 acViewPreview/Normal 更改为 acViewReport。看看这是否能解决问题。您的第二条评论 - 请参阅我的示例和我在答案中提供的链接。您需要使用正确的命名约定来识别您尝试引用的表单/表单控件。

以上是关于创建用户输入报告开始和结束日期的表单的主要内容,如果未能解决你的问题,请参考以下文章

在 Access 报告中使用查询参数

保存 IEnumerable 模型

Angular Material matDatepicker 和 Textarea 作为表单的一部分

sql 选择命令,从日期到日期

获取报告后通过 jquery 日期选择器保留输入值

时间戳和表单输入日期/时间