|
Вызов хранимой процедуры с помощью VBA
|
|||
---|---|---|---|
#18+
Есть Excel файл, в котором по выбору элемента списка и нажатии кнопки должна вызваться процедура, хранимая на MySQL (2005). Процедура возвращает таблицу значений. Т.е. выбрали значение из списка -> нажали на кпопку -> получили таблицу. Процедура выглядит так: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29.
Как вызвать ее из Excel? Модератор: Тема перенесена из форума "Microsoft SQL Server". ... |
|||
:
Нравится:
Не нравится:
|
|||
04.10.2012, 16:13 |
|
Вызов хранимой процедуры с помощью VBA
|
|||
---|---|---|---|
#18+
medea_bless, используя ADO, к примеру. http://www.sql.ru/forum/actualthread.aspx?tid=943541 ... |
|||
:
Нравится:
Не нравится:
|
|||
04.10.2012, 16:42 |
|
Вызов хранимой процедуры с помощью VBA
|
|||
---|---|---|---|
#18+
Спасибо, но в моем варианте ошибка синтаксиса. Код вышел следующий: Sub Get_Extended_Report() submitter = Cells(1, 1).Value Set MyCommand = New ADODB.Command With MyCommand .ActiveConnection = "GetFullSummary" .CommandText = "dbo.GetReportByUserName" .CommandType = adCmdStoredProc .NamedParameters = True .Parameters.Append. CreateParameter ("@submitter", adVarChar, adParamInput, submitter) .Execute End With End Sub ... |
|||
:
Нравится:
Не нравится:
|
|||
08.10.2012, 12:46 |
|
Вызов хранимой процедуры с помощью VBA
|
|||
---|---|---|---|
#18+
точка после Append в следующий раз пишите строку, на которой ошибка синтаксиса и правильно оформляйте код - FAQ ... |
|||
:
Нравится:
Не нравится:
|
|||
08.10.2012, 12:57 |
|
Вызов хранимой процедуры с помощью VBA
|
|||
---|---|---|---|
#18+
Спасибо, буду знать. При компиляции теперь ошибка "invalid outside procedure", хотя в студии процедура выполняется верно. В чем может быть проблема? Код: Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
где: submitter - значение переменной, которую нужно передать в процедуру dbo.GetReportByUserName - имя процедуры. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.10.2012, 13:46 |
|
Вызов хранимой процедуры с помощью VBA
|
|||
---|---|---|---|
#18+
medea_bless, что возвращает ваша хранимка ? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.10.2012, 14:36 |
|
Вызов хранимой процедуры с помощью VBA
|
|||
---|---|---|---|
#18+
medea_bless"invalid outside procedure"это не о процедуре на SQL сервере. Ваш код требуется оформить в виде процедуры, а не просто так на листе писать Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17.
... |
|||
:
Нравится:
Не нравится:
|
|||
08.10.2012, 14:50 |
|
Вызов хранимой процедуры с помощью VBA
|
|||
---|---|---|---|
#18+
Процедура возвращает таблицу записей по параметру submitter. Другими словами - перечень детальных отчетов, заполненных сабмиттером. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.10.2012, 15:12 |
|
Вызов хранимой процедуры с помощью VBA
|
|||
---|---|---|---|
#18+
Не понял, где у тред-стартера затык. Для примера кусок рабочего модуля книги выложу. На лист экселя возвращается рекордсет, получаемый в ХРП dbo.p_GetMaxDrawDown: Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39.
PS Вар-т старый, но рабочий. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.10.2012, 15:20 |
|
Вызов хранимой процедуры с помощью VBA
|
|||
---|---|---|---|
#18+
medea_bless Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
У меня насчет хрп возник вопрос: она 2 набора записей возвращает или все-таки 1? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.10.2012, 15:34 |
|
Вызов хранимой процедуры с помощью VBA
|
|||
---|---|---|---|
#18+
два ... |
|||
:
Нравится:
Не нравится:
|
|||
08.10.2012, 15:49 |
|
Вызов хранимой процедуры с помощью VBA
|
|||
---|---|---|---|
#18+
Shocker.Proдва А как ч-з АДО в экселе оба набора данных получить? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.10.2012, 15:57 |
|
Вызов хранимой процедуры с помощью VBA
|
|||
---|---|---|---|
#18+
Shocker.ProВаш код требуется оформить в виде процедуры, а не просто так на листе писать Оформила. "Sub or function not defined". Имя процедуры точно правильное. Нашла, что для работы с ADO нужно подключить MS Office ActiveX Data Object 2.0. & Recordset. Первую нашла, второй не вижу (MS Excel 2010) комплектовщикона 2 набора записей возвращает или все-таки 1? на данный момент таблицы объединены в 1 view, к которому обращается процедура: Код: sql 1. 2. 3. 4. 5. 6. 7.
где GetFullSummary - имя view ... |
|||
:
Нравится:
Не нравится:
|
|||
08.10.2012, 16:01 |
|
Вызов хранимой процедуры с помощью VBA
|
|||
---|---|---|---|
#18+
medea_blessОформила. "Sub or function not defined". Имя процедуры точно правильное.Еще раз. Это ругается компилятор ВБА и к процедуре на SQL-севрере это не имеет никакого отношения. Вы просто никак не можете разобраться с синтаксисом в ВБА medea_blessОформила. "Sub or function not defined".Указывайте строку, на которой происходит ошибка medea_blessНашла, что для работы с ADO нужно подключить MS Office ActiveX Data Object 2.0. & Recordset. Первую нашла, второй не вижу (MS Excel 2010)второе входит в первое, так что достаточно. Поставьте в САМОМ начале всех модулей (где вы вводите код) строку Код: vbnet 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
08.10.2012, 16:04 |
|
Вызов хранимой процедуры с помощью VBA
|
|||
---|---|---|---|
#18+
Весь код: Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29.
ругается на строку .NamedParameters и уже так: "Method or data member not found" ... |
|||
:
Нравится:
Не нравится:
|
|||
08.10.2012, 17:07 |
|
Вызов хранимой процедуры с помощью VBA
|
|||
---|---|---|---|
#18+
У тебя параметр в ХРП типа ВарЧар, а ты в него объект эксельный запихиваешь типа Рэнж. Нужно Код: vbnet 1. 2.
И еще запятую вроде перед submitter пропустила Код: vbnet 1.
ЗЫ Код: vbnet 1. 2.
Это так записывается MyRecordset.Open objMyCommand? Можно по-простому Код: vbnet 1. 2. 3. 4.
... |
|||
:
Нравится:
Не нравится:
|
|||
08.10.2012, 20:04 |
|
Вызов хранимой процедуры с помощью VBA
|
|||
---|---|---|---|
#18+
ошибка осталась та же на той же строке. Увидела, что пропустила точку перед CreateParameter - не помогло. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.10.2012, 13:55 |
|
Вызов хранимой процедуры с помощью VBA
|
|||
---|---|---|---|
#18+
medea_blessругается на строку .NamedParameters и уже так: "Method or data member not found"Проблема в том, что в medea_blessНашла, что для работы с ADO нужно подключить MS Office ActiveX Data Object 2.0.Надо подключить не 2.0, а 2. 8 ... |
|||
:
Нравится:
Не нравится:
|
|||
09.10.2012, 14:01 |
|
Вызов хранимой процедуры с помощью VBA
|
|||
---|---|---|---|
#18+
проблема была в строке Код: vbnet 1.
При передаче параметра оказывается нужно передавать длину varchar. Прокомпилировалось без ошибок, только вот на страницу ничего не вывелось. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.10.2012, 15:36 |
|
Вызов хранимой процедуры с помощью VBA
|
|||
---|---|---|---|
#18+
medea_blessПрокомпилировалось без ошибок, только вот на страницу ничего не вывелось.см. сюда. 13286985 Лучше приведи весь код снова со всеми правками ... |
|||
:
Нравится:
Не нравится:
|
|||
09.10.2012, 16:15 |
|
Вызов хранимой процедуры с помощью VBA
|
|||
---|---|---|---|
#18+
Все оказалось проще и с минимумом кода. Если кому-то нужно, то " http://datapigtechnologies.com/blog/index.php/running-a-sql-stored-procedure-from-excel-with-dynamic-parameters%22%5D%D0%B2%D0%BE%D1%82]http://datapigtechnologies.com/blog/index.php/running-a-sql-stored-procedure-from-excel-with-dynamic-parameters"]вот решение ... |
|||
:
Нравится:
Не нравится:
|
|||
09.10.2012, 16:28 |
|
Вызов хранимой процедуры с помощью VBA
|
|||
---|---|---|---|
#18+
Существует множество различных способов решения задачи... ... |
|||
:
Нравится:
Не нравится:
|
|||
09.10.2012, 16:42 |
|
|
start [/forum/topic.php?fid=61&msg=37988449&tid=2175339]: |
0ms |
get settings: |
11ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
30ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
54ms |
get tp. blocked users: |
2ms |
others: | 315ms |
total: | 446ms |
0 / 0 |