VBA中date之间的SQL查询

我有一个问题,使用Excel和Access数据库在VBA中进行SQL查询。 在mi VBA代码中,我有两个数据variables与这个内容:

DateMin = 31/07/2014 22:00:00

DateMax = 01/08/2014 06:00:00

我有一个访问数据库与许多数据与date字段。 我试图从数据库中提取数据与我的两个variables之间的date,我编码:

sql = "SELECT Date FROM Table WHERE Date BETWEEN #" & DateMin & "# AND #" & DateMax & "# 

但不起作用。 结果不正确,date不在我的两个date之间。

但是,如果我改变这个句子并编码

 sql = "SELECT Date FROM Table WHERE Date > #" & DateMin & "# 

有用! 给date比DateMin更高的数据,但我没有DateMax来阻止它。 我认为这个问题是在我的第一个代码的第二部分,因为如果我编码

 sql = "SELECT Date FROM Table WHERE Date < #" & DateMax & "# 

我没有数据! 为什么不给我比DateMax更低的数据? 因此,我认为不适用于BETWEEN句子。

对不起,我的英文,我试图解释更好,我知道。 谢谢。

您应该始终使用明确的date格式。 当你的date为00/00/0000 ,Access需要猜测是dd/mm/yyyy (英国)还是mm/dd/yyyy (美国)。

你的DateMin31/07/2014 22:00:00 DateMin )只能被解释为dd/mm/yyyy hh:nn:ss ,(31是一个无效的月份,所以它必须是一天),所以这是格式访问将使用。

但是,您的DateMax8th January 2014DateMax 01/08/2014 06:00:00 )采用美式格式 – 8th January 2014 1st August 2014而不是8th January 2014 1st August 2014

解决这个问题的最简单的方法是以ISO格式( yyyymmdd )提供date或以短字提供月份( dd mmm yyyy hh:mm:ss – 例如01 Aug 2014 06:00:00