Как сделать подчиненную таблицу в access

Обновлено: 07.07.2024

Цель изучения темы: научиться использовать элементы управления на формах, освоить приёмы назначения команд, гиперссылок и макросов для вызова реакции системы при взаимодействии пользователя с элементами управления на формах.

Под интерфейсом пользователя следует понимать такое представление справочной и командной информации, которая сгруппирована по определённым правилам, и даёт возможность с одной формы обращаться к различным таблицам, запросам, формам, отчётам и внешним объектам, по отношению к базе данных. Любой программный продукт в виде приложения создаётся под нужды определённой категории пользователей, которым удобно ориентироваться на форме приложения, выбирать необходимые тематические направления и запускать их. Обычно при создании интерфейса пользователя используют элементы управления, например, командные кнопки, селекторные кнопки, текстовые окна для ввода информации, рисунки и т.п. Каждый элемент управления обладает свойствами (для изменения внешнего вида элемента) и методами – небольшими программами, которые позволяют выполнять определённые действия, когда к этим элементам обращается пользователь. В серьёзных приложениях все возможные действия пользователя алгоритмизируются, по алгоритмам создают программу обработки события взаимодействия пользователя с элементом управления. Разработчики Access 2010 учли потенциальные потребности пользователей при взаимодействии с интерфейсом, который должен помогать осуществлять навигацию среди множества объектов (таблиц, запросов, форм, отчётов). Разработчику базы данных предложены варианты подходов при создании интерфейсов пользователя. Каждый подход имеет свои недостатки и достоинства, но, тем не менее, когда хотят оперативно создать интерфейс, используют самые простые возможности Access 2010. Связи между элементом управления (Рис. 129), внедрённого на форму, и объектом, который следует представить пользователю, организуются с помощью: встроенных программ (методов), которыми обладают элементы управления; гиперссылок; макросов и программных модулей на встроенном языке VBA .



Рис. 130. Варианты создания вкладок на форме навигации


Например, выбрали вариант , после того, как откроется форма навигации (Рис. 131), её можно заполнять и редактировать.


Рис. 131. Внешний вид формы навигации


Рис. 132. Назначение процедуры обработки события для кнопки


Рис. 133. Выбор формы для связывания с кнопкой


Рис. 134. Пример созданной формы для навигации


Объекты, которые входят в состав базы данных Access , являются самостоятельными элементами. Пользователю требуется организовать доступ к внешним объектам, к таблицам, к запросам, к отчётам, решить эту многоплановую задачу без какого-либо программирования можно, создав форму, в которой используются элементы управления, а связями между формой и отдельными объектами базы данных являются гиперссылки. Удобством разработки такого интерфейса является то, что не требуется создавать специальных программных модулей. Предположим, планово-экономическому отделу организации необходимо выполнять такие функции, как: вносить изменения в наименования должностей сотрудников; изменять коэффициенты доплат; готовить презентационные материалы для доклада руководству. Следовательно, необходимо подготовить такой интерфейс, который позволяет с одной формы осуществлять взаимодействие сотрудника планово-экономического отдела с таблицами, внешними приложениями, запросами и готовыми формами. Наиболее простой вариант решения такой задачи – создать общую форму для подключения других объектов, а связями будут являться гиперссылки. Спроектируем интерфейс таким образом, что пользователь увидит две вкладки. На первой будет группа объектов, которые доступны для внесения изменений, на второй – объекты, которые требуются для анализа данных. Удобнее всего начать работу с нуля, для этого на панели базы данных щёлкните по значку - Пустая форма.


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


4. Перенесите на вкладку элемент - Кнопка. Сделайте надпись на кнопке, например, «Открыть таблицу Excel для правки номенклатуры должностей.


Рис. 135. Пример создания гиперссылки на объект базы данных


Рис. 136. Пример созданной формы с элементами управления и гиперссылками для связи с объектами

Напомним, что Access 2010 содержит заранее разработанные различные типы макрокоманд, позволяющие автоматизировать работу приложения. Под макросом следует понимать набор из одной или нескольких макрокоманд, выполняющие определённые операции. Поэтому, задачей разработчика является продумать сценарий действий, которые должны происходить с объектами базы данных, а затем под каждое отдельное действие – подобрать макрокоманду. Макросы создают простые, состоящие из одной макрокоманды и сложные, включающие логические операции и несколько макрокоманд, связанных между собой. В этом разделе рассмотрены возможности, которые могут быть реализованы с помощью макросов.

