У меня этот макрос VBA в Excel. Когда пользователь нажимает кнопку на листе, макрос возвращает результаты на лист. Что я хотел бы спросить, как я могу запустить более одного запроса (который возвращает разные результаты) на том же листе, используя приведенный ниже код?VBA excel macro
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
вы можете вызвать несколько методов из одного метода, и каждый метод выполняет свою собственную логику. Я не уверен, что понимаю этот вопрос. – FiveTools
что я имею в виду в этом разделе кода strSQL = "select * from ACCOUNT_CATEGORY_TYPE" Как добавить еще один запрос? могу ли я добавить его так: strSQL = "select * from ACCOUNT_CATEGORY_TYPE" + "select * from users"? – andreas
Затем вам нужно уточнить Q. Почему вы хотите запускать многократные запросы? Вы понимаете, что нет логики в возвращаемом наборе вашего примера в комментарии? – gbianchi