按用户选择的日期过滤

Posted

技术标签:

【中文标题】按用户选择的日期过滤【英文标题】:Filter by date selected by user 【发布时间】:2015-05-06 15:58:08 【问题描述】:

我正在尝试根据表格在 MS Access 中创建一个报告,其中一个表格的一列包含日期。我正在查询以生成报告,但它只显示用户想要查看的月份和年份。就目前而言,它看起来像这样。它目前显示当前月份和年份的数据,但我希望此用途可选择。

SELECT o.OwnerNo, o.OwnerTitle, o.OwnerInitials, o.OwnerSurname, p.PropertyNo, p.HouseNo, p.Road, p.Postcode, t.TransactionDate, t.TransactionType, t.TransactionAmount
FROM Owners AS o, Properties AS p, Transactions AS t
WHERE (((o.OwnerNo)=[p].[OwnerNo] And (o.OwnerNo)=[Please enter the Owner Number]) AND ((t.PropertyNo)=[p].[PropertyNo]))
AND ((Month([t].[TransactionDate]))=Month([Date]))
AND ((Year([t].[TransactionDate]))=Year(now))
ORDER BY t.TransactionDate DESC;

【问题讨论】:

您的意思是“可选择”,例如在变量中定义特定日期,然后根据该变量搜索列? 假设用户只想查看 2015 年 1 月的条目,用户将月份设置为 01 并将年份设置为 2015 并显示数据。如果可以,用户将通过提示进行设置。 我不知道您将如何在 MS-Access 中执行此操作(我使用 MS SQL),但我假设您可以使用所选日期作为参数创建存储过程,然后根据AND ((Month([t].[TransactionDate]))=Month(@dtSelectedDate)) AND ((Year([t].[TransactionDate]))=Year(@dtSelectedDate)) 选择的日期 日期都在显示为 t.TransactionDate 的列上,如果这就是您的意思?我希望用户输入的日期仅用于过滤。 是的,我就是这个意思。我之前的评论应该显示你需要什么。如何调用查询?无论哪种方式,用户输入的日期都需要存储为变量,然后您可以在过滤器中使用该变量。 【参考方案1】:

尝试将Month([Date]) 替换为[Enter the month number here]Year(now)[Enter the year number here]

【讨论】:

以上是关于按用户选择的日期过滤的主要内容,如果未能解决你的问题,请参考以下文章

如何按日期过滤核心数据项?

按时间戳列过滤/选择熊猫数据帧的行

选择带有过滤器和日期的倒数第二条记录

创建一个视图/模板,允许用户选择的日期过滤,包括子对象的总和?

在请求 oracle 中按日期选择(之间)

在两个日期选择器之间过滤数据表