我使访问应用程序的一些查询取决于日期,这里是
Set sales = CurrentDb.OpenRecordset("Select * From sales where action_date = #" & date_actions & "#")
当我将日期格式更改为" dd / mm / yyyy"在我的窗口中,这个查询不起作用。当我将它恢复为默认值时," mm / dd / yyy"这行得通。我尝试将地区更改为英国,因为它使用" dd / mm / yyyy"格式,但它也不起作用。是否有任何设置或某些内容可以添加到我的查询中以使其适用于任何格式?
答案 0 :(得分: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)