Фильтрация позволяет просматривать в базах данных Access только те данные, которые необходимо отображать. Фильтры можно использовать для отображения определенных записей в форме, отчете, запросе или таблице, а также для печати только определенных записей из отчета, таблицы или запроса. Применяя фильтр, можно ограничить данные в представлении, не изменяя структуру базового объекта.
В этой статье
- Чем полезны фильтры
- Выбор и применение типа фильтра
- Удаление и повторное применение фильтра
- Очистка фильтра
- Сохранение фильтра
Чем полезны фильтры
Так как представление после применения фильтра содержит только записи с выбранными значениями, остальные данные остаются скрытыми до тех пор, пока фильтр не будет снят.
Примечание
Столбцы в таблицах и элементы управления форм и отчетов, привязанные к выражениям, не поддерживают фильтрацию.
Существует несколько типов фильтров, и некоторые из них легко применять и снимать. Access содержит несколько общих фильтров, встроенных в каждое представление. Доступность команд фильтра зависит от типа и значений поля.
Например, чтобы просмотреть записи людей, чьи дни рождения приходятся на определенный месяц, откройте столбец "ДатаРождения ", на вкладке " Главная " в группе "Сортировка & фильтр " нажмите кнопку "Фильтр", а затем в диалоговом окне выберите пункт "Фильтры по дате " и укажите нужный период даты.
1. Доступные фильтры зависят от типа данных в выбранном столбце.
- Фильтр "Все даты в периоде " пропускает часть дня и года в значениях даты.
В этом отфильтрованном представлении отображаются только записи, в которых в поле "ДатаРождения " в качестве месяца установлен апрель.
1. Значок фильтра в заголовке столбца и на панели навигатора записей указывает, что текущее представление отфильтровано по столбцу "ДатаРождения".
2. При наведении указателя мыши на заголовок столбца в режиме таблицы будет показано текущее условие фильтра.
Примечание
Когда вы применяете фильтр к столбцу, который уже отфильтрован, предыдущий фильтр автоматически удаляется. Хотя для поля одновременно может быть назначен только один фильтр, вы можете указать свой фильтр для каждого поля в представлении.
Например, чтобы просмотреть имена контактов, которые живут в Великобритании и чьи дни рождения выпадают на апрель, можно отфильтровать таблицу "Контакты" по полю "СтранаРегион", а также по полю "ДатаРождения". Если фильтры применяются к нескольким полям в одном представлении, они объединяются с помощью оператора AND, например:
СтранаРегион = РФ AND ДатаРождения (месяц) = апрель
Чтобы отменить изменения к представлению без фильтра, выполните указанные ниже действия. Удалите фильтры. При этом фильтры временно удаляются, и вы можете вернуться к первоначальному представлению.
Для переключения между отфильтрованным и неотфильтрованным представлениями: в группе Сортировка & фильтр на вкладке Главная щелкните Переключить фильтр.
Окончательное удаление фильтра из представления Очистка фильтра. Сведения об очистке фильтров см. в разделе "Очистка фильтра".
Параметры фильтрации будут действовать до тех пор, пока вы не закроете объект, даже если вы переключитесь на другое представление объекта. Другими словами, если вы фильтруете форму в режиме таблицы, параметры фильтра будут действовать даже при переключении в режим формы или макета и будут действовать до закрытия формы. Если сохранить объект с примененным фильтром, этот фильтр будет доступен при следующем открытии объекта. Сведения о сохранении фильтра см. в разделе "Сохранение фильтра " в этой статье.
Выбор и применение типа фильтра
Для типа данных можно выбрать один из нескольких готовых фильтров. Эти фильтры представлены в виде команд меню в режимах таблицы, формы, отчета и макета. Для фильтрации таблицы или формы можно использовать не только эти фильтры, но и заполнение формы (фильтр по форме).
Если вы уверенно работаете с выражениями, то можете создавать собственные фильтры с помощью параметров на вкладке Фильтр документа.
Выберите один из следующих типов фильтров:
Общие фильтры: фильтрация по определенным значениям или диапазону значений.
Фильтр по выделению: фильтрация всех строк таблицы, содержащих значение, соответствующее выбранному в строке, с помощью фильтрации в режиме таблицы.
Фильтр по форме: для фильтрации по нескольким полям в форме или таблице или при поиске определенной записи.
Расширенный фильтр: тип фильтра, в котором определяются условия настраиваемого фильтра.
Примечание
Если в каком-то из представлений команды фильтра не отображаются, возможно, фильтрация отключена разработчиком формы или базы данных. Обратитесь за помощью к разработчику.
Общие фильтры
Общие фильтры предлагаются для полей всех типов, кроме полей объектов OLE и полей, в которых отображаются вычисленные значения. Список доступных фильтров зависит от типа данных и значений выбранного поля.
Щелкните правой кнопкой мыши поле, которое требуется отфильтровать. Чтобы выполнить фильтрацию по нескольким столбцам или элементам управления, необходимо выбрать и отфильтровать каждый столбец или элемент управления по отдельности либо использовать расширенный фильтр. Дополнительные сведения см. в разделах Фильтр по форме и Расширенные фильтры этой статьи.
Например, чтобы просмотреть фильтры, доступные для поля "ДатаРождения", на вкладке " Главная " в группе "Сортировка & фильтр " нажмите кнопку "Фильтр".
1. Чтобы отфильтровать определенные значения, используйте список поля проверки. Этот список содержит все значения, которые отображаются сейчас в поле.
2. Для фильтрации по диапазону значений выберите один из этих фильтров и укажите требуемые значения. Например, чтобы посмотреть дни рождения с текущей даты и до конца года, выберите вариант Между и в диалоговом окне Диапазон дат укажите начальную и конечную даты. Чтобы просмотреть все дни рождения, которые приходятся на определенную дату, щелкните ее и отобразятся все дни рождения, которые приходятся на нее.
Следует отметить, что значения в поле даты определяют список фильтров для конкретного типа. Если самое недавнее значение даты попадает в последние два года, список фильтров будет более полным. Если все даты в поле оказываются более чем двухгодичной давности, список фильтров будет короче.
Примечание
Фильтры, зависящие от типа, недоступны для полей объектов OLE, вложений и логических полей. Список значений недоступен для полей с длинным текстом и для полей форматированного текста.
Применение общего фильтра
Откройте таблицу, запрос, форму или отчет в режиме таблицы, формы, отчета или макета.
Убедитесь, что представление еще не отфильтровано. На панели выбора записей проверьте наличие значка Без фильтра или затененного значка Нет фильтра.
Совет
Чтобы удалить все фильтры для конкретного объекта, на вкладке Главная в группе Сортировка и фильтр нажмите кнопку Дополнительно, а затем выберите команду Очистить все фильтры.
Щелкните в любом столбце или элементе управления, который соответствует первому полю, которое нужно отфильтровать, и на вкладке "Главная" в группе "Сортировка & фильтр" нажмите кнопку "Фильтр".
Чтобы применить общий фильтр, выполните указанные ниже действия. Наведите указатель мыши на текстовый фильтр (фильтрычисел илидаты), а затем выберите нужный фильтр. Для фильтров Равно и Между предлагается ввести необходимые значения.
Совет
Некоторые символы, например *, % и ?, в текстовом поле фильтра воспринимаются как специальные. Например, звездочка (*) представляет строку символов, поэтому строка "а*" соответствует любой строке, которая начинается с буквы а, а не только буквальному значению а*. Чтобы символ не воспринимался как специальный, заключайте его в квадратные скобки [], например: a[*]. В базах данных, использующих стандарт ANSI-89, специальными считаются символы *, ?, [, ], !, - и #. В базах данных, использующих стандарт ANSI-92, специальными считаются символы %, _, [, ], ^ и -. В Access можно использовать любой стандарт, но смешивать эти два стандарта (например, ?a*) в одном конкретном выражении невозможно.
Чтобы применить фильтр на основе значений полей, выполните следующие действия. Снимите флажки для проверки рядом со значениями, по которым не нужно выполнять фильтрацию, и нажмите кнопку "ОК".
Чтобы отфильтровать по одному или только по нескольким значениям длинного списка, снимите флажок проверки (Выделить все), а затем выберите нужные значения.
Фильтрация значений NULL (значение NULL указывает на отсутствие данных) в текстовом, числовом полях и полях даты: В списке полей проверки снимите флажок проверки (Выбрать все), а затем установите флажок для проверки рядом с полем (Пустые).
Фильтр по выделению
Чтобы просмотреть все строки таблицы, содержащие значение, соответствующее значению в строке, можно быстро отфильтровать таблицу, выбрав определенное значение и щелкнув команду "Выделить ". В раскрывающемся списке отображаются доступные параметры фильтрации. Эти параметры зависят от типа данных выбранного значения. Другой способ доступа к параметрам фильтра выделения — щелкнуть ячейку правой кнопкой мыши.
Например, если в поле "ДатаРождения" выделено значение "21.02.1967", то на вкладке " Главная " в группе "Сортировка & фильтр " нажмите кнопку "Выделить ", чтобы отобразить фильтр по командам выделения, а затем выберите параметр фильтрации.
Список команд зависит также от того, какая часть значения выделена. Например, если вы выделяете всего несколько символов значения, список команд будет различаться в зависимости от выделенной части.
1. Фильтр в начале значения поля...
2. ... Середина значения поля...
3. ... или конец значения поля.
Примечание
Фильтрация по частично выделенному значению недоступна для многозначных полей. Команда Выделение недоступна для вложений.
Чтобы удалить фильтр, на вкладке " Главная " в группе "Сортировка & фильтр " щелкните "Переключить фильтр" или щелкните "Дополнительно " и нажмите кнопку "Очистить все фильтры".
Применение фильтра по выделенному фрагменту
- Откройте таблицу, запрос, форму или отчет в режиме таблицы, формы, отчета или макета.
- Убедитесь, что представление еще не отфильтровано. На панели выбора записей проверьте наличие значка Без фильтра или затененного значка Нет фильтра.
- Перейдите к записи, содержащей значение, которое вы хотите использовать в фильтре, и щелкните внутри столбца (в режиме таблицы) или элемента управления (в режиме формы, отчета или макета).
Чтобы отфильтровать на основе частичного выбора; выделите нужные символы на вкладке " Главная " в группе "Сортировка & фильтр " нажмите кнопку "Выделение", а затем выберите фильтр, который нужно применить.
Фильтр по форме
Этот фильтр полезен, если вы хотите отфильтровать несколько полей в форме или таблице или если вы пытаетесь найти определенную запись. В Access создается пустая форма или таблица, аналогичная исходной, в которой можно заполнить любые поля. После этого Access находит записи, содержащие указанные значения.
Примечание
Значения многозначных полей невозможно указать с помощью метода фильтрации по форме, а также для полей с типом данных "Длинный текст", "Гиперссылка", "Логический" или "Объект OLE", хотя можно указать значения для других полей в наборе записей.
Например, если требуется найти все записи клиентов, в которых контактное лицо имеет должность "Владелец" и это лицо находится в Портленде или Юджине, откройте таблицу или форму "Клиенты" и на вкладке " Главная " в группе "Сортировка & фильтр " щелкните "Дополнительно" и выберите пункт "Фильтр по форме".
Введите первый набор значений, затем нажмите вкладку "Или " в нижней части таблицы или формы и введите следующий набор значений. Обратите внимание: если вы хотите, чтобы значение поля работало как фильтр независимо от других значений полей, его необходимо вводить на вкладке "Поиск для " и на каждой вкладке "Или ". Каждая вкладка "Или " представляет собой альтернативный набор значений фильтра.
Чтобы просмотреть только записи, соответствующие введенным данным, выполните следующие действия. На вкладке " Главная " в группе "Сортировка & фильтр " нажмите кнопку "Переключить фильтр".
Применение фильтра с помощью заполнения формы
Откройте таблицу или запрос в режиме таблицы или форму в режиме формы.
Убедитесь, что представление еще не отфильтровано. На панели выбора записей проверьте наличие значка Без фильтра или затененного значка Нет фильтра.
На вкладке Главная в группе Сортировка и фильтр нажмите кнопку Дополнительно, а затем в контекстном меню выберите команду Фильтр по форме.
Выполните указанные ниже действия, соответствующие выбранному режиму.
Режим таблицы: Щелкните первую строку столбца, для которого требуется выполнить фильтрацию, щелкните появившуюся стрелку и выберите значение. Чтобы добавить дополнительные значения, просто щелкните вкладку "Или " в нижней части таблицы и выберите другое значение.
Представление формы: щелкните стрелку, отображенную в элементе управления, и выберите значение для фильтрации. Чтобы добавить дополнительные значения, щелкните вкладку Или в нижней части формы и выберите другое значение.Совет
Невозможно указать значения многозначных полей с помощью формы "Фильтр по", но можно указать значения для немногозначного поля в наборе записей.
- Чтобы указать список возможных значений для поля, используйте оператор or. Например, укажите "Портленд" или "Орегон" в поле "Город", чтобы отфильтровать записи, содержащие любое из значений.
- Для фильтрации по состоянию элемента управления, например флажка или кнопки, щелкните элемент управления, чтобы привести его в нужное состояние. Если элемент управления больше не нужно использовать в качестве условия фильтрации записей, верните его в нейтральное состояние, то есть сделайте так, чтобы он был недоступен (затенен).
- Чтобы отфильтровать записи со значениями null (отсутствует), отличными от null, пустыми (пусто или "") или непустыми, в поле введите Is Null, Is Not Null, "" или Not "".
Если вы хотите указать два альтернативных набора условий, например чтобы отображались только имена контактов, для которых в поле CountryRegion включено значение "США" и даты рождения выпадают на апрель, вы можете выполнить любое из следующих действий:
- Чтобы получить все записи, удовлетворяющие одному из нескольких наборов условий, укажите условия, введя первый набор условий, перейдите на вкладку Или и введите следующий набор условий. Обратите внимание: если вы хотите, чтобы значение поля работало как фильтр независимо от других значений полей, его необходимо вводить на вкладке "Поиск для " и на каждой вкладке "Или ". Другими словами, вкладка "Поиск для " и каждая из вкладок "Или " представляют собой альтернативный набор значений фильтра.
- Также обратите внимание, что при каждом добавлении условия для поля на вкладку "Или " в Access создается новая вкладка "Или ". Это позволяет указать несколько критериев "или". Фильтр возвращает любую запись, в которой содержатся все значения, указанные на вкладке Найти, или все значения, указанные на первой вкладке Или, или все значения, указанные на второй вкладке Или, и т. д.
Чтобы удалить фильтр и показать все записи, снова нажмите кнопку "Переключить фильтр ".
Чтобы изменить фильтр по форме, щелкните "Дополнительно", а затем снова нажмите "Фильтровать по форме ". Появится текущий набор условий фильтра.
Расширенный фильтр
В некоторых случаях может потребоваться применить расширенный фильтр, в таком случае вам придется задать условие фильтра самостоятельно. Например, чтобы найти записи, которые содержат даты, которые приходятся на последние семь дней или последние шесть месяцев.
Для использования расширенных фильтров требуются письменные выражения. Выражения аналогичны формулам в Excel и условиям, заданным при создании запроса.
В качестве примера можно привести расширенный фильтр, чтобы найти имена контактов, чьи дни рождения приходились на последние семь дней. После применения расширенного фильтра вы можете еще больше ограничить результаты поиска, показывая результаты только для тех стран/регионов, которые являются США.
Применение расширенного фильтра
Откройте таблицу, запрос, форму или отчет в режиме таблицы, формы, отчета или макета.
Убедитесь, что представление еще не отфильтровано. В строке переходов по записям проверьте, что значок Нет фильтра отображается затененным (недоступен). Если строка переходов по записям не отображается, нажмите кнопку Дополнительно в группе Сортировка и фильтр на вкладке Главная и затем выберите команду Очистить все фильтры (если команда Очистить все фильтры недоступна, никакие фильтры не применены).
На вкладке Главная в группе Сортировка и фильтр нажмите кнопку Дополнительно, а затем в контекстном меню выберите команду Расширенный фильтр.
Добавьте в сетку поля, к которым требуется применить фильтр.
В строке Условия отбора укажите условие для каждого поля. Условия применяются в виде набора, и отображаются только записи, которые соответствуют всем условиям в строке Условия отбора. Чтобы указать альтернативные условия для отдельного поля, введите первое условие в строке Условия отбора, второе условие в строке или и т. д.
Совет
- Весь набор условий в строке или применяется в качестве альтернативы для набора условий в строке Условия отбора. Любое условие, которое должно применяться в обоих наборах условий, необходимо ввести как в строку Условия отбора, так и в строку или. Нажмите кнопку Переключить фильтр, чтобы увидеть отфильтрованные строки.
- Чтобы научиться задавать условия, примените к представлению общий фильтр или фильтр по выделенному, который позволяет получить желаемый результат. Затем, когда к представлению применен фильтр, откройте вкладку "Фильтр объекта"
Специальные команды на вкладке "Фильтрация документа"
На вкладке документа Фильтр доступны две специальные команды. Если щелкнуть правой кнопкой мыши в любом месте вкладки над бланком, в контекстном меню будут доступны команды Загрузить из запроса и Сохранить как запрос.
Команда Загрузить из запроса позволяет загрузить макет выбранного запроса в сетку. Это позволяет использовать условия запроса в качестве условий фильтра.
Команда Сохранить как запрос позволяет сохранить параметры фильтра в виде нового запроса.
Удаление и повторное применение фильтра
Чтобы переключиться в неотфильтрованное представление данных, удалите фильтры, щелкнув "Отфильтрованные" на панели навигатора записей, чтобы отменить изменения до полного представления.
Удаляемые текущие фильтры временно удаляются из всех полей в представлении. Например, если вы сначала применяете фильтры по полям "СтранаРегион" и "ДатаРождения", а затем удаляете фильтры, то снова отображаются все записи.
Чтобы повторно применить последние фильтры, щелкните "Без фильтра" на панели навигатора записей.
Очистка фильтра
Фильтр, который больше не нужен, можно очистить. При очистке фильтр удаляется из представления, и его уже нельзя повторно применить, щелкнув надпись Без фильтра в строке состояния. Можно очистить один фильтр из отдельного поля или все фильтры из всех полей в представлении.
- Чтобы удалить один фильтр из одного поля: Щелкните правой кнопкой мыши отфильтрованный столбец или элемент управления и выберите пункт Очистить фильтр от имени поля.
- Чтобы удалить все фильтры из всех полей, выполните следующие действия. На вкладке " Главная " в группе "Сортировка & фильтр " щелкните "Дополнительно", а затем в контекстном меню выберите команду "Очистить все фильтры ".
Сохранение фильтра
Если вы будете использовать фильтр снова, возможно, будет полезно сохранить его. Параметры фильтра, действующие на момент закрытия таблицы, запроса, формы или отчета, автоматически сохраняются вместе с объектом и доступны для повторного применения. Но по умолчанию параметры фильтра не применяются автоматически при следующем открытии объекта.
Чтобы обеспечить автоматическое применение текущих фильтров при следующем открытии таблицы, запроса, формы или отчета, на странице свойств объекта задайте для свойства объекта значение"Да". Свойство FilterOnLoad применяется при следующем открытии объекта. При изменении этого параметра для применения нового параметра необходимо закрыть объект и открыть его снова.
Примечание
Свойство FilterOnLoad применяется только при загрузке объекта. Если задать его для объекта в конструкторе и затем переключиться в другое представление, новое значение применено не будет. Чтобы изменения в параметре свойства FilterOnLoad вступили в силу, необходимо закрыть и снова открыть объект.