按用户选择的日期过滤
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]
【讨论】:
以上是关于按用户选择的日期过滤的主要内容,如果未能解决你的问题,请参考以下文章