2015-07-19 72 views
1

我想查询日期的Excel列(例如,这是7月,然后只检索七月日期从列)我试图宣布当前月份和上个月,但仍然无法检索数据。我试图格式化查询表作为(m/d/yyyy)多种格式来匹配查询,但仍然没有运气。请在这里大赞赏的任何帮助是以下代码Excel ADODB查询日期

Dim cnStr As String 
Dim rs As ADODB.Recordset 
Dim query As String 
Dim var1 
Dim var2 
Dim fileName As String 
Dim CurrMonth As String, PrevMonth As String 
CurrMonth = Format$(Date, "m/d/yyyy") 
PrevMonth = Format$(Date - Day(Date), "m/d/yyyy") 
fileName = "**********\DB1.xlsm" 

    cnStr = "Provider=Microsoft.ACE.OLEDB.12.0;" & _ 
      "Data Source=" & fileName & ";" & _ 
      "Extended Properties=Excel 12.0" 

query = "SELECT * FROM [test1$A:B] WHERE [test]>'" & PrevMonth & "' AND [test]<'" & CurrMonth & "'" 
+0

这个问题有一个答案,它提供了一些关于excel如何存储日期的信息。它可能有帮助。 http://stackoverflow.com/questions/31492086/adodb-excel-database-date-format-issue/31492716#31492716 – MatthewD

回答

1

尝试一个条件运算符。并使用磅符号。

BETWEEN #7/1/2008# And #7/31/2008# 

query = "SELECT * FROM [test1$A:B] WHERE [test] BETWEEN #" & PrevMonth & "# And #" & CurrMonth & "#" 
+0

这样做的伎俩,我发现工作的另一种方式是格式化查询工作表列自定义文本,然后将我的日历控件设置为文本格式(7-17-2015)。我喜欢MatthewD的方式更好,谢谢大量的,2天的试验和错误,应该在2天前发布然后试验和错误..再次感谢 – INOH

+0

很高兴我们得到了它。总有很多方法可以做到这一点。继续编码。 – MatthewD