我有一个非常简单的查询,只是在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数据库的简单连接。