J'ai cette macro VBA dans Excel. Lorsqu'un utilisateur clique sur un bouton de la feuille, la macro renvoie les résultats à la feuille. Ce que je voudrais demander, est comment puis-je exécuter plus d'une requête (qui renvoie des résultats différents) dans la même feuille, en utilisant le code ci-dessous?Macro VBA Excel
Sub Stats2()
Workbooks("macro.xls").Sheets("Sheet3").Select
ActiveSheet.Range("A1").Select
Dim objConn As ADODB.Connection
Dim rsData As ADODB.Recordset
Dim strSQL As String
szconnect = "Provider=SQLOLEDB;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=*******88;Data Source=****"
''#Create the Connection and Recordset objects.
Set objConn = New ADODB.Connection
Set rsData = New ADODB.Recordset
On Error GoTo errHandler
''#Open the Connection and execute the stored procedure
objConn.Open szconnect
strSQL = "select * from CATEGORY_TYPE "
objConn.CommandTimeout = 0
Set rsData = objConn.Execute(strSQL)
For iCols = 0 To rsData.Fields.Count - 1
ActiveSheet.Range("A3").Select
ActiveSheet.Cells(ActiveCell.Row, ActiveCell.Column + iCols).Value = rsData.Fields(iCols).Name
ActiveSheet.Cells.Font.Name = "Arial"
ActiveSheet.Cells.Font.Size = 8
ActiveSheet.Cells.EntireColumn.AutoFit
Next
ActiveSheet.Range(ActiveSheet.Cells(ActiveCell.Row, ActiveCell.Column), ActiveSheet.Cells(ActiveCell.Row, ActiveCell.Column + rsData.Fields.Count)).Font.Bold = True
j = 2
If Not rsData.EOF Then
''#Dump the contents of the recordset onto the worksheet
On Error GoTo errHandler
ActiveSheet.Cells(ActiveCell.Row + 1, ActiveCell.Column).CopyFromRecordset rsData
If Not rsData.EOF Then
MsgBox "Data set too large for a worksheet!"
End If
rsData.Close
End If
Unload frmSQLQueryADO
Exit Sub
errHandler:
MsgBox Err.Description, vbCritical, "Error No: " & Err.Number
''#Unload frmSQLQueryADO
End Sub
vous pouvez appeler plusieurs méthodes à partir d'une méthode et chaque méthode effectue sa propre logique. Je ne suis pas sûr de comprendre cette question. – FiveTools
ce que je veux dire est dans cette section de code strSQL = "select * from ACCOUNT_CATEGORY_TYPE" comment ajouter une autre requête? Puis-je l'ajouter comme ceci strSQL = "select * from ACCOUNT_CATEGORY_TYPE" + "select * from users"? – andreas
Vous aurez besoin de clarifier le Q alors. Pourquoi voulez-vous lancer plusieurs requêtes? Est-ce que vous réalisez qu'il n'y a pas de logique dans l'ensemble de retour de votre exemple dans le commentaire? – gbianchi