Excel [Expression.Error] 我们不能将运算符 < 应用于文本和日期类型

Posted

技术标签:

【中文标题】Excel [Expression.Error] 我们不能将运算符 < 应用于文本和日期类型【英文标题】:Excel [Expression.Error] We cannot apply operator < to types Text and Date 【发布时间】: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 查询中转换日期。 ***.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] 我们不能将输入解析为日期值。 【参考方案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。

以上是关于Excel [Expression.Error] 我们不能将运算符 < 应用于文本和日期类型的主要内容,如果未能解决你的问题,请参考以下文章

Excel Power Query:将参数传递给 oDataFeed URL 会引发错误

无法将 '(<expression error>)' 从 '<brace-enclosed initializer list>' 转换为 std::unique_ptr<

查询不想完成的网址

使用 Power Query 通过 REST API 查询分页 XML

返回值以记录时出现表达式错误

如何在 powerBi 的高级编辑器中编写 Snowflake SELECT 语句查询