如何更改Access日期变量格式

时间:2013-06-24 16:20:06

标签: ms-access access-vba

我的用户输入日期格式为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

2 个答案:

答案 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

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