打开DAO.Recordset时,我的交叉表查询无效

时间:2018-05-07 15:46:25

标签: sql sql-server vba excel-vba excel

我有一个非常简单的查询,只是在MSACCESS上测试它并且它可以工作,当它在Excel VBA中使用它时会崩溃并出现错误。 “每年PV附近的语法不正确。我可能会遗漏一些明显的东西。这里是VBA代码:

StrQuery = "TRANSFORM Sum([Yearly Pv].[Original_Print_volume]) AS SumOfPrintvolume " & _
                "SELECT [Yearly Pv].[Press1] " & _
                "FROM [Yearly Pv] " & _
                "WHERE ((([Yearly Pv].[Year]) = 2016 Or ([Yearly Pv].[Year]) = 2017)) " & _
                "GROUP BY [Yearly Pv].[Press1] " & _
                "PIVOT [Yearly Pv].[Year];"
rst.Open StrQuery, cnn

该表非常简单,它包含3列: 按1,Original_Print_volume,年。

示例行:

+---------+----------------------+------+
| Press1  | Monthly print volume | Year |
+---------+----------------------+------+
| ABCTEST |                10000 | 2016 |
| ABCTEST |                15000 | 2017 |
| DEFTEST |                 5000 | 2016 |
| DEFTEST |                 7500 | 2017 |
+---------+----------------------+------+

我希望这成为:

+---------+-------+-------+
| Press1  | 2016  | 2017  |
+---------+-------+-------+
| ABCTEST | 10000 | 15000 |
| DEFTEST |  5000 |  7500 |
+---------+-------+-------+

ABCTEST是动态的。这些年我可以硬编码。

修改

rst.Open strquery,cnn适用于我所有其他查询。它是与SQL Server数据库的简单连接。

0 个答案:

没有答案