Excel中的SQL VBA语法

我正在尝试编写一个CASE WHEN然后ELSE END等价于在查询另一个Excel电子表格的VBA ODBC连接。 我已经尝试了一切,我只能得到这个成功查询电子表格:

.CommandText = "SELECT Data$.CALC_POST_PERIOD='201211' FROM Data$ Data$ 

结果是当条件为真时返回-1 ,否则返回0

我如何定制这个?

我正在尝试做这样的事情

 SELECT CASE WHEN Data$.CALC_POST_PERIOD='201211' THEN 'CURR_MONTH' ELSE NULL END 

但这给了我一个错误 – 不匹配

以下是否适合你?

 "SELECT [Items], " _ "IFF([CALC_POST_PERIOD] = '201211' , 'CURR_MONTH' , '') as NewColumn FROM [Data$]" 

运行查询后,只需testingTRUE或FALSE。

 If rs.Fields(0).Value Then sReturn = "CURR_MONTH" Else sReturn = vbNullString End If 

如果是函数,则将sReturn分配给函数名称。 其他部分不是必须的,只要sReturn之前没有被设置为别的东西,但为了清楚起见,我将其包括在内。 还假定你的CommandText是一个名为'rs'的logging集variables。

您可以使用SWITCHfunction:

 SELECT SWITCH(Data$.CALC_POST_PERIOD='201211', 'CURR_MONTH', TRUE, NULL)