2014-10-08 44 views
0

我有一個項目,添加和刪除日期,加款有以下代碼:命令刪除VBA中不工作

Set dbs = CurrentDb 
dbs.Execute " INSERT INTO TMP " _ 
E " (diaMes) VALUES (" _ 
& "' " & Tmp7 & "') " 

其中tmp7是最新型像DD-MM-YYYY和完美的作品

刪除如下代碼:

Set dbs = CurrentDb 
dbs.Execute " DELETE * FROM TMP " _ 
And " where diaMes = # " ​​& tmp7 & " # " ; 

的問題是,只刪除當天超過12個,我明白了,如果一天等於小於12被解釋爲MM-DD-YYYY

tmp7是一個字符串連接字符串。

如何強制SQL Pass dd-mm-yyyy?

+0

'CDate'將您的字符串轉換成日期,假設它是在可以converted.'Format的格式(YourField,「短日期」)'將日期轉換爲DD/MM/yyyy格式。 – 2014-10-08 13:19:43

回答

0

訪問使用美國日期格式,所以即使您通過DD/MM/YYYY,它也會認爲MM/DD/YYYY。正如你清楚地看到12歲以上的日期是正確理解的。 2014年10月13日的例子將被理解爲2014年10月13日。但2014年10月7日我們眼中的是2014年10月7日,但對Access非常敏感,因此將其解釋爲2014年7月10日。

因此,您的麻煩可能是通過正確格式化避免。嘗試使用此,

Set dbs = CurrentDb 
dbs.Execute "DELETE * FROM TMP WHERE diaMes = " & _ 
      Format(tmp7, "\#mm\/dd\/yyyy\#") 
+0

你好,我明白分辨率,但給錯誤(預期:表達) – SaPires 2014-10-08 13:45:14

+0

OOPS!對不起,我似乎放錯了雙引號。你能請參閱編輯的代碼嗎? – PaulFrancis 2014-10-08 13:50:10

+0

很多,我不知道Access有美國日期格式... – SaPires 2014-10-08 13:56:14