Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Возврат значения из ХП / 9 сообщений из 9, страница 1 из 1
28.09.2004, 19:37:45
    #32715524
vma_mnt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Возврат значения из ХП
Подскажите, как получить значения из ХП в код VBA.

С функцией не получается, так как создаются временные таблицы
...
Рейтинг: 0 / 0
28.09.2004, 19:52:43
    #32715542
Alexey Sh
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Возврат значения из ХП
например

create procedure test as
begin
declare @a integer,@b varchar(50)
set @a=1
set @b='zxc'
select @a as cola,@b as colb
end

результаты в рекордсете
...
Рейтинг: 0 / 0
28.09.2004, 19:58:52
    #32715551
vma_mnt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Возврат значения из ХП
Alexey Shнапример

create procedure test as
begin
declare @a integer,@b varchar(50)
set @a=1
set @b='zxc'
select @a as cola,@b as colb
end

результаты в рекордсете

Что-то не соображу как это сделать.

MyRecordset.Open "SELECT * FROM ...", Connection

Вот на открытии рекордсета и споткнулся
...
Рейтинг: 0 / 0
28.09.2004, 21:25:23
    #32715606
Alexey Sh
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Возврат значения из ХП
Вместо SELECT .... нужно писать EXEC test
...
Рейтинг: 0 / 0
29.09.2004, 04:40:31
    #32715706
vma_mnt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Возврат значения из ХП
Хранимая процедура содержит команду
Код: plaintext
select @АбПлата as AP

В QA выполнение команды
Код: plaintext
exec С_НачислениеАбПлаты  5701 , 23 

выводит таблицу с колонкой AP и значением @АбПлата, то есть то, что надо.

В VBA команда

Код: plaintext
1.
2.
3.
Set Cn = CurrentProject.Connection
Set S1 = New Recordset

S1.Open "exec С_НачислениеАбПлаты 5701,23", Cn

выполняется нормально, а на
Код: plaintext
MsgBox (S1!AP)

сообщение, что не удается найти объект S1!AP

как из рекордсета получить значение AP
...
Рейтинг: 0 / 0
29.09.2004, 09:03:55
    #32715815
Latuk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Возврат значения из ХП
CurrentProject.Connection.Execute("dbo.ХП " & Параметр).Fields(0).Value
или
CurrentProject.Connection.Execute("dbo.ХП " & Параметр).Fields(0)

Если возвращаемый рекордсет имеет только одно значение
CurrentProject.Connection.Execute("dbo.ХП " & Параметр)("МоеПоле")

PS CurrentProject.Connection.Execute() возвращает рекордсет
к свойствам которого ты и обратишся
если надо его сохранить для дальнейшего использования
то надо сохранить ссылку на него в переменной

Dim rs as ADODB.Recordset

SET rs=CurrentProject.Connection.Execute("dbo.ХП " & Параметр)
...
Рейтинг: 0 / 0
29.09.2004, 09:51:50
    #32715869
Витал
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Возврат значения из ХП
Попробуй в хранимке добавить после As Set nocount on
...
Рейтинг: 0 / 0
29.09.2004, 09:52:56
    #32715871
Витал
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Возврат значения из ХП
Кстати параметры хранимки пишутся ПЕРЕД As
...
Рейтинг: 0 / 0
29.09.2004, 12:12:05
    #32716275
vma_mnt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Возврат значения из ХП
Latuk
Dim rs as ADODB.Recordset

SET rs=CurrentProject.Connection.Execute("dbo.ХП " & Параметр)

Вот этого и не хватало, спасибо
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Возврат значения из ХП / 9 сообщений из 9, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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