2016-04-28 96 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

好心地标记为解决方案,如果上述工作 –