Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft Access Новый топик    Ответить
 Создание запроса к серверу из VBA - реально?  [new]
Seryog@
Guest
Доброе время суток. Мучаюсь я с получением данных из SQL
Server в Access, нужно передавать параметры в функцию или
хранимую процедуру. В общем, выяснил следующее.
1) Как я понял, данные передавать в хранимую процедуру
можно только путем переписывания запроса заново, т.к. у
готового запроса из VBA я ничего поменять не смог. Теперь
запрос создается так:

Private Sub Button_Click()
Dim dbs As DAO.Database
Dim qdf As DAO.QueryDef
Dim strSQL As String

Set dbs = CurrentDb
strSQL = "SELECT * FROM Table1 IN ''
[ODBC;DSN=DB;UID=Sergey;DATABASE=DB;Trusted_Connection=Yes]
where (F1=4)"
DoCmd.DeleteObject acQuery, "SecondQuarter"
Set qdf = dbs.CreateQueryDef("SecondQuarter", strSQL)

End Sub


Воооот....
2) А вот созданое таким образом обращение к хранимой
процедуре или функции не работает, при
select * from fun1(1,5)
он пишет, что это ошибка... ну, функций не знает аксес,
что ж теперь...

Остается что? Запрос к серверу. там работает как
select * from fun1(1,5) так и
exec sproc1 1,5 или просто sproc1 1,5

А теперь вопрос. Из VB можно создать не запрос, а запрос к
серверу???????
21 май 02, 06:58    [1016]     Ответить | Цитировать Сообщить модератору
 RE:Создание запроса к серверу из VBA - реально?  [new]
АлексейК
Member

Откуда: http://www.msdatabase.ru , Moscow
Сообщений: 7683
Если я правильно понял вопрос то он звучит так
как из Access MDB запустить хранимую процедуру с параметрами.

ответ: используя ADO
Dim MYConnection As New adodb.Connection

'пример подключения
MYConnection.Open "Provider=MSDASQL;DSN=LocalServer;SERVER=({local});UID=sa;PWD=;WSID={ИМЯ_компьютера};DATABASE={ИМЯ_БАЗЫ_ДАННЫХ};LANGUAGE=русский;QueryLogTime=Yes"
'{УКАЗАННОЕ В ТАКИХ СКОБКАХ ЗАМЕНИТЬ НА СВОИ ЗНАЧЕНИЯ}

Dim cmd As New adodb.Command
cmd.ActiveConnection = MYConnection
cmd.CommandText = "sp_daystatus" 'насколько мне известно параметры можно добавить прямо сюда после пробела, через зпт
cmd.CommandType = adCmdStoredProc
'Возвращаемые параметры можно добавить так
cmd.Parameters.Append cmd.CreateParameter("@data", adInteger, adParamInputOutput)
cmd.Parameters(0) = MYintegervar
cmd.Execute
Myvar = cmd.Parameters(0)
Set cmd = Nothing
22 май 02, 10:36    [1017]     Ответить | Цитировать Сообщить модератору
Между сообщениями интервал более 1 года.
 Re: Создание запроса к серверу из VBA - реально?  [new]
Колян2007
Member

Откуда:
Сообщений: 3
А можно вопрос в тему? Как из проекта .adp через VB получить данные из запроса в виде функции на SQL Server? В книгах пишется в общем - через OLE DB/ADO, в HELP'е пишется,что к функциям можно получить доступ черем объектную модель Access, но как??? - не написано.
13 янв 07, 21:12    [3637106]     Ответить | Цитировать Сообщить модератору
 Re: Создание запроса к серверу из VBA - реально?  [new]
Программист-Любитель
Member

Откуда:
Сообщений: 16839
нет ничего проще из проекта ADP

Set rs = CurrentProject.Connection.Execute( "select * form dbo.MyFunction(123, 'aaa', '20070113') )
13 янв 07, 23:17    [3637448]     Ответить | Цитировать Сообщить модератору
 Re: Создание запроса к серверу из VBA - реально?  [new]
Программист-Любитель
Member

Откуда:
Сообщений: 16839
двойную кавычку перед последней скобкой вставьте - забыл.
13 янв 07, 23:18    [3637449]     Ответить | Цитировать Сообщить модератору
 Re: Создание запроса к серверу из VBA - реально?  [new]
Колян2007
Member

Откуда:
Сообщений: 3
Спасибо!!!! У меня был на сервере запрос-функция "Склад". Вариант:
Set rs = CurrentProject.Connection.Execute("select * from dbo.Склад()")
ПРОШЕЛ!!!
14 янв 07, 12:02    [3637992]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft Access Ответить