powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Запросы... динамические
10 сообщений из 10, страница 1 из 1
Запросы... динамические
    #32379598
ThuG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Каким образом сформировать запрос на выборку, в котором бы указывался критерий отбора, находящийся в переменной, значение которой заполняется только после нажатия на кнопку определенной формы? Заранее благодарен за ответ.
...
Рейтинг: 0 / 0
Запросы... динамические
    #32379599
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
currentdb.querydefs!myquery.sql=mystring
...
Рейтинг: 0 / 0
Запросы... динамические
    #32379603
ThuG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Можно конкретный пример?

Ситуация такая: есть таблица. Есть запрос, который возвращает определенные поля этой таблицы, суммированные. Как в таблице, так и в запросе есть поле "дата". Требуется по нажатию кнопки вывести InputBox, вводя в который дату, получаем результат этого запроса, отфильтрованный по введенной дате.
...
Рейтинг: 0 / 0
Запросы... динамические
    #32379606
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Тогда все гораздо проще. В запросе делаем параметр. В кнопке ставим запуск запроса. Запрос запускается, запрашивает значение параметра через InputBox и работает дальше.
...
Рейтинг: 0 / 0
Запросы... динамические
    #32379619
ThuG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А если требуется, скажем, после ввода даты через InputBox отправить результат запроса, отфильтрованный по этой дате, по электронной почте? При этом запрос не один, а дату надо ввести только один раз для удобства пользования.

Как я понимаю, надо сделать по одному и тому же параметру в каждом запросе (..."WHERE Дата = variable_with_date"...), а при нажатии на кнопку заполнить переменную variable_with_date нужной датой, после чего отправить результаты всех запросов по почте... Но у меня почему-то не получается. Вроде и переменная глобальная, а Access все равно спрашивает через InputBox значение параметра.

Может, можно вручную сформировать запрос? То есть поместить его в переменную типа string и выполнить ее. Если да, то как?

Так не получается:
----
SQL_str = "SQL-запрос;"
DoCmd.RunSQL(SQL_str)
----
...
Рейтинг: 0 / 0
Запросы... динамические
    #32379620
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Можно занести в переменную. Тогда в запросе надо обращаться к функции, которая будет возвращать значение этой переменной. Переменных напрямую запросы не видят.

Можно составлять запрос вручную, тогда его можно запускать в зависимости от того, что это за запрос:

если исполняемый (инсерт, апдейт, дилит) - то currentdb.execute;

если нет - то currentdb.openrecordset и дальше что нужно.
...
Рейтинг: 0 / 0
Запросы... динамические
    #32379636
Фотография Alexander G
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Создать временный запрос через CreateQueryDef, отослать его и потом удалить.
...
Рейтинг: 0 / 0
Запросы... динамические
    #32379959
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
временный запрос через CreateQueryDef - плохо в мультиюзерном энвайронменте.
...
Рейтинг: 0 / 0
Запросы... динамические
    #32380160
Фотография Alexander G
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если интерфейс держать на сервере - конечно. Сам недолюбливаю временные запросы и таблицы.
...
Рейтинг: 0 / 0
Запросы... динамические
    #32380429
2 вариант
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
автор Владими Саныч:
Можно занести в переменную. Тогда в запросе надо обращаться к функции, которая будет возвращать значение этой переменной. Переменных напрямую запросы не видят.


Без функции: занести в переменную, вызвать запрос из VBA и включить в него:
"data In (" & переменная & ")"
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Запросы... динамические
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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