access применение фильтра в форме

Динамическая фильтрация данных

Предположим, у нас есть форма, содержащая подчиненную форму, в которой отображается много записей, и вы хотели бы интерактивно задать в главной форме какое-нибудь условие для отбора интересующих записей в подчиненной форме, чтобы упростить их визуальный анализ.

Это несложно сделать с помощью применения фильтра для источника данных формы (в данном случае — подчиненной). Фильтр можно применить двумя способами:

Первый способ применения фильтра в форме во многом аналогичен подобным действиям в режиме Таблицы, которые были рассмотрены в разд. «Фильтрация данных»гл. 2. Здесь мы рассмотрим второй способ.

И хоть данная глава не предназначена для описания программирования на VBA, мы приведем пример соответствующей процедуры VBA, поскольку он обеспечивает несложное решение довольно типичной задачи.

Рассмотрим решение этой проблемы на примере формы «Типы» (Categories), содержащей подчиненную форму «Список товаров» (Product List). Организуем отбор товаров в подчиненной форме в зависимости от наличия их поставок:

Таблица 9.1. Свойства фильтрующего элемента

Замечание

Откройте форму «Типы» (Categories) в режиме Формы. Попробуйте выбирать в созданном списке разные значения и переходить от записи к записи. Вы увидите, что в соответствии с выбранным в списке значением, в подчиненной форме отображаются только товары с выполняющимися поставками, только товары с прекращенными поставками или все товары (см. также разд. «Синхронизация данных в связанных формах»гл. 13).

Источник

Фильтрация данных в отчете

При просмотре отчета Access на экране можно применить фильтры, чтобы отфильтровать нужные данные. После этого вы сможете распечатать отчет только с данными. Дополнительные сведения о создании отчетов см. в обзоре отчетов Access.

Примечание: Статья неприменима к веб-приложениям Access — новому типу баз данных, которые создаются в Access и публикуются в Интернете.

Чтобы отфильтровать данные в отчете, откройте его в представлении отчета (щелкните его правой кнопкой мыши в области навигации и выберите «Представление отчета»). Затем щелкните правой кнопкой мыши данные, которые нужно отфильтровать.

Например, в отчете со списком всех сотрудников можно увести только тех сотрудников, фамилии которых начинаются с «Л»:

Щелкните правой кнопкой мыши любую фамилию и выберите «Текстовые > начинается с.»

e38feaba ddaf 4202 a673 ff3c7e456616

Введите «L» в поле и нажмите кнопку «ОК».

37088339 4393 4f46 8b31 dd0809e1d7d5Access
примеает фильтр, и теперь вы можете распечатать отчет
только с данными.

1a2742aa 30cd 4ea0 adf2 1165f34fdcc3

Переуровнять или очищать фильтры

На вкладке «Главная» нажмите кнопку «Фильтр», чтобы при необходимости удалить и повторно прибавить фильтр.

Если закрыть отчет без явного очистки фильтров, Access запомнит их и вы сможете снова нажать кнопку «Перевести фильтр», чтобы повторно открыть отчет. Это возможно даже после закрытия и повторного открытия базы данных. Однако если нажать кнопку > «Дополнительные > очистить все фильтры», Access полностью счистит фильтры, и вам придется начинать с нуля в следующий раз.

Сохранение фильтров в качестве запроса

Если к отчету применено много фильтров, их можно сохранить в качестве запроса. Затем вы можете использовать запрос в качестве источника данных для текущего или нового отчета или просто выполнить запрос, когда захотите увидеть данные в следующий раз.

Применив фильтры, щелкните «Главная> «Расширенный > расширенный фильтр/сортировка».

Access создаст запрос, который содержит все примененные фильтры. Если вы хотите, чтобы в результатах запроса выводились другие столбцы, кроме отфильтрованных, дважды щелкните их в таблицах, чтобы добавить их в сетку запроса.

Нажмите кнопку«Сохранить» и введите имя запроса.

