Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Access
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.01.2011, 00:45   #1
Makarus
Пользователь
 
Регистрация: 18.12.2010
Сообщений: 21
Вопрос Передать в запрос значение параметра

С Прошедшими всех!
Скажите, как передать в параметрический запрос значение параметра, являющегося результатом выборки другого запроса?
Оба запроса делают выборку из одной и той же таблицы. Результат первого запроса (источника параметра) - одна запись, значение определенной ячейки которой - и есть параметр целевого запроса. Спасибо
Makarus вне форума Ответить с цитированием
Старый 19.01.2011, 08:13   #2
Swatch
Форумчанин
 
Регистрация: 05.07.2009
Сообщений: 209
По умолчанию

Здравствуйте! Как вариант могу предложить следующее: первый запрос можно сделать в конструкторе и потом вызывать его открытие в модуле VBA, затем присвоить переменной param значение той самой ячейки полученной в результате выборки записи. Потом прописать в модуле создание второго запроса (инструкцию Select придется прописать вручную) и заслать в его параметр переменную param. Примерно это выглядит так, но возможны ошибки так как не проверяла:
Код:
Dim rec1,rec2 as Recordset
Dim rec2zapr As QueryDef
Dim param as Variant
Dim param1 As Parameter
Set rec1 = CurrentDb.OpenRecordset("Запрос1", dbOpenDynaset)
Do until rec1.EOF 
param=rec1!
rec1.Movenext
Loop   '- получили значение параметра и переходим ко второму этапу
'создаем второй запрос затем описываем параметр
Set rec2zapr = db.CreateQueryDef("", "SELECT ....... where чего-то там =[param]")
Set param1 = rec2zapr.Parameters!param
param1 = param
'открываем запрос с параметром
Set rec2 = rec2zapr.OpenRecordset(dbOpenDynaset)
Можно оба запроса прописать в модуле.

___________
Код нужно оформлять по правилам:
тегом [CODE]..[/СODE] (это кнопочка с решёточкой #)
Не забывайте об этом!
Модератор.

Последний раз редактировалось Serge_Bliznykov; 19.01.2011 в 10:32.
Swatch вне форума Ответить с цитированием
Старый 19.01.2011, 09:53   #3
R Dmitry
Форумчанин
 
Регистрация: 07.03.2010
Сообщений: 796
По умолчанию

Цитата:
Сообщение от Makarus Посмотреть сообщение
С Прошедшими всех!
Скажите, как передать в параметрический запрос значение параметра, являющегося результатом выборки другого запроса?
Оба запроса делают выборку из одной и той же таблицы. Результат первого запроса (источника параметра) - одна запись, значение определенной ячейки которой - и есть параметр целевого запроса. Спасибо
Здравствуйте ,
Возможно есть более простое решение Вашего вопроса, но для этого необходим Ваш пример и более подробное описание что Вы хотите получить. Зачастую обычный DLookUp и им подобные помогают в решении таких задач.
Логика?!.... она где то рядом... E_mail: dg_rusak@mail.ru Если спасибо мало: Яндекс . Деньги - 41001731366021 WM R269866874234
R Dmitry вне форума Ответить с цитированием
Старый 20.01.2011, 22:37   #4
Makarus
Пользователь
 
Регистрация: 18.12.2010
Сообщений: 21
По умолчанию

Цитата:
Сообщение от R Dmitry Посмотреть сообщение
Здравствуйте ,
Возможно есть более простое решение Вашего вопроса, но для этого необходим Ваш пример и более подробное описание что Вы хотите получить. Зачастую обычный DLookUp и им подобные помогают в решении таких задач.
У меня одна большая таблица (с древовидной структурой; конкретно - кладр). Реляционно ее привязывать или модифицировать - нельзя (нежелательно даже индесировать). Поэтому пытаюсь доставать из нее данные запросами (системой запросов). Все запросы, таким обр., - обращаются к одной таблице. Один запрос должен стать "основанием" для другого, и вся эта цепь выборок - с условием, т.е. условием одного запроса должен стать результат выборки другого.
Я сначала попробовал пойти по кратчайшему пути - через конструктор запросов. Получаю окошко "Введите знач параметра" (т.е. он не "прописывается" автоматом). Ввожу вручную - второй запрос работает. В топике постарался обрисовать схему того, что мне надо (видимо, не совсем понятно). И не знаю, как лучше прописать во втором запросе это условие, полученное из первого запроса, чтобы работало
Makarus вне форума Ответить с цитированием
Старый 20.01.2011, 22:56   #5
Makarus
Пользователь
 
Регистрация: 18.12.2010
Сообщений: 21
По умолчанию

Цитата:
Сообщение от Swatch Посмотреть сообщение
Здравствуйте! Как вариант могу предложить следующее: первый запрос можно сделать в конструкторе и потом вызывать его открытие в модуле VBA, затем...
Как раз и хотелось бы избежать "нагромождения" процедур и обойтись SQL... Дело в том, что так пока и не можем найти решение, как использовать значение из одного запроса для подстановки в параметр другого, из другого в другой и т.д.

Последний раз редактировалось Makarus; 20.01.2011 в 23:05.
Makarus вне форума Ответить с цитированием
Старый 20.01.2011, 23:15   #6
R Dmitry
Форумчанин
 
Регистрация: 07.03.2010
Сообщений: 796
По умолчанию

Все же без примера, гадать тут никто не будет
Логика?!.... она где то рядом... E_mail: dg_rusak@mail.ru Если спасибо мало: Яндекс . Деньги - 41001731366021 WM R269866874234
R Dmitry вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
C#. значение параметра не изменяется THRASHER C# (си шарп) 5 12.10.2010 17:16
Синтаксис CSS (2 параметра - 1 значение) Linel HTML и CSS 3 31.08.2010 00:03
Подбор параметра не точное значение magana Microsoft Office Excel 0 23.03.2010 22:24
параметрический запрос с частью слова в качестве параметра yulia БД в Delphi 6 09.05.2008 20:27