我的用户输入日期格式为mm / dd / yyyy。我想在查询中使用此输入作为过滤器(开始和结束时间)。存储在datebase中的实际日期是使用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
答案 0 :(得分:1)
当您与包含Now()
的字段进行比较时,您可以将其更改为与DateValue(Now())
进行比较
Now() = Date()
返回False
DateValue(Now()) = Date()
返回True
答案 1 :(得分: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
这可确保查询中的开始日期和结束日期具有完整时间戳,因此查询可以正常工作!