【问题标题】:how to change Access date variable's format如何更改访问日期变量的格式
【发布时间】:2013-06-24 16:20:05
【问题描述】:

我有一个用户输入的 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

【问题讨论】:

    标签: ms-access vba


    【解决方案1】:

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

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

    【讨论】:

    • 谢谢,我更近了一步,但还没有。我正在编辑上面的帖子以添加我正在使用的代码。我不知道如何准确地使用您的答案来解决我的问题...
    【解决方案2】:

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

    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
    

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-01-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-02-18
      • 1970-01-01
      • 2015-01-27
      • 1970-01-01
      相关资源
      最近更新 更多