1

我正在尝试在查询另一个 excel 电子表格的 VBA ODBC 连接中编写一个 CASE WHEN THEN ELSE END 等效项。我已经尝试了一切,我只能让这个成功查询电子表格:

.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

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

4

3 回答 3

0

运行查询后只需测试 TRUE 或 FALSE。

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

如果它是一个函数,则将 sReturn 分配给函数名称。只要之前没有将 sReturn 设置为其他值,Else 部分就不是必需的,但为了清楚起见,我将其包含在此处。还假设您的 CommandText 用于名为“rs”的记录集变量。

于 2012-11-23T00:28:48.847 回答
0

您可以使用 SWITCH 功能:

SELECT SWITCH(Data$.CALC_POST_PERIOD='201211', 'CURR_MONTH', TRUE, NULL)
于 2013-03-05T10:42:52.867 回答
0

以下内容对您有用吗

"SELECT [Items], " _
"IFF([CALC_POST_PERIOD] = '201211' , 'CURR_MONTH' , '') as NewColumn 
FROM [Data$]"
于 2012-11-21T22:08:16.657 回答