Дополнительные сведения об отчетах см. в описании отчетов в Accessи более подробных сведениях о фильтрации. См. статью «Применение фильтра для просмотра записей, выбранных в базе данных Access». Если вам интересно, что еще можно делать с запросами, см. статью «Знакомство с запросами».

Источник

Применение фильтра при открытии формы или отчета

Если вы используете код Visual Basic для приложений (VBA), чтобы открыть форму или отчет, рекомендуется указать, какие записи нужно отобразить. Записи для отображения в форме или отчете можно указать несколькими способами. Распространенный способ — отобразить настраиваемое диалоговое окно, в котором пользователь вводит условия для базового запроса формы или отчета. Чтобы получить условия, нужно добавить ссылку на элементы управления в диалоговом окне. В разделах ниже описаны три способа использования введенных условий в настраиваемом диалоговом окне для фильтрации записей.

Использование аргумента wherecondition

Аргумент wherecondition метода или команды OpenForm или OpenReport является самым простым способом получить условия в ситуациях, когда пользователь предоставляет только одно значение. Например, можно отобразить форму, предлагающую пользователю выбрать код заказа для счет-фактуры, которую нужно напечатать. Если вы используете процедуру обработки событий, можно применить фильтр, отображающий только одну запись, добавив аргумент в метод OpenReport, как показано в строке кода ниже:

«OrderID = » в выражении фильтра указывает на поле OrderID в базовом запросе отчета счета-фактуры. OrderID в правой стороне выражения указывает на значение, выбранное пользователем из списка OrderID в диалоговом окне. Выражение объединяет эти два значения, что приводит к добавлению в отчет только счет-фактуры для записи, выбранной пользователем.

Аргумент wherecondition применяется только процедурой обработки событий, указанной для события OnClick кнопки, запускающей метод OpenForm или OpenReport. Это обеспечивает гибкость использования любого количества разных диалоговых окон для открытия одной формы или отчета и применения различных наборов условий в зависимости от нужных действий. Например, пользователю может потребоваться напечатать счет-фактуру для определенного клиента или просмотреть заказы только для определенного продукта.

Аргумент wherecondition можно использовать для установки условий для нескольких полей, но в этом случае значение аргумента быстро становится длинным и сложным. В этих случаях, возможно, проще указать условия в запросе.

Использование запроса в качестве фильтра

Отдельный запрос, иногда называемый запросом с фильтром, может ссылаться на элементы управления в диалоговом окне, чтобы получить его условия. С помощью этот способа можно фильтровать записи в форме или отчете, присвоив аргументу filtername метода или команды OpenForm или OpenReport значение имени создаваемого запроса с фильтром. Запрос с фильтром должен содержать все таблицы в источнике записей формы или отчета, который вы открываете. Кроме того, запрос с фильтром должен содержать все поля в открываемой форме или отчете, либо необходимо присвоить его свойству OutputAllFields значение Yes.

После открытия и сохранения запроса для использования в качестве фильтра, присвойте аргументу filtername метода или команды OpenReport значение имени запроса с фильтром. Аргумент filtername применяет указанный запрос с фильтром каждый раз, когда запускается метод OpenReport.

Использование запроса в качестве фильтра для установки условий обладает преимуществами, аналогичными использованию аргумента wherecondition метода OpenForm или OpenReport. Запрос с фильтром обеспечивает такую же гибкость использования нескольких диалоговых окон для открытия одной формы или отчета и применения различных наборов условий в зависимости от нужных действий.

Прямая ссылка на элементы управления диалогового окна в базовом запросе формы или отчета

Также можно ссылаться на элементы управления диалогового окна непосредственно в базовом запросе формы или отчета, а не через аргументы метода OpenForm или OpenReport. При использовании этого подхода методу или команде OpenForm или OpenReport не требуется аргумент wherecondition или filtername. Вместо этого при каждом открытии формы или отчета его базовый запрос ищет диалоговое окно, чтобы получить его условия. Тем не менее, если пользователь открывает форму или отчет в окне базы данных, а не через диалоговое окно, Access отображает окно параметра, запрашивающее у пользователя значение диалогового окна.

