ТОР 5 статей: Методические подходы к анализу финансового состояния предприятия Проблема периодизации русской литературы ХХ века. Краткая характеристика второй половины ХХ века Характеристика шлифовальных кругов и ее маркировка Служебные части речи. Предлог. Союз. Частицы КАТЕГОРИИ:
|
О присвоении параметров при открытии RecordsetЧасто используются запросы, включающие значения полей форм. Обычно их включают в условия отбора. Однако, если Вы попробуете открыть Recordset на основе такого запроса, то Access даст сообщение об ошибке: "Указаны не все параметры...". Эти параметры как раз поля из форм. Ниже приводится простейшая функция, подставляющая значения параметров (полей форм) в запрос. 'Открытие Recordset на базе запроса с параметрами Set Q = CurrentDb.QueryDefs(NameQuery) For Each par In Q.Parameters Set OpenRQ = Q.OpenRecordset End Function Следующая функция немного сложнее, но она делает тоже самое не только с запросами, Public Function rpOpenRQ(NameQuery_Or_SQL As String) _ 'В тексте SQL обязательно есть FROM c пробелами Else End If For Each par In Q.Parameters Set rpOpenRQ = Q.OpenRecordset Здесь используется функция rpGetVal. Она выдает значение поля формы, заданное текстом: "[Forms]![FormName]![FieldName]". (Квадратные скобки могут отсутствовать.) Кроме того, она выдает числовое значение, заданное в виде "=2", и текст без преобразования. Эти возможности нужны для восстановления значений полей форм, заданных по умолчанию. Например, FieldName.DefaultValue="=Forms!A!B" или FieldName.DefaultValue="=5". Для восстановления начального значения поля достаточно написать: FieldName=rpGetVal(FieldName.DefaultValue)
Прямое присвоение: FieldName=FieldName.DefaultValue обычно не проходит. Public Function rpGetVal(Expression) 'Возвращаем Null при пустых значениях Expression. 'Убираем знак "=" - он может быть в DefaultValue. 'Разбор значения S EndFun: Запрос по форме Данный подход позволяет пользователям предоставить доступ к сложным и весьма эффективным запросам, многочисленные параметры которых запоминаются с помощью полей формы. Простейшим запросом QBF моет быть форма, на которой представлены все поля заполняемой таблицы. Пользователь просто вводит данные в поля и щелкает на кнопке Поиск или OK Щелчок на кнопке запускает запрос, возвращающий из таблицы записи со значениями, совпадающими с введенными в поля формы..
Можно ли ввести что-либо в текстовое поле формы и использовать введенное значение в качестве фильтра? Для этого можно использовать метод, который называется запрос по форме (query-by-form). В строку Условие отбора (Criteria) бланка запроса по образцу вводится выражение, которое относится к текстовому полю формы, после чего к форме добавляется кнопка, щелчок на которой является командой для выполнения запроса. Например, на рис. 1.1 показана форма, используемая для ввода условия отбора, и результирующий набор записей, получаемый после щелчка на кнопке Найти (Search).
Рис. 1 1. Пример поиска по условию, введенному в форме Создание запроса по форме выполняется следующим образом.
Forms! [имя формы]I[имя элемента управления] OR Forms! [имя формы]! [имя элемента управления] Is Null Здесь [имя формы] — имя вашей формы, а [имя элемента управления] -имя, присвоенное элементу управления «текстовое поле». Например, если форма называется Поиск клиента, то в строке Условие отбора: (Criteria) поля Город в запросе должна быть следующая запись: [Forms]![Поиск клиента]![Город] OR [Forms]![Поиск клиента]![Город] Is Null Сохранив запрос, можно открыть форму, ввести условие отбора в текстовые поля и щелкнуть на кнопке, чтобы выполнить запрос с введенными условиями отбора. Итоги в формах Не нашли, что искали? Воспользуйтесь поиском:
|