我无法转换/格式化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