【问题标题】:Microsoft Access 2013 date issueMicrosoft Access 2013 日期问题
【发布时间】:2015-01-30 23:31:10
【问题描述】:

我使访问应用程序的一些查询取决于日期,这里是

Set sales = CurrentDb.OpenRecordset("Select *  From sales where action_date = #" & date_actions & "#")

当我在 Windows 中将日期格式更改为“dd/mm/yyyy”时,此查询不起作用。当我将其恢复为默认值“mm/dd/yyy”时,它可以工作。我尝试将地区更改为英国,因为它使用“dd/mm/yyyy”格式,但它也不起作用。是否有任何设置或内容要添加到我的查询中以使其适用于任何格式?

【问题讨论】:

    标签: ms-access vba ms-access-2010 ms-access-2013


    【解决方案1】:

    您可以在构建SELECT 语句时使用明确的 ISO 日期格式来避免语言环境问题:

    Dim strSelect As String
    strSelect = "Select * From sales where action_date = #" & _
        Format(date_actions, "yyyy-m-d") & "#"
    Set sales = CurrentDb.OpenRecordset(strSelect)
    

    另一种完全避免格式问题的方法是使用参数查询:

    Dim db As DAO.Database
    Dim qdf As DAO.QueryDef
    Dim sales As DAO.Recordset
    Dim strSelect As String
    strSelect = "Select * From sales where action_date = [which_date]"
    Set db = CurrentDb
    Set qdf = db.CreateQueryDef(vbNullString, strSelect)
    qdf.Parameters("which_date") = date_actions
    Set sales = qdf.OpenRecordset(strSelect)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多