powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / VBA: как запустить процедуру в БД?
7 сообщений из 7, страница 1 из 1
VBA: как запустить процедуру в БД?
    #32316872
Builder
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Перед получением данных в Excel из базы данных в базе данных надо выполнить процедуру. Как запустить её из VBA? Кто-нибудь может помочь?
...
Рейтинг: 0 / 0
VBA: как запустить процедуру в БД?
    #32316945
Фотография tpg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ничего сложного... Если через ADO, то надо создать объект коннекции и сказать ему

con.Execute("MyProc")

Или создать объект Command и, настроив соответствующе его свойства, тоже сказать

cmd.Execute
...
Рейтинг: 0 / 0
VBA: как запустить процедуру в БД?
    #32317158
Builder
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо, tpg. Пробовал db.Execute("Procedure(Param)"). "Run-time Error '3065' Невозможен запуск запроса на выборку"
...
Рейтинг: 0 / 0
VBA: как запустить процедуру в БД?
    #32317311
Фотография tpg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А по подробней... Что такое Param? Нельзя ли привести кусок кода, да и текст процедуры не помешал бы.
...
Рейтинг: 0 / 0
VBA: как запустить процедуру в БД?
    #32317386
Builder
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Подключаюсь через ODBC к Oracle, используется DAO, процедура aaa.bbb('55') хранится в базе, её надо выполнить 1 раз в начале, текста её не знаю, другие программы её часто используют...
Set db = OpenDatabase("", dbDriverNoPrompt, False, "ODBC;DSN=Oracle;")
db.Execute ("aaa.bbb('55')")
...
Set rs = db.OpenRecordset(Select, dbOpenDynaset)
...
Рейтинг: 0 / 0
VBA: как запустить процедуру в БД?
    #32317394
Фотография tpg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А параметр точно символьного типа должен передаваться?
...
Рейтинг: 0 / 0
VBA: как запустить процедуру в БД?
    #32317411
Builder
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да символьного. У меня заработало в таком виде:
db.Execute "{Call aaa.bbb('55')}", dbSQLPassThrough
Это я в MS Query вызов процедур подсмотрел. Теперь заметил другую проблему: если в SELECT есть к.л. функция, например to_date(), VBA на неё ругается.
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / VBA: как запустить процедуру в БД?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]