我一直在寻找好几天(作为一个总菜鸟)。
Private Sub CommandButton1_Click()
Dim SellStartDate As Date 'Declare the SellStartDate as Date
Dim SellEndDate As Date 'Declare the SellEndDate as Date
SellStartDate = Sheets("Summary").Range("C3").Value 'Pass value from
cell B3 to SellStartDate variable
SellEndDate = Sheets("Summary").Range("C4").Value 'Pass value from
cell B4 to SellEndDate variable
'Pass the Parameters values to the Stored Procedure used in the Data
Connection
With ActiveWorkbook.Connections("Query - storm sales
(2)").OLEDBConnection
.CommandText = "SELECT * FROM [storm sales (2)] WHERE ADVICEDATE >=
'&SellStartDate&' AND ADVICEDATE <= '&SellEndDate&'"
ActiveWorkbook.Connections("Query - storm sales (2)").Refresh
End With
End Sub
上述代码基于互联网上其他地方找到的项目。
如果您使用=
或!=
,则会将值传递给CommandText,但如果您使用包含<
或>
我得到的错误是
[Expression.Error]我们无法应用运算符&lt;输入文字和日期
我要问的是,如果没有错误,>=
和<=
会得到与我相同的结果。
提前致谢,
尼尔。
答案 0 :(得分:-1)
您是否在查询中尝试使用撇号进行转换?
Convert(datetime , &SellStartDate&)
Convert(datetime ,' &SellStartDate& ')
这是SQL使用和不使用撇号进行转换的方式。
Convert(datetime, '2010-04-01' ) -> 2010-04-01 00:00:00.000
Convert(datetime, 2010-04-01 ) -> 1905-06-29 00:00:00.000