У меня есть хранимая процедура SQL Server, которую я пытаюсь выполнить из Excel через некоторый код VBA. Однако хранимая процедура имеет два выхода (см. Ниже).Выполнение хранимой процедуры SQL Server в VBA с несколькими выходами
Мой набор записей только потянул первую таблицу (добавлено 0 сообщений об ошибках ...), тогда как я хочу вытащить вторую таблицу.
Изображение здесь: http://i.stack.imgur.com/LxyLi.png
Вот мой код, составленный из других источников я нашел здесь:
Sub RefreshBarcodes()
Dim Database As String
Dim con As ADODB.Connection
Dim strconn As String
Dim SQLServer As String
Dim Session As String
Dim strSQLCommandOne As String
Application.ScreenUpdating = False
Worksheets("Master").Activate
Database = Worksheets("Master").Cells(5, "H").Value
SQLServer = Worksheets("Master").Cells(4, "H").Value
Session = Worksheets("Master").Cells(6, "H").Value
'Connect to Database
Set con = New ADODB.Connection
strconn = "Provider=sqloledb; Data Source=" & SQLServer & ";Initial Catalog = " & _
Database & "; INTEGRATED SECURITY=SSPI; "
con.Open strconn
'Set SQL Commands
strSQLCommandOne = "set nocount on; exec spGetSessionSourceCounts 'HNW-CLU-001-024_01_0005'"
'Open Recordset
Dim rs As ADODB.Recordset
Set rs = New ADODB.Recordset
'Execute and copy to Excel
rs.Open strSQLCommandOne, strconn
rs.MoveFirst
Worksheets("Session").Activate
Cells(1, 1).Select
ActiveCell.CopyFromRecordset rs
rs.Close
Worksheets("Master").Activate
Cells(6, "H").Value = "Session updated"
con.Close
Application.ScreenUpdating = True
End Sub
Excel выходные: http://i.stack.imgur.com/b7i3B.png
Я хотел бы быть в состоянии потянуть в первый (сообщение об ошибке) и второй результат (информация сессии), но в основном требуется только вторая таблица. Большое спасибо заранее!
вам нужно написать лучше хранимую процедуру для захвата ошибки с выходными Params. – cyboashu
Возможно, вам нужно: https://msdn.microsoft.com/en-us/library/windows/desktop/ms677539(v=vs.85).aspx (никогда не делал этого сам) –
Еще одна ссылка, которая может быть полезна для вы: https://support.microsoft.com/en-us/kb/245179 –