2016-04-28 83 views
2

如何在我的where子句中使用兩個日期。編譯器不斷給我提供有關語法的錯誤。我需要什麼,在這句法改變用我的where子句在哪裏使用Excel VBA

Sub Get_Data() 
Dim cn As Object 
Dim rs As Object 
Dim strFile As String 
Dim strCon As String 
Dim strSQL, strInput As String 

strFile = "A:\Test\de.accdb" 

strCon = "Provider=Microsoft.ACE.OLEDB.12.0; Data Source=" & strFile 

Set cn = CreateObject("ADODB.Connection") 
cn.Open strCon 

d1 = InputBox("Input Start Date") 
d2 = InputBox("Input End Date") 

strSQL = "SELECT NAME, Location From db 1WHERE orderdate between ""'d1'"" AND ""'d2'"" Order By Location ASC;" 

cn.Execute strSQL 

cn.Close 
Set cn = Nothing 

End Sub 
+0

字前有一個1哪裏,你需要追加變量D1和D2使用&符號的字符串。 – ManoDestra

回答

0

看起來好像你忘了在查詢中FROM功能,你需要分離出D1和D2與ambersands,試試這個:

strSQL = "SELECT NAME, Location FROM [name of table] WHERE orderdate between '" & d1 & "' AND '" & d2 & "'" 
+0

對不起,我從我的語法中得到了答案。這給我一個轉義錯誤轉換錯誤 –

2
strSQL = "SELECT NAME, Location From db WHERE orderdate between '" & d1 & "' AND '" & d2 & "' Order By Location ASC;" 
+0

好心地標記爲解決方案,如果上述工作 –