无法将交叉表SQL转换为VBA

时间:2015-11-17 16:22:34

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

我无法转换/格式化VBA的交叉表查询SQL。我收到了一个语法错误:期望在请求开始和' TRANSFORM'之间出现问题。关键字。

我知道使用TRANSFORM命令启动SQL很可能是个问题,但在搜索之后我还没有找到解决方案。

我更改了" strSQl" to" strCrosstabQuery,但仍然返回相同的错误。

非常感谢任何协助。

请参阅下面的我目前的VBA。

Sub NewWorkRegional()

Sheets("Create Raw").Select
Range("A2:O" & Cells(Rows.Count, "A").End(xlUp).Row).Clear

strConn = "Provider=MSDASQL.1;Password=XXXXXXXX;Persist Security Info=True;User ID=KRATDAN;Data Source=DWPROD"
Set cn = New ADODB.Connection
cn.Open strConn
cn.CommandTimeout = 0

Dim strCrosstabQuery As String

 strCrosstabQuery = "TRANSFORM Count(DNS_SBX_rpt_v_dm_all_work_orders.work_order_number) AS CountOfwork_order_number" & _
"SELECT DNS_SBX_rpt_v_dm_all_work_orders.sub_type_level_2" & _
"FROM DNS_SBX_rpt_v_dm_all_work_orders" & _
"WHERE (((DNS_SBX_rpt_v_dm_all_work_orders.reporting_region)='pacific') AND ((DNS_SBX_rpt_v_dm_all_work_orders.create_date) Between Date()-16 And Date()-3))" & _
"GROUP BY DNS_SBX_rpt_v_dm_all_work_orders.sub_type_level_2" & _
"PIVOT [create_date]+7-Weekday([create_date],7);"


'updated line above

Set rs = New ADODB.Recordset
rs.Open strCrosstabQuery, cn

Sheets("Results").Range("B92").CopyFromRecordset rs

End Sub

0 个答案:

没有答案