powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Передача значения параметра в запрос
12 сообщений из 12, страница 1 из 1
Передача значения параметра в запрос
    #32549773
sql student
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
допустим есть запрос:

parameters p byte;
select p;

требуется сделать форму в которой вводится занчение, передаётся параметру запроса, затем выводится результат запроса. Как это сделать не меняя код запроса (чтобы не было прямых/косвенных ссылок на форму)?
...
Рейтинг: 0 / 0
Передача значения параметра в запрос
    #32549774
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Так не получится. Запрос с параметром можно использовать только для рекордсета. А тут надо составлять селект на лету и подсовывать его в RecordSource формы.
...
Рейтинг: 0 / 0
Передача значения параметра в запрос
    #32549779
sql student
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А нельзя ли на основе RecordSet сформировать контент формы?
...
Рейтинг: 0 / 0
Передача значения параметра в запрос
    #32549809
Rivkin Dmitry
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А чем ссылки то мешают? Сослался в запросе на форму - и спи, отдыхай!
...
Рейтинг: 0 / 0
Передача значения параметра в запрос
    #32549816
Фотография Shark
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ввели параметр, потом в обработчике какого-нибудь события контрола параметра пишем
Dim Qd1 as dao.querydef
Set qd1=CurrentDB.Querygefs("МойЗапрос")
qd1.Parameters("МойПараметр")=Me!МойКонтрол
DoCmd.OpenForm "ФормаМойЗапрос"
Forms("ФормаМойЗапрос").Recordset=qd1.Execute
Set qd1=nothing
...
Рейтинг: 0 / 0
Передача значения параметра в запрос
    #32549820
Rivkin Dmitry
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Чой-то я не пойму зачем изголяться?
Хочешь-не хочешь но к форме, хоть и не явно, но обращаешься: параметер чем-то надо заполнить, а значение его - на форме! Так не проще ли все сделать как
SELECT ... FROM ... Where ((p = [Forms]![Form1].[param]))

и
Sub param_AfterApdate()
Me.Requery

Кода 1 строчка, забот 0!
...
Рейтинг: 0 / 0
Передача значения параметра в запрос
    #32549824
Фотография Shark
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Меня попросили сделать не меняя код запроса, я сделал.
...
Рейтинг: 0 / 0
Передача значения параметра в запрос
    #32549825
Rivkin Dmitry
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shark !
Притензий нет! Усе Ок!
Просто не понятно, когда такое нужно, что за причина не пользоваться возможностями системы, "изгаляться"...
...
Рейтинг: 0 / 0
Передача значения параметра в запрос
    #32549829
Фотография Shark
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я там наврал маленько
вместо
forms...Recordset=
нада
Set forms...Recordset=
>Зачем такое надо
Например,
1) если твоя форма вызывается из разных мест
2) Смотрит на разные источники в разных случаях
3) Запрос используется в другом месте, а плодить их неохота.
4) Да мало-ли:-) Нравятся мне динамически формируемые строчки. Про это и топик недавно был.
/topic/96362&pg=-1
...
Рейтинг: 0 / 0
Передача значения параметра в запрос
    #32549908
Rivkin Dmitry
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автор1) если твоя форма вызывается из разных мест
2) Смотрит на разные источники в разных случаях
3) Запрос используется в другом месте, а плодить их неохота.

Все это одно и тоже!
'Query MyFromQry as Query как я понимаю уже существует?

А чем тебе не нравится таое решение:
Public Sub OpenMyForm(p1, p2 ...)
Dim db as DataBase: Set db = Currentdb
dim qd as QueryDef: Set qd = db.QueryDefs("MyFromQry")
Dim fm As Form, se as Sting

se = "SELECT ... FROM ... Where ((p = " & p1 ") And (p2 = " & p2 & " And ...))"

или

if p1 = 0 Then
se = "SELECT ... FROM ... Where
Else
...
Endif

qd.SQL = se

DoCmd.OpenForm "MyFrom"
End Sub

И все! На все случаи жизни открытия твоей формы из любого места!
А если охота, создай коллекцию твоих форм и плоди их как New MyFrom, но при этом выкини MyFromQry и пользуйся
после
DoCmd.OpenForm "MyFrom"
Set fm = Forms("MyFrom")
fm.RecordSource = se
И все в одной процедуре!
...
Рейтинг: 0 / 0
Передача значения параметра в запрос
    #32549972
sql student
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 Shark

я так пытался, но у меня select запрос, а для select запросов не разрешается выполнение qdf.execute
...
Рейтинг: 0 / 0
Передача значения параметра в запрос
    #32549973
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Там описка. Должно быть не execute, а openrecordset.
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Передача значения параметра в запрос
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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