2015-07-19 55 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