在Excel中插入SQL查询结果

我正在使用下面的SQL查询是returing多行和coloumns在结果中,当我想在excel中通过这些我不能做到这一点

码:

Set com = QCConnection.Command com.CommandText = "select RN_TESTER_NAME as 'Tester, sum(case when RN_STATUS='Passed' then cnt else 0 end), sum(case when RN_STATUS='Failed' then cnt else 0 end)from (select count(*) cnt, RN_STATUS,RN_TESTER_NAME from RUN Where RN_Execution_Date = '5/17/2017'group by RN_STATUS,RN_TESTER_NAME) as RUN group by RN_TESTER_NAME order by RN_TESTER_NAME" Set RecSet = com.Execute For Col = 0 To RecSet.ColCount - 1 Sheet4.Cells(Col + 1, 7) = RecSet.FieldValue(Col) Debug.Print Sheet4.Cells(Col + 1, 7) Next 

我得到的结果如下User1
2
3

我想以这种方式得到结果(请注意这是qc向我显示结果的方式
User1 2 3(2和3是值)
User2 1 0
User3 6 3

也试图使用,但没有帮助

 For Col = 0 To RecSet.ColCount - 1 Sheet4.Cells(Col + 1, 7) = RecSet.FieldValue(Col) Sheet4.Cells(Col + 1, 7) = RecSet.FieldValue(Col+1) Next 

编辑:请注意我无法得到该查询中的用户2和用户3的数据,但在QC中进行testing时,它显示我的数据,并有数据存在。 谢谢

不要试图在VBA中自己创build结果表,只需使用Excel中已有的内置function即可。 单击function区上的Data选项卡,然后单击From Other Sources ,然后单击From SQL Server

按照popup的向导中的步骤,您将获得您的数据。 如果要使用特定查询,只需在向导中select一个小表,然后通过在向导末尾popup的“导入数据”窗口更改数据表的连接属性:

Command Type更改为SQL ,然后将Command Textinput到Command Text

而你有你的桌子!


如果您希望能够更改返回的列或数据,则可以使用VBA更改Command Text ,并将SQL脚本的各个元素基于工作表中保存的值。

得到了解决scheme,我正在使用错误的循环。

 Set com = QCConnection.Command com.CommandText = "select RN_TESTER_NAME as 'Tester', sum(case when RN_STATUS='Passed' then cnt else 0 end), sum(case when RN_STATUS='Failed' then cnt else 0 end)from (select count(*) cnt, RN_STATUS,RN_TESTER_NAME from RUN Where RN_Execution_Date = '5/17/2017'group by RN_STATUS,RN_TESTER_NAME) as RUN group by RN_TESTER_NAME order by RN_TESTER_NAME" Debug.Print com.CommandText Set RecSet = com.Execute x = 1 Do Until RecSet.EOR Sheet4.Cells(x, 7) = RecSet.FieldValue(Col) Sheet4.Cells(x, 8) = RecSet.FieldValue(Col + 1) Sheet4.Cells(x, 9) = RecSet.FieldValue(Col + 2) RecSet.Next x = x + 1 Loop