【问题标题】:Excel [Expression.Error] We cannot apply operator < to types Text and DateExcel [Expression.Error] 我们不能将运算符 < 应用于文本和日期类型
【发布时间】:2018-02-07 11:51:06
【问题描述】:

我已经搜索了好几天了(作为一个菜鸟)。

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,但如果您使用包含 &lt;&gt; 的任何内容,则不会传递这些值

我得到的错误是

[Expression.Error] 我们不能将运算符

我要问的是什么会给我与&gt;=&lt;= 相同的结果而不会出现错误。

提前致谢,

尼尔。

【问题讨论】:

  • 您可以尝试在您的 sql 查询中转换日期。 stackoverflow.com/questions/10643379/…
  • 谢谢@Mortaliar - 是的,我试过那个,但它给了我;运行时错误“1004”:不支持命令“SELECT * FROM [storm sales (2)] WHERE ADVICEDATE >= Convert(datetime , &SellStartDate&)”。
  • 还尝试了 Convert(datetime , '&SellStartDate&'), Convert(datetime , 'SellStartDate'), Convert(date , '&SellStartDate&') 等:[DataFormat.Error] 我们不能将输入解析为日期值。

标签: vba excel


【解决方案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

【讨论】:

  • 感谢您再次回复,不胜感激。是的,我尝试使用和不使用 ' 和 & 来表示日期和日期时间。唉,都通向同一个结局,不是解析。
  • 这可能是日期如何存储在特定单元格中的问题。您是否仅对您传递的值进行了简单的选择? "选择&SellEndDate&"
  • 运行时错误 '1004':不支持命令 'SELECT &SellStartDate&' 如果这有助于 SELECT ADVICEDATE = '&SellStartDate&' 在工作表的标题行中返回 ADVICEDATE,&SellStartDate& 在下面的单元格中.
  • 我无法理解的是 = 和 != 有效,但 > 和
  • 你的 SQL 表中 ADVICEDATE 的数据类型是什么?它可能不是日期或日期时间,因此您也必须转换 ADVICEDATE。
猜你喜欢
  • 2020-04-28
  • 2016-05-05
  • 2021-12-29
  • 2018-07-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-02-11
  • 2011-08-14
相关资源
最近更新 更多