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

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

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

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

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

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

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

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


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


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