5.5. Сортировка, поиск и фильтрация данных Данные, которые хранятся в таблицах базы данных, могут быть эффективно использованы только при условии, если существуют простые и доступные средства поиска нужной информации. Таблицы могут содержать огромное число записей, и хорошая СУБД должна обеспечить возможность быстро и легко найти и отобрать среди них нужные. Access 2003 является в этом отношении примером того, как можно при выполнении этих операций обеспечить максимальное удобство для пользователей и в то же время эффективность обработки больших объемов данных. Сортировка данных в таблице. Операция сортировки данных используется всегда для удобства нахождения нужной информации. Когда на экране (или на бумаге) отображается таблица, гораздо легче найти нужную строку, если эти строки упорядочены. Вы привыкли к тому, что табличные данные упорядочены по алфавиту, по дате, по увеличению или уменьшению значений в столбцах, содержащих числа. Но в разных ситуациях мы хотели бы сортировать строки по разным признакам (столбцам таблицы). В идеале это должно выполняться легким движением руки. Именно так и позволяет делать Access. По умолчанию, когда таблица открывается в режиме Таблицы, она упорядочивается по значению ключевого поля. Если ключевое поле для таблицы не определено, записи выводятся в порядке их ввода в таблицу. Если нужно отсортировать записи по значению другого поля, достаточно установить курсор на любую строку соответствующего столбца и нажать одну из кнопок на панели инструментов: Сортировка по возрастанию (Sort Ascending) или Сортировка по убыванию (Sort Descending). Другой способ выполнения этой операции: щелкнуть правой кнопкой мыши по любой строке нужного столбца и выбрать из контекстного меню (рис. 5.18) соответствующую команду. Таким образом можно упорядочить записи по любому столбцу таблицы. Ограничения существуют только на тип данных, которые можно упорядочивать – нельзя сортировать значения полей типа MEMO, гиперссылки или объекты OLE. Чтобы правильно применять сортировку, нужно знать несколько простых правил.
Порядок сортировки зависит от настроек языка, определенных в диалоговом окне Параметры (Options) при создании базы данных. Чтобы изменить эту настройку, необходимо выбрать в меню Сервис (Tools) команду Параметры (Options), открыть вкладку Общие (General) и в поле Порядок сортировки базы данных (New database sort order) выбрать нужный язык. Рис. 5.18. Контекстное меню в режиме таблицы. Процесс сортировки значительно ускоряется, если предварительно по данному полю был построен индекс. Если вы изменили порядок сортировки записей в таблице, а потом решили ее закрыть, Access запрашивает, хотите ли вы сохранить изменения макета. Если вы ответите Да (Yes), то новый порядок сортировки сохранится и воспроизведется, когда таблица будет открыта в следующий раз. Для того чтобы вернуться к первоначальному порядку сортировки (по значению ключевого поля), необходимо выполнить команду меню Записи, Удалить фильтр (Records, Remove Filter/Sort). Иногда нужно выполнить сортировку по значению нескольких полей. Для этого переместите сначала сортируемые столбцы таким образом, чтобы они оказались, во-первых, рядом, а во-вторых, с учетом приоритетов, — приоритеты устанавливаются слева направо, т.к. первыми будут сортироваться значения в крайнем левом столбце. После этого нужно выделить все столбцы и нажать, соответственно, кнопку Сортировка по возрастанию (Sort Ascending) или Сортировка по убыванию (Sort Descending) на панели инструментов. Поиск и замена данных. В режиме Таблицы предусмотрены возможности поиска данных по образцу либо в конкретном поле, либо во всей таблице. Чтобы найти необходимые данные, нужно:
Рис. 5.19. Окно поиска данных.
Чтобы найти первое вхождение указанного образца, нажмите кнопку Найти следующий (Find Next). Для поиска следующих вхождений этого значения нажимайте кнопку Найти далее (Find Next) до тех пор, пока не будет найдено нужное вхождение. Для доступа к окну Поиск и замена (Find and Replace) можно использовать также команду меню Правка, Найти (Edit, Find). Из всех видов поиска самым медленным будет поиск по совпадению с любой частью поля, при этом не используется индекс, даже если поле, по которому выполняется поиск, проиндексировано. Чтобы выполнить поиск по всем столбцам таблицы, нужно из списка Поиск в (Look In) выбрать значение <Имя таблицы>: таблица. Чтобы выполнить не только поиск, но и изменение данных в найденном поле, необходимо в том же диалоговом окне Поиск и замена (Find and Replace) раскрыть вкладку Замена (Replace) (рис.5.20) и в поле Заменить на (Replace With) указать значение, на которое нужно заменить искомое значение. После этого нажмите кнопку Заменить (Replace) или Заменить все (Replace All). Рис. 5.20. Диалоговое окно «Поиск и замена». Все остальные поля имеют тот же смысл, что и на вкладке Поиск (Find). Для замены одного значения необходимо нажать кнопку Заменить (Replace). Чтобы заменить все вхождения, нажмите кнопку Заменить все (Replace All). Есть возможность установить параметры поиска/замены по умолчанию. Для этого необходимо:
Фильтрация данных. В Microsoft Access предусмотрено четыре способа отбора записей с помощью фильтров: фильтр по выделенному фрагменту, обычный фильтр, поле Фильтр для (Filter For) и расширенный фильтр. Фильтр по выделенному фрагменту, обычный фильтр и поле Фильтр для (Filter For) являются очень простыми способами отбора записей, причем самым простым является фильтр по выделенному фрагменту — он позволяет найти все записи, содержащие определенное значение в выбранном поле. Обычный фильтр используется для отбора записей по значениям нескольких полей. Поле Фильтр для (Filter For) используется, если фокус ввода находится в поле таблицы и нужно ввести конкретное искомое значение или выражение, результат которого будет применяться в качестве условия отбора. Для создания сложных фильтров следует использовать окно расширенного фильтра. Набор записей, которые были отобраны в процессе фильтрации, называется результирующим набором. Рис. 5.21. Настройка параметров поиска по умолчанию. Чтобы использовать фильтр по выделенному фрагменту, необходимо:
Фильтры сохраняются автоматически при сохранении таблицы или формы. Таким образом, при повторном открытии таблицы или формы можно снова применить сохраненный фильтр. Фильтр позволяет отбирать записи, не содержащие выбранного значения. Для этого необходимо выбрать значение, нажать правую кнопку мыши и выполнить команду Исключить выделенное (Filter Excluding Selection). На рис.5.22 показан результирующий набор, полученный применением фильтра по выделенному к таблице "Заказы" (Orders) демонстрационной базы данных (Northwind). Чтобы получить такой результат:
Чтобы отменить фильтр, необходимо нажать на кнопку Удалить фильтр (Remove Filter) на панели инструментов Режим таблицы (Table Datasheet) или воспользоваться одноименной командой контекстного меню.
Рис. 5.22. Результирующий набор записей после применения фильтра по выделенному. Access запоминает последний применяемый фильтр, поэтому если теперь нажать на кнопку Применение фильтра (Apply Filter) на панели инструментов, вновь будут отобраны те же записи. Кнопки Применение фильтра (Apply Filter) и Удалить фильтр (Remove Filter) являются по сути одной кнопкой, состояние (нажата, отжата) и подпись которой меняются в зависимости от того, установлен или нет фильтр для таблицы. Еще одним признаком, по которому можно узнать, что в таблице отображаются отфильтрованные записи, является слово ФЛТР (FLTR) в строке состояния окна приложения. Для того чтобы установить фильтр по выделенному фрагменту, можно воспользоваться также командой контекстного меню Фильтр по выделенному (Filter by Selection) или выбрать из меню Записи (Records) команду Фильтр, Фильтр по выделенному (Filter, Filter by Selection). Похожей возможностью фильтрации записей обладает поле Фильтр для (Filter For). Его можно использовать в том случае, когда не удается быстро найти образец отбора в столбце таблицы. Чтобы использовать возможности поля Фильтр для (Filter For), необходимо:
Рис. 5.23. Поле «Фильтр» для в контекстном меню. Чтобы применить фильтр и закрыть контекстное меню, нужно нажать клавишу <Enter>, а чтобы применить фильтр и оставить контекстное меню открытым — клавишу <Таb>. При этом можно вводить в поле Фильтр для (Filter For) новые значения и по нажатии клавиши <Таb> обновлять содержимое выборки. В поле Фильтр для (Filter For) можно указывать не только конкретные значения, но и выражения, требующие вычислений. Чтобы применить обычный фильтр, необходимо:
Форма содержит линейку полей таблицы. В любое из этих полей можно ввести или выбрать из списка значение, которое и будет являться условием отбора. Если условия ввести в несколько полей, они будут объединяться с помощью логического оператора И. Для того чтобы объединить условия по ИЛИ, нужно раскрыть другую вкладку формы, щелкнув по ярлычку Или в нижней части формы.
Рис. 5.24. Окно изменения фильтра. При вводе условий отбора в поля формы можно использовать любые выражения, которые возможны в Access. Условия отбора записей, которые вводятся в поля формы фильтр (Filter by Form), можно сохранить в базе данных в виде запроса. Для этого необходимо при открытой форме фильтр (Filter by Form) нажать кнопку Сохранить как запрос (Save As Query) на панели инструментов. Затем в диалоговом окне Сохранение в виде запроса (Save As Query) ввести имя запроса и нажать кнопку ОК. Когда потребуется повторить установку такого фильтра, нужно опять же при открытой форме фильтр (Filter by Form) нажать кнопку Загрузить из запроса (Load from Query) на панели инструментов. Рис. 5.25. Результирующий набор записей после применения обычного фильтра. Отобранные с помощью фильтра данные можно копировать, экспортировать и рассылать. Копирование данных из выборки осуществляется так же, как копирование данных в таблице. Экспорт данных из выборки позволяет сохранить их в отдельном файле. Чтобы экспортировать данные, необходимо:
В отличие от обычного экспорта данных, рассылка позволяет сразу отправить результаты выборки по электронной почте разным адресатам для дальнейшего ознакомления с материалами, их анализа и т. п. Чтобы отослать результаты выборки, необходимо:
|