0

我有一个用户输入的 mm/dd/yyyy 日期格式。我想在查询中使用此输入作为过滤器(开始和结束时间)。存储在数据库中的实际日期是用 now() 设置的,因此它的格式为 mm/dd/yyyy XX:XX:XX AM/PM。

如何在过滤器中使用这些输入的日期?(当我尝试 mm/dd/yyyy 输入时,我返回了一个没有值的报告,但是如果我添加了时间,它会起作用,但我不希望用户必须输入时间。)

现在我正在使用简单的输入框进行输入。我真的很想创建一个日历弹出窗口(我在网上看到教程)。如果我改用日历,解决方案会改变吗?

编辑:这是我的代码,以便更容易理解问题。

Dim startDate As Date
Dim endDate As Date

startDateString = InputBox("Enter a start date.")
endDateString = InputBox("Please enter and end date.")

Reports![rpt_Inventory_Update].RecordSource = "MyQuery"
Reports![rpt_Inventory_Update].Filter = "Modification_Date BETWEEN #" & startDate & "# AND #" & endDate & "#"
Reports![rpt_Inventory_Update].FilterOn = True
4

2 回答 2

1

当您与字段进行比较时Now(),您可以将其更改为与DateValue(Now())

Now() = Date()返回 False
DateValue(Now()) = Date()返回 True

于 2013-06-24T16:53:08.600 回答
0

我想到了。这是我的新代码:

startTime = TimeValue("00:00:00")
endTime = TimeValue("23:59:59") 
startDate = startDate + startTime
endDate = endDate + endTime

Reports![rpt_Inventory_Update].RecordSource = "MyQuery"
Reports![rpt_Inventory_Update].Filter = "Modification_Date BETWEEN #" & startDate & "# AND #" & endDate & "#"
Reports![rpt_Inventory_Update].FilterOn = True

这可以确保查询中的开始日期和结束日期具有完整的时间戳,因此查询可以正常工作!

于 2013-06-24T20:41:14.890 回答