Как передать содержимое ячейки Excel в хранимую процедуру (SQL-запрос)?
Собственно задача довольно "простая", но т.к. с vb-скриптами плохо знаком, то прошу помощи.
В книге Экселя есть 2 листа. На первом листе указываются параметры, на второй лист выводится результат выполнения хранимой процедуры с SQL-сервера.
Как сделать, чтобы по нажатию кнопки на листе Эксель (ячейки и пр.) отрабатывал запрос на выполнение хранимой процедуры (именно ХП, прямой sql-запрос данных невозможен), скрипт смотрел, что указано на первом листе в ячейке A1 и указанное значение передавал в вызов процедуры?
Текст может содержать пробелы, поэтому введеное значение нужно передавать в кавычках param1='value 1'
sql сервер не указан, поэтому на примере Oracle. Строку подключения можешь взять тут connectionstrings.com
Private Sub CommandButton1_Click()
'Строка подключения
cConn = "Driver={Oracle in OraClient11g_home1};Dbq=<SID>;Uid=<User>;Pwd=<Password>;"
Dim Cn As ADODB.Connection
Dim Cm As ADODB.Command
Set Cn = New ADODB.Connection
Cn.Open cConn
Set Cm = New ADODB.Command
Cm.ActiveConnection = Cn
Cm.CommandText = " begin MyStorageProc('" + Range("A1") + "') end;"
Cm.CommandType = adCmdText
Cm.Execute
End Sub
MSSQL.
Т.е. в вб-скрипте я обязательно должен передавать реквизиты для подключения? А можно ли использовать существующее подключение, которое добавлял изначально (см. скрин)
И дальше в инструкциях я явно прописывал exec prc_name @param1='value1'
Private Sub CommandButton1_Click()
Dim Cn As ADODB.Connection
Dim Cm As ADODB.Command
Set Cn = ActiveWorkbook.Connections(1) ' <<<
Cn.Open
Set Cm = New ADODB.Command
Cm.ActiveConnection = Cn
Cm.CommandText = " begin MyStorageProc('" + Range("A1") + "') end;"
Cm.CommandType = adCmdText
Cm.Execute
End Sub