Поддержка и обратная связь

Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.

Источник

Свойство Form.Filter (Access)

Свойство Filter можно использовать для указания подмножество записей, отображаемого при применении фильтра к форме, отчету, запросу или таблице. Для чтения и записи, String.

Синтаксис

выражение.Filter

выражение: переменная, представляющая объект Form.

Примечания

Если необходимо указать серверный фильтр в проекте Microsoft Access (.adp) для данных, расположенных на сервере, используйте свойство ServerFilter.

Свойство Filter — это строковая фраза, состоящая из клаузула WHERE без ключевого слова WHERE. Например, в следующем Visual Basic код определяет и применяет фильтр, чтобы показывать только клиентов из США.

Настройка свойства Filter не влияет на свойство ADO Filter.

Свойство Filter можно использовать для сохранения фильтра и его применения в более позднее время. Фильтры сохраняются с объектами, в которых они создаются. Они автоматически загружаются при открываемом объекте, но не применяются автоматически.

Когда создается новый объект, он наследует свойства RecordSource, Filter, OrderBy и OrderByOn таблицы или запроса, из которые он был создан.

Чтобы применить сохраненный фильтр к форме, запросу или таблице, можно выбрать Apply Filter на панели инструментов, выбрать Apply Filter/Sort в меню Records или использовать макрос или Visual Basic, чтобы установить свойство FilterOn true. Для отчетов можно применить фильтр, установив свойство FilterOn на да в листе свойств отчета.

Кнопка Apply Filter указывает состояние свойств Filter и FilterOn. Кнопка остается отключенной до тех пор, пока не будет применяться фильтр. Если в настоящее время применяется существующий фильтр, нажата кнопка Apply Filter.

Чтобы автоматически применять фильтр при открывлении формы, укажите в параметре свойства событий OnOpen форму макроса, использующего действие ApplyFilter, или процедуру события, использующую метод ApplyFilter объекта DoCmd.

Фильтр можно удалить, выбрав нажатую кнопку Apply Filter, выбрав remove Filter/Sort в меню Records или Visual Basic для настройки свойства FilterOn false .

Когда свойство Filter за установлено в представлении Design form, Microsoft Access не пытается проверить SQL выражение. Если выражение SQL является недействительным, при применении фильтра возникает ошибка.

Поддержка и обратная связь

Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.

Источник

Макрокоманда «ПрименитьФильтр»

С помощью действия ApplyFilter можно применить к фильтр, запрос или предложению SQL WHERE предложение таблица, форма или отчет для ограничения или сортировки записей в таблице, а также записей из таблицы или запроса формы или отчета. Для отчетов это действие можно использовать только в макрос, заданном свойством события OnOpen отчета.

Примечание: Применить предложение SQL WHERE с помощью этого действия можно только при использовании серверного фильтра. Серверный фильтр нельзя применить к источнику записей хранимой процедуры.

Примечание: Макрокоманда «ПрименитьФильтр» недоступна в веб-приложениях Access.

Настройка

Аргументы макрокоманды ПрименитьФильтр описаны ниже.

Имя фильтра или запроса, используемого для отбора или сортировки записей в таблице, форме или отчете. В поле Имя фильтра в разделе Аргументы макрокоманды области «Конструктор макросов» можно указать имя существующего запроса либо фильтра, сохраненного в качестве запроса.

Примечание: Когда эта макрокоманда используется для применения серверного фильтра, аргумент Имя фильтра должен быть пустым.

Действительное предложение SQL WHERE (без слова WHERE) или выражение, выполняющее отбор записей таблицы, формы или отчета.

Примечание: В выражении аргумента Where Condition левая часть выражения обычно содержит имя поля из таблицы или запроса для формы или отчета. Правая часть выражения обычно содержит поле условия которое вы хотите применить к этому полю для ограничения или сортировки записей. Например, в качестве условия можно использовать имя в другой форме, которое содержит значение, которое должно соответствовать записям в первой форме. Имя этого управления должно быть полностью заявляемо, например:

