创建用户输入报告开始和结束日期的表单
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 Sub
和End 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
。看看这是否能解决问题。您的第二条评论 - 请参阅我的示例和我在答案中提供的链接。您需要使用正确的命名约定来识别您尝试引用的表单/表单控件。以上是关于创建用户输入报告开始和结束日期的表单的主要内容,如果未能解决你的问题,请参考以下文章