命令DELETE在vba中不起作用

时间:2014-10-08 13:13:24

标签: sql ms-access access-vba

我有一个添加和删除日期的项目,添加段落有以下代码:

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

其中tmp7是日期类型,如dd-mm-yyyy,效果很好

delete是以下代码:

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

问题是只删除当天超过12天,我明白,如果天等于小于12被解释为mm-dd-yyyy

tmp7是字符串连接字符串。

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

1 个答案:

答案 0 :(得分:0)

Access使用美国日期格式,因此即使您传递DD / MM / YYYY,也会认为是MM / DD / YYYY。正如您清楚地看到12岁以上的日期被正确理解。示例13/10/2014将被理解为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\#")