Insertion du résultat de la requête SQL dans Excel

J'utilise la requête SQL ci-dessous qui retient plusieurs lignes et colonnes dans le résultat, quand j'essaye de passer ceux dans Excel je ne suis pas capable de le faire

Code:

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 

Je reçois le résultat en tant que ci-dessous User1
2
3

Je veux le résultat de cette manière (notez svp ceci est la manière dont qc me montre le résultat
Utilisateur1 2 3 (2 et 3 sont les valeurs)
Utilisateur2 1 0
Utilisateur3 6 3

Aussi essayé d'utiliser, mais pas d'aide

 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 

EDIT: S'il vous plaît noter que je ne suis pas en mesure d'get datatables User2 et User3 dans cette requête, mais lorsqu'il est testé en QC, il montre datatables et il y a datatables présentes. Merci

N'essayez pas de créer vous-même votre table de résultats dans VBA , utilisez simplement la fonctionnalité embeddede déjà présente dans Excel. Cliquez sur l'onglet Data sur le ruban, puis sur From Other Sources , puis sur From SQL Server :

Suivez les étapes de l'assistant qui s'affiche et vous aurez vos données. Si vous souhaitez utiliser une requête spécifique, select une petite table dans l'assistant, puis modifiez les propriétés de connection de la table de données via la window Importer des données qui apparaît à la fin de l'assistant:

Changez le Command Type en SQL , puis entrez votre script dans le Command Text :

Et vous avez votre table!


Si vous souhaitez pouvoir modifier les colonnes ou datatables renvoyées, vous pouvez modifier le Command Text aide de VBA et baser les différents éléments du script SQL sur les valeurs conservées dans votre feuille de calcul.

J'ai eu la solution, j'utilisais une mauvaise boucle.

 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