powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Запросы: Программный доступ к параметру хранимого запроса.
15 сообщений из 15, страница 1 из 1
Запросы: Программный доступ к параметру хранимого запроса.
    #32330085
kaskiev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
База данных создана в Microsoft Access. Существует запрос с изменяемым параметром.
Код: plaintext
SELECT * FROM MyTable1 WHERE MyParam=[NewParam]

Запрос хранится в БД в разделе "Запросы".

Вопрос:
Возможно ли задать параметр запроса программным способом?
Например, используя VBA. Код должен иметь примерно такой вид:
Код: plaintext
1.
qdf.Parameters( "Param1" ).Value =  "777 "    
Set rst = dbs.OpenRecordset( "MyQwery1" )


Важно:
Я изучал этот вопрос. В докуметации разработчика говорится, что нельзя задать параметры хранимиого запроса программынм способом . Эта было актульно еще для Access 97. Но, я считаю, что это очень большой недостаток .
Неужели ничего с тех пор не изменилось? Или я что-то пропустил?
...
Рейтинг: 0 / 0
Запросы: Программный доступ к параметру хранимого запроса.
    #32330119
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
автор писал:Код должен иметь примерно такой вид:
Ну так это правильный код. Что, он не работает?
...
Рейтинг: 0 / 0
Запросы: Программный доступ к параметру хранимого запроса.
    #32330134
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Прошу прощения. Это неправильный код. Вторая строка должна быть такая:

Код: plaintext
Set rst = qdf.OpenRecordset
...
Рейтинг: 0 / 0
Запросы: Программный доступ к параметру хранимого запроса.
    #32330165
kaskiev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да, это код не работает.
Выдается сообщение об ошибке: "Слишком мало параметров. Требуется <число>. (Ошибка 3061)" ("Too few parameters (...)")

Это "старая байка"! Это код никогда еще неработал, ни при каких вариациях, ни у кого!
Об этой "особенности" невозможности программного задания параметров в хранимых запросов написано в официальной документации разработчика MSDN.
...
Рейтинг: 0 / 0
Запросы: Программный доступ к параметру хранимого запроса.
    #32330180
kaskiev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Согласно документации разработчика верны оба варианта:
Код: plaintext
Set rst = dbs.OpenRecordset( "MyQwery1" )

Код: plaintext
Set rst = qdf.OpenRecordset
...
Рейтинг: 0 / 0
Запросы: Программный доступ к параметру хранимого запроса.
    #32330189
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ты пьян, kaskiev\r
Прочти, например: FAQ: Как избавиться от подтверждений на удаление и т.п., или что лучше DoCmd.Run - это про АДО или FAQ: Как избавиться от подтверждений на удаление и т.п., или что лучше DoCmd.Run - это про дао
...
Рейтинг: 0 / 0
Запросы: Программный доступ к параметру хранимого запроса.
    #32330208
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Если писать НЕ

Set rst = qdf.OpenRecordset

то подставленные в qdf значения параметров не будут использованы.
...
Рейтинг: 0 / 0
Запросы: Программный доступ к параметру хранимого запроса.
    #32330262
Hummer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
Public Sub Test()
Dim db As DAO.Database
Dim qd As DAO.QueryDef
Dim rst As DAO.Recordset

Set db = CurrentDb
Set qd = db.QueryDefs( "RDV" )
With qd
    .Parameters( "id" ).Value =  3 
    Set rst = .OpenRecordset()
End With
With rst
    .MoveLast
    MsgBox .RecordCount &  " "  & .Fields( 1 ).Value
    .Close: Set rst = Nothing
End With

Set qd = Nothing
Set db = Nothing
End Sub


RDV - сохранённый запрос с параметром. Всё работает.
...
Рейтинг: 0 / 0
Запросы: Программный доступ к параметру хранимого запроса.
    #32330270
kaskiev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Владимир Саныч
Вы абсолютно правы!
Такой код работает:
Код: plaintext
1.
qdf.Parameters( "Param1" ).Value =  "777 "    
Set rst = qdf.OpenRecordset 


Я делал поиск по интернету. Я выяснил, что у многих возникала такая проблема. И везде были рекомендации использовать генерацию строки SQL запроса в тексте программы "налету". Но это очень неудобно.
Спасибо, теперь проблема решена!

Senin Viktor
А вам надо учиться цивилизованно общаться.
...
Рейтинг: 0 / 0
Запросы: Программный доступ к параметру хранимого запроса.
    #32330277
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Неужто наш форум владеет монополией на правильное решение этой задачи... :^)
...
Рейтинг: 0 / 0
Запросы: Программный доступ к параметру хранимого запроса.
    #32330283
Hummer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ага, аккурат после msdn наверное:)

P.S. Не понятно, на каких форумах парень спрашивал решение....
...
Рейтинг: 0 / 0
Запросы: Программный доступ к параметру хранимого запроса.
    #32330410
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2kaskiev
>А вам надо учиться цивилизованно общаться.

Если ты дашь источник откуда ты взял : В докуметации разработчика говорится, что нельзя задать параметры хранимиого запроса программынм способом. я извинюсь.
...
Рейтинг: 0 / 0
Запросы: Программный доступ к параметру хранимого запроса.
    #32330614
kaskiev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Senin Viktor
Да, действительно, я ошибся. На MSDN есть с десяток статей по поводу создания и особенностей работы с параметрическими запросами ("parameter queries"). Видимо я сделал неправильный перевод -- английский мой неродной язык. Для уточнения проблемы я и обратился в форум.

Но в любом случае все-таки хочеться нормально общаться.
...
Рейтинг: 0 / 0
Запросы: Программный доступ к параметру хранимого запроса.
    #32330619
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Я предлагаю простить Виктора. Готов попросить прощения за него. И даже уже прошу.
...
Рейтинг: 0 / 0
Запросы: Программный доступ к параметру хранимого запроса.
    #32330643
Фотография Темный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гы-гы. Это нормальное общение. Зашел бы ты на ПТ пару месяцев назад - здесь бы раем показалось.

Даже странно, на х не послали, дебилом не обозвали и т.п.
Лана, злой я сегодня. Пора домой. А с завтрашнего дня - долгожданный отпуск!!!
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Запросы: Программный доступ к параметру хранимого запроса.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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