我在Access VBA中使用DATE语句编写了一些代码。在这个月初之前,它一直运行得很好,但是现在我看到Date已经自动将格式从dd/mm/yyyy更改为mm/dd/yyyy。还有没有人遇到过同样的问题?
发布于 2008-10-09 10:45:16
无论区域设置如何,Access SQL的默认日期格式都是mm/dd/yyyy。如果你使用了一个无效的日期格式,它会“有帮助地”为你把它转换成一个有效的日期。
因此,如果您使用'30/09/2008',它将识别您使用的是dd/mm/yyyy,并对其进行适当的转换。但是,像'10/01/2008‘这样的值从一开始就是一个有效的mm/dd/yyyy值,所以它不会被转换,也不会被错误地存储,以防你实际上是指dd/mm/yyyy....
解决方案是始终将日期值转换为mm/dd/yyyy字符串,然后再在Access SQL语句中使用它们。在这里您必须小心一点,因为在非美国地区使用VBA日期格式掩码可能不会完全像您期望的那样工作(例如,将"mm/dd/yyyy“解释为”本地化的短日期格式“),因此请使用特定的Access/VBA版本仔细测试。
发布于 2008-10-10 15:07:19
Access要求日期明确。通常建议您使用yyyy/mm/dd,而不考虑语言环境。例如:
strSQL="SELECT SomeDate FROM tblT WHERE SomeDate=#" & Format(DateVar, "yyyy/mm/dd") & "#"发布于 2012-02-24 20:57:16
尝试以下代码:
stLinkCriteria = "[ProjectDate] Between #" & Format(CDate(Me![txtDateFrom]), "mm/dd/yyyy") & "# And #" & Format(CDate(Me![txtDateTo]), "mm/dd/yyyy") & "#"这对我很管用。
https://stackoverflow.com/questions/186655
复制相似问题