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

时间:2014-08-22 09:34:49

标签: sql forms ms-access module report

我正在研究MS Access 2007。

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

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

我该怎么做?

1 个答案:

答案 0 :(得分:2)

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

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

表格

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

查询

现在,创建一个查询,检索此报告所需的所有正确信息。对于初学者,我知道你说卖价。

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

[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

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

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