2014-12-02 66 views
1

我做訪問應用我的一些查詢取決於日期和這裏是的Microsoft Access 2013日問題

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

當我更改日期格式爲「DD/MM/YYYY」在我的窗口,這個查詢不工作。當我將其恢復到默認值「mm/dd/yyy」時,它就可以工作。我嘗試將區域更改爲英國,因爲它使用「dd/mm/yyyy」格式,但它也不起作用。是否有任何設置或東西要添加到我的查詢,使其與任何格式的工作?

回答

1

您可以通過使用明確的ISO日期格式避免語言環境的問題,當你建立你的SELECT聲明:

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) 
+0

thanx很多工作 – user3574806 2014-12-02 20:42:29