【问题标题】:SQL in Excel VBA SyntaxExcel VBA 语法中的 SQL
【发布时间】:2012-11-10 06:12:49
【问题描述】:

我正在尝试在查询另一个 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

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

【问题讨论】:

    标签: sql excel vba select


    【解决方案1】:

    以下对你有用吗

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

    【讨论】:

      【解决方案2】:

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

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

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

      【讨论】:

        【解决方案3】:

        您可以使用SWITCH功能:

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

        【讨论】:

          猜你喜欢
          • 2015-09-24
          • 1970-01-01
          • 2021-09-10
          • 1970-01-01
          • 1970-01-01
          • 2020-03-16
          • 1970-01-01
          • 2020-12-14
          • 2021-12-21
          相关资源
          最近更新 更多