Forms! имя_формы! имя_элемента_управления

Имена полей заключаются в двойные кавычки, а строковые литералы — в одинарные.

Максимальная длина аргумента условия Where составляет 255 знаков. Если нужно указать более длинное предложение SQL WHERE, используйте метод ПрименитьФильтр объекта DoCmd из модуля Visual Basic для приложений (VBA). Длина предложений SQL WHERE в VBA может составлять до 32 768 знаков.

Примечание: Аргумент Имя фильтра можно использовать, если уже определен фильтр, содержащий соответствующие данные. С помощью аргумента условия Where можно непосредственно задать ограничительное условие. При использовании обоих аргументов Access применяет предложение WHERE к результатам фильтрации. Необходимо использовать один или оба этих аргумента.

Замечания

Фильтр или запрос можно применить к форме в представлении формы или режиме таблицы.

Применяемые фильтр и условие WHERE становятся значением свойства Фильтр или ServerFilter формы или отчета.

При работе с таблицами и формами выполнение этой макрокоманды аналогично выбору команды Применить фильтр/Отсортировать или Применить серверный фильтр в меню Записи. Команда меню применяет последний созданный фильтр к таблице или форме, в то время как макрокоманда ПрименитьФильтр применяет указанный фильтр или запрос.

Если в базе данных Access после выполнения макрокоманды Применить фильтр навести указатель мыши на элемент Фильтр в меню Записи и выбрать команду Расширенный фильтр, Окно расширенного фильтра или сортировки отображает условия фильтрации, выбранные с помощью этой макрокоманды.

Чтобы удалить фильтр и отобразить все записи таблицы или формы в базе данных Access, можно воспользоваться макрокомандой ПоказатьВсеЗаписи или командой Удалить фильтр в меню Записи. Чтобы убрать фильтр в проекте Access (ADP), можно вернуться в окно серверный фильтр по форме и удалить все условия фильтрации, а затем выбрать команду Применить серверный фильтр в меню Записи на панели инструментов или задать для свойства ServerFilterByForm значение Ложь (0).

При сохранении таблицы или формы Access сохраняет фильтр, заданный в соответствующем объекте в данный момент, однако не применяет его автоматически в следующий раз при открытии этого объекта (при этом автоматически применяются условия сортировки, которые были применены к объекту на момент его сохранения). Чтобы автоматически применять фильтр при первом открытии формы, задайте макрос с макрокомандой ПрименитьФильтр или процедуру события, содержащую метод ПрименитьФильтр объекта DoCmd в качестве значения свойства события OnOpen формы. Применить фильтр также можно с помощью макрокоманд ОткрытьФорму и ОткрытьОтчет или их соответствующих методов. Чтобы автоматически применять фильтр при первом открытии таблицы, ее можно открывать с помощью макроса, содержащего макрокоманду ОткрытьТаблицу, за которой сразу следует макрокоманда ПрименитьФильтр.

Пример

Применение фильтра с помощью макроса

Следующий макрос содержит набор действий, каждый из которых фильтрует записи для формы списка телефонов клиентов. В нем показано использование действий ApplyFilter, ShowAllRecordsи GoToControl. Кроме того, в нем показано использование условий для определения того, какой в группе параметров был выбран параметр. Каждая строка действия связана с кнопкой-перегной, которая выбирает набор записей, начиная с A, B, C и так далее, или все записи. Этот макрос должен быть присоединен к событию AfterUpdate группы параметров CompanyNameFilter.

Источник

Понравилась статья? Поделить с друзьями:
Добавить комментарий
  • Как сделать успешный бизнес на ритуальных услугах
  • Выездной кейтеринг в России
  • Риски бизнеса: без чего не обойтись на пути к успеху
  • access привязать поле формы к таблице
  • access при открытии запускать форму