【问题标题】: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)