11.4.1. Как создать и запустить макрос

Макрос является объектом базы данных, который можно использовать неоднократно в различных вариантах. Для того что бы создать простейший макрос необходимо подумать о его дальнейшем использовании. Предположим, перед тем, как приступить к изменению исходной таблицы, пользователя следует предупредить об этом, а затем открыть необходимую таблицу. Получается, что необходимо выполнить два действия. Первое действие – запустить окно с предупреждением. Второе действие – открыть необходимую таблицу.



Рис. 138. Окно для создания макроса

3. Создайте второе действие, которое должен совершать макрос, в окне макроса раскройте список , выберите макрокоманду , заполните строки в бланке макроса. В итоге, должно получиться, как показано на рисунке 139.


Рис. 139. Макрос, включающий 2 шага действий

1. Щёлкните правой кнопкой мыши в окне переходов по наименованию формы - , откройте её командой .


Обратите внимание, что макрос был сконструирован из макрокоманд, которые находятся в списке системы Access . Удобством использования макроса является и то, что он распространяется на все типы объектов базы данных.


Так как макросы в Access 2010 состоят из стандартных макрокоманд (кирпичиков), то можно вместо того, что бы создавать сложные отборы данных в запросах, переложить всю заботу поиска необходимых сведений на макросы. Предположим, руководство организации интересуют конкретные сведения о сотрудниках, которые занимают определённые должности. Скорее всего, руководство уже запуталось в наименованиях должностей на предприятии, это связано с постоянной реорганизацией и созданием приказов о внесении изменений в штатную расстановку. Наверное, руководителю следует предоставить форму с перечнем существующих должностей на предприятии, а далее, дать возможность по наименованию должности найти фамилии сотрудников их место работы и другие сведения. Попробуем создать взаимодействие между формами с помощью макроса.

Для решения поставленной задачи понадобится иметь две формы. Первая форма – главная, которая содержит список должностей на определённый момент времени в организации. Вторая форма – подчинённая, должна содержать сведения, которые интересуют руководителя. Из подчинённой формы должны выбираться данные, относящиеся к условию, которое задаёт руководитель. Следовательно, связь между формами возлагается на программу, которая формируется с помощью макросов. Выполним несколько шагов для решения, поставленной задачи.

Шаг 1. Разработка главной формы для руководителя.


Рис. 142. Форма с перечнем должностей в организации



Рис. 144. Закладка с бланком для создания макроса

Шаг 2. Выбор подчинённой формы и связывание её с главной формой


Рис. 145. Внешний вид формы, которая будет отображаться при запуске запроса из главной формы

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

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

3. Добавьте новую макрокоманду (Рис. 146), предварительно раскройте список , из которого выберите строку с наименованием .



Рис. 147. Результат работы макроса в форме

Вопросы для самоконтроля

1. Каким образом можно расположить элемент управления на форме?

2. Как задать свойства элементу управления?

3. Какие средства используют для организации выполнения действий, после того, как пользователь обратится к элементу управления?

4. Можно ли создать интерфейс пользователя для взаимодействия с несколькими формами без использования элементов управления на форме?

5. При создании формы навигации, что отражается на ярлыке вкладки, что отображается на поле вкладки?

6. Как связать элемент управления на форме с необходимым объектом внутри базы данных и с внешним объектом с помощью гиперссылки?

7. Как спроектировать макрос для внедрения в форму?

8. Можно ли создавать макросы с условиями, как это сделать?

9. Где отображаются макросы, накопленные в базе данных, что необходимо сделать, чтобы запустить макрос?

Про связанные таблицы я уже упоминал неоднократно, но как создать эти самые связи - пока еще не сказал. Теперь настало время посвятить Вас в таинство связывания таблиц, присущее всем базам данных.

Для этой цели в Access есть специальное диалоговое окно, называемое Схема данных. Для его открытия достаточно нажать на одноименную кнопку в панели инструментов, или воспользоваться командой Сервис - Схема данных.

Если до этого момента, связи между таблицами небыли заданы, то дополнительно будет открыто окно Добавление таблицы. В этом окне будут перечислены все уже имеющиеся в базе данных таблицы, из которых необходимо выбрать те, которые необходимы для включения в структуру межтабличных связей. Выполняется это выделением названия соответствующей таблицы и нажатием на кнопке Добавить. При необходимости можно выделись сразу несколько имен, удерживая при этом клавишу Ctrl.

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

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

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

  • Обеспечение условия целостности данных - флаг служит для защиты от случаев, когда при удалении записей из одной таблицы, связанные с ними данные в других таблицах останутся без изменения. Для создания связи с таким условием целостности необходимо, чтобы поле основной таблицы было ключевым (см. "Шаг 5 - Ключевые и уникальные поля") и оба поля имели одинаковый тип (про типы полей говорилось в "Шаг 3 - Свойства и типы полей").
  • Каскадное обновление связанных полей - установка этого флага обеспечит одновременное обновление данных во всех подчиненных таблицах, при их добавлении или редактировании в главной таблице. Например, если будет изменен код книги в таблице Книги, то это приведет к автоматическому изменению этого значения в таблицах Цитаты и КнигАвторы.
  • Каскадное удаление связанных полей - это свойство действует аналогично каскадному обновлению, но приводит к удалению данных из всех подчиненных таблиц, при их удалении в главной таблице.

Нажатие на кнопку Объединение позволит более точно установить параметры объединения записей, выбором одного из трех возможных вариантов. Тексты каждого из переключателей - говорят сами за себя, поэтому внимательного прочтения содержимого окна будет вполне достаточно для выбора нужного положения.

Все созданные связи прописываются и сохраняются в структуре БД. Само окно Схема данных служит для более наглядного отображения этих связей. Чтобы удалить уже имеющуюся связь или отредактировать ее свойства, необходимо установить указатель на линию связи и нажать правую кнопку мыши для вызова соответствующего контекстного меню.

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

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

Просмотр, создание, редактирование и удаление связей осуществляются на схеме данных (рис. 2.21). Чтобы открыть схему данных, нажмите кнопку Схема данных на вкладке Работа с базами данных .

Рис. 2.21. Схема данных

Итак, начнем с рассмотрения процедуры создания связи.

Если вы хотите создать связь между двумя таблицами, выполните следующие действия.

1. Перед созданием связи обе связываемые таблицы должны отображаться на схеме данных. Если таблица отсутствует на схеме данных, ее требуется вначале добавить. Для этого нажмите кнопку Отобразить таблицу на вкладке Конструктор . Затем в появившемся окне Добавление таблицы щелкните кнопкой мыши на названии таблицы и нажмите кнопку Добавить . После добавления всех нужных таблиц нажмите кнопку Закрыть .

2. Щелкните кнопкой мыши на названии поля, которое является первичным ключом в родительской таблице. Удерживая нажатой кнопку мыши, перетащите поле первичного ключа, наведите указатель на название того поля дочерней таблицы, которое должно стать вторичным ключом (при этом в изображении указателя появится знак +), и отпустите кнопку мыши.

3. На экране появится окно Изменение связей (рис. 2.22). В этом окне указаны названия связываемых полей. Убедитесь, что поля для создания связи выбраны верно. В случае обнаружения ошибки выберите другие поля.

Рис. 2.22. Окно Изменение связей

4. Выберите режим обеспечения целостности данных (об этом режиме подробно будет рассказано в следующем подразделе). Рекомендуется установить флажок Обеспечение целостности данных . Затем нажмите кнопку Создать .

5. Сохраните изменения схемы данных, нажав комбинацию клавиш Ctrl+S .

Далее будет описано, как включить режим обеспечения целостности данных при создании или изменении связи.

Обеспечение целостности данных

Целостность данных может нарушиться в следующих ситуациях:

• в дочернюю таблицу добавляется новая запись, содержащая некорректное (отсутствующее в первичном ключе родительской таблицы) значение вторичного ключа, или в существующей записи дочерней таблицы значение вторичного ключа изменяется на некорректное;

• из родительской таблицы удаляется запись, в результате чего ссылки на эту запись становятся некорректными;

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

Исключить все эти ситуации позволяет режим автоматического обеспечения целостности данных. Этот режим включается отдельно для каждой связи в окне Изменение связи (см. рис. 2.22). Если установить флажок Обеспечение целостности данных , программа Access не допустит выполнения операций, ведущих к нарушению ссылочной целостности. Так, запрещается:

• сохранение записи с некорректным значением вторичного ключа;

• удаление родительской записи, если для связи не установлен флажок каскадное удаление связанных записей ; либо вместе с родительской записью автоматически удаляются дочерние записи, если флажок каскадное удаление связанных записей установлен;

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

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

После того как режим обеспечения целостности данных включен, над линией связи в схеме данных появляется символ 1 возле родительской таблицы и символ ? возле дочерней таблицы (см. рис. 2.21). Благодаря этим подписям вы сразу увидите, что для данной записи поддерживается целостность данных.

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

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

На экране появится окно Изменение связей (см. рис. 2.22). В этом окне выполните необходимые изменения и нажмите кнопку ОК .

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

Чтобы удалить связь, щелкните кнопкой мыши на линии связи в схеме данных (линия при этом станет жирной) и нажмите клавишу Delete . На появившейся панели подтвердите необходимость удаления связи, нажав кнопку Да .

На этом заканчивается рассмотрение операций со связями. Последний подраздел этого раздела посвящен просмотру дочерних записей при работе с родительской таблицей.

Отображение дочерних записей

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

Чтобы увидеть записи, ссылающиеся на данную родительскую запись, нажмите знак + слева от записи. Откроется подтаблица, содержащая дочерние записи (рис. 2.23).

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

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

1) Перейдите в режим конструктора (кнопка Режим вкладки Главная ).

Рис. 2.23. Просмотр дочерних записей

3) В появившемся окне свойств (рис. 2.24) щелкните кнопкой мыши на значении свойства Имя подтаблицы . Справа от значения свойства появится кнопка

4) Нажмите эту кнопку и выберите из списка название дочерней таблицы, записи которой будут отображаться в подтаблице.

5) Сохраните изменения, нажав сочетание клавиш Ctrl+S .

6) Вернитесь в режим таблицы (нажмите кнопку Режим на вкладке Главная или Конструктор ).

Теперь при нажатии знака + будут отображаться записи выбранной вами подтаблицы.

Настроив связи между таблицами, вы завершили создание структуры базы данных. Последним аспектом работы с таблицами, о котором будет рассказано, станет просмотр данных в режиме таблицы.

Рис. 2.24. Выбор подтаблицы

Данный текст является ознакомительным фрагментом.

Продолжение на ЛитРес

Стереотипы связей

5.4. Настройка связей типов файлов с приложениями

5.4. Настройка связей типов файлов с приложениями Настройка программ по умолчаниюДля смены программ, устанавливаемых для определенных типов файлов по умолчанию, в Windows Vista используется специальное окно Программы по умолчанию (рис. 5.11), которое можно открыть с помощью меню

6.1.4. Работа с таблицами

6.1.4. Работа с таблицами Думаю, не нужно говорить о важности таблиц в современных документах. Ведь таблица считается одним из самых эффективных способов представления данных. Для работы с таблицами используются команды меню Таблица. Изучите это меню: оно содержит все

Работа с таблицами

2.3. Работа с таблицами

2.3. Работа с таблицами В этом разделе вы узнаете, как создать, изменить и удалить таблицу, как просмотреть информацию о ней и список всех таблиц в текущей базе данных. Начнем с наиболее сложной команды – создания таблицы.Создание таблицыЧтобы создать таблицу, выполните

15.4. Работа с таблицами

15.4. Работа с таблицами Для работы с таблицами предназначено меню Таблица, содержащее все необходимые команды: добавление и удаление строк и столбцов таблицы, объединение, разъединение ячеек и т. д.Начнем с самого начала — создадим небольшую таблицу. Для этого выполните

Организация связей между таблицами

Организация связей между таблицами Исходные таблицы в Access представляют собой обычные плоские таблицы Конечно, они не позволяют формировать иерархические информационные структуры; для данной цели используется аппарат связей между таблицами. Access 2002 дает возможность

12.7. Многотабличные базы данных. Отношения между таблицами

12.7. Многотабличные базы данных. Отношения между таблицами Реляционные базы данных состоят из нескольких таблиц, связь между которыми устанавливается с помощью совпадающих полей. Каждая запись в таблицах идентифицирует один объект. Отношение между объектами определяет

3.3. Работа с таблицами

3.3. Работа с таблицами Для работы с таблицами предназначено меню Таблица, содержащее все необходимые команды: добавление и удаление строк и столбцов таблицы, объединение, разъединение ячеек и т. д.Начнем с самого начала — создадим небольшую таблицу. Для этого выполните

Урок 7.4. Проектирование базы данных. Создание связей между таблицами

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

Связи между таблицами

Порядок создания связей

Практическая работа 56. Создание связей между таблицами

Практическая работа 56. Создание связей между таблицами Задание. Создать в среде Access 2007 базу данных из трех связанных таблиц согласно разработанному в этом уроке проекту.Эта работа будет объемной, поэтому ее выполнение будет разделено на несколько

Настройка параметров связей

Настройка параметров связей 1. Закройте все ранее открытые вкладки таблиц.2. На ленте откройте вкладку Работа с базами данных и нажмите кнопку Схема данных в группе Показать или скрыть. В появившемся окне вы должны увидеть таблицы базы данных и линии связи между ними. Если

Довольно распространена ситуация, когда выбор значения из одного списка должен приводить к обновлению второго, подчинённого списка, недавно я описывал такую реализацию на PHP, а теперь вот понадобилась в Access.

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

Схема БД Сотрудники

"Примечания" здесь добавлены просто для иллюстрации отношения "один к одному" как связи между двумя ключами.

Теоретически сотрудник может переводиться как на другую должность в рамках отдела, так и в другой отдел, что приведёт к необходимости выбрать должность из списка должностей нового отдела. То есть, по выбору для сотрудника нового отдела из верхнего списка, должен обновляться и нижний список "Наименование должности":

Окно управления БД Сотрудники

Как решить эту типовую задачу, мы и поговорим.

1. Источником записей формы "Сотрудники" делаем соответствующую таблицу, форму можно сгенерировать мастером, а затем удалить из неё поля "Код отдела" и "Код должности".

  • форма выведена в режиме конструктора, нажимаем кнопку "Поле со списком", показываем мышкой границы будущего списка. По отпускании кнопки мыши появится окно "Мастер создания полей со списком";
  • выбираем "Объект будет использовать значения из таблицы или запроса", жмём "Далее";
  • выбираем таблицу "Отделы", жмём "Далее";
  • переносим оба поля таблицы отделов в №выбранные поля" (кнопкой >>), жмём "Далее";
  • убеждаемся, что список виден, а галочка "Скрыть ключевой столбец" включена, жмём "Далее";
  • выбираем "Сохранить в поле:" и поле "КодОтдела", жмём "Далее"; задаём подпись к списку и жмём "Готово".

3. С помощью конструктора запросов составляем следующий запрос:

Запрос Должности по отделам

Здесь "ПолеСоСписком16" - наименование компоненты верхнего списка.

4. Аналогично с помощью мастера делаем второй список, указав источником строк наш запрос, а выбор сохраняя в поле КодДолжности таблицы Сотрудники, получается вот такое окно свойств второго списка:

Окно свойств второго списка

Увидеть это окно можно, щёлкнув правой кнопкой мыши на втором списке и выбрав "Свойства".

5. Теперь самое главное. В списке компонент выбираем "Форма" вместо имени поля со списком, выбираем вкладку события, событие Текущая запись, щёлкаем по кнопке с многоточием, подтверждаем, что нам нужен построитель программы, а не макроса или выражения:

Выбор события

Открылся редактор Visual Basic и появилась пустая функция с именем Form_Current . Пишем туда единственную строчку кода, которая обновит нижний список:

Здесь предполагается, что имя нижнего списка ПолеСоСписком20 .

6. Ту же самую строчку кода добавляем на событие "До обновления" верхнего списка, у меня получилось вот что:

7. Готово, теперь при выборе отдела из верхнего списка в нижний список подгружается список должностей этого отдела. Все остальные возможности приложения - стандартные и не потребуют написания кода.

Аналогично можно организовать любые другие 2 подчинённых списка на Access, когда при выборе значения из одного списка должны загружаться новые значения во второй список.

Ну и общие соображения по зависимым спискам в Access:

Если первый список не связан с полем источника записей формы, то обновление надо ставить в обработчик события BeforeUpdate ("До обновления" в окне свойств конструктора формы в русских версиях Access-а), либо в AfterUpdate.

Если же первый список связан с полем источника записей формы, то обновление надо ставить в обработчик события Current ("Текущая запись") формы и BeforeUpdate (AfterUpdate) первого списка.

Данный способ действует только для одиночной формы (на экране видно одну запись).

Обычно ленточные и табличные формы предназначены для поиска и просмотра, для ввода и редактирования - одиночная форма, поэтому в ней как раз и нужна фильтрация списков.

Читайте также: