Сортировка и фильтрация данных

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

Сортировка осуществляется с учетом следующих правил:

1) при сортировке в возрастающем порядке записи, содержащие пустые поля (с пустыми значениями), указываются в списке первыми;

2) числа, находящиеся в текстовых полях, сортируются как строки символов, а не как числовые значения;

3) при сохранении таблицы сохраняется и порядок ее сортировки.

Если вы изменили порядок сортировки записей в таблице, а потом решили ее закрыть, Access запрашивает, хотите ли вы сохранить изменения макета. Если вы ответите Да, то новый порядок сортировки сохранится и воспроизведется, когда таблица будет открыта в следующий раз. Для того чтобы вернуться к первоначальному порядку сортировки (т.е. по значению ключевого поля), необходимо выполнить команду меню Записи-Удалить фильтр.

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

В Microsoft Access предусмотрено четыре способа отбора записей с помощью фильтров:

- фильтр по выделенному фрагменту,

- обычный фильтр,

- поле Фильтр для,

- расширенный фильтр.

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

Чтобы использовать фильтр по выделенному фрагменту, необходимо:

1) в поле объекта в режиме Таблицы найти значение, которое должны содержать записи, включаемые в результирующий набор при применении фильтра.

2) выделить это значение и нажать кнопку Фильтр по выделенному на панели инструментов Режим таблицы.

Чтобы отменить фильтр, необходимо нажать на кнопку Удалить фильтр на панели инструментов Режим таблицы или воспользоваться одноименной командой контекстного меню. Кнопки Применение фильтра и Удалить фильтр являются по сути одной кнопкой, состояние (нажата, отжата) и подпись которой меняются в зависимости от того, установлен или нет фильтр для таблицы. Еще одним признаком, по которому можно узнать, что в таблице отображаются отфильтрованные записи, является сочетание букв ФЛТР в строке состояния окна приложения.

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

1) Открыть таблицу в режиме Таблицы;

2) Щелкнуть правой кнопкой мыши на поле, для которого нужно указать условие отбора, а затем ввести значение условия отбора в поле Фильтр для в контекстном меню;

Чтобы применить обычный фильтр, необходимо:

1) Открыть таблицу в режиме Таблицы;

2) Нажать кнопку Изменить фильтр на панели инструментов Режим таблицы. Появится форма фильтр — специальное окно для изменения фильтра. Форма содержит линейку полей таблицы. В любое из этих полей можно ввести или выбрать из списка значение, которое и будет являться условием отбора. Если условия ввести в несколько полей, они будут объединяться с помощью логического оператора И. Для того чтобы объединить условия по ИЛИ, нужно раскрыть другую вкладку этой формы, щелкнув по ярлычку ИЛИ в нижней части формы.

3) Нажать кнопку Применение фильтра на панели инструментов Режим таблицы.

 

Создание форм.

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

Создать форму можно несколькими способами. Если в окне базы данных открыть вкладку Формы и щелкнуть по кнопке Создать, то откроется окно, в котором указаны способы создания формы (рис. 3.28).

Конструктор позволяет создать форму самостоятельно. Мастер форм дает возможность создать форму на основе выбранных полей. В этом случае Access в режиме диалога выясняет у пользователя, какую форму он хочет получить, и создает ее автоматически. Если пользователя в этой форме что-либо не удовлетворяет, можно исправить это в режиме конструктора.Автоформы являются частными случаями мастера форм, т.е. они автоматически создают заданные виды форм практически без участия пользователя. Диаграмма создает форму со встроенной диаграммой, а сводная таблица - со сводной таблицей Excel.

Рис. 3.28. Окно создания форм.

Рис. 3.29. Окно конструктора формы.

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

Для перехода к Конструктору форм откроем вкладку Формы в окне базы данных и выберем кнопку Создать, в окне Новая форма укажем таблицу - источник данных и выберем режим Конструктор. На экране появится окно Конструктора формы(рис. 3.29).

В области данных этого окна создаются и настраиваются необходимые поля, ее размер легко изменить «мышью». Настроить внешний вид формы позволяет команда Формат - Автоформат. Подробно изучить отдельные настройки формы и области данных позволяет окно Свойства, вызвать которое для области данных можно щелчком правой кнопки «мыши» в любом месте формы. Окно Свойства формы(рис. 3.30) доступно, если выполнить щелчок правой кнопкой в окне Конструктора формы вне области данных:

Рис. 3.30. Окно свойства формы.

Список полей позволяет методом «перетащил и оставил» быстро добавить на форму элементы для ввода данных в поля таблицы (окно «сотрудники» на рис. 3.29).

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

Надпись (Label) – предназначена для ввода заголовков, поясняющего текста и примечаний. Это несвязанный элемент. Основные свойства: Имя (Name) – название метки; Подпись (Caption) – текст, выведенный на метке. Чтобы разместить текст на надписи в несколько строк, в конце первой строки нажмите CTRL+Enter. В этом случае и остальные строки на этой надписи будут автоматически переноситься, а максимальная ширина надписи определиться длиной первой строки текста.

Поле (TextBox) – предназначено для вывода информации из полей базы данных, это связанный элемент. Свойства: Данные (ControlSource) – определяет, какие данные отображаются в поле. Данные могут быть получены из таблицы или запроса, удобнее всего назначить источник данных из построителя выражений, нажав кнопку с многоточием справа от свойства Данные. Ручной ввод также несложен. Например, если в поле выводится поле ФИО из таблицы Сотрудники, в поле ввода Данные следует набрать = [Сотрудники]![ФИО]

Поле со списком (ComboBox) – после перетаскивания объекта на форму вызывается Мастер. Поле со списком может использовать данные из таблицы или запроса, либо вводится фиксированный набор значений для поля. Значение, выбранное из поля со списком, можно запоминать в переменной или в поле таблицы базы данных.

Список (ListBox), в отличие от поля со списком, позволяет лишь выбрать одно из заранее предусмотренных значений. Выбор из списка позволяет быть уверенным, что введенное значение является допустимым. После добавления объекта на форму вызывается Мастер, аналогичный Мастеру создания поля со списком.

Кнопка (Button) – элемент управления, который содержит некоторый набор команд, предназначенных для создания управляющих действий при работе с формами. Создается с помощью Мастера кнопок (рис. 3.31), который позволяет определить более 30 процедур обработки событий, поместить на кнопке надпись или рисунок.

Набор вкладок – вкладки позволяют разместить в одном окне формы несколько наборов интерфейсных элементов.

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

Рис. 3.31. Окно мастера создания кнопок.

Редактируя форму можно перемещать поля, менять их свойства (шрифт, его размер, подпись поля). Для выравнивания элементов формы достаточно выделить их «мышью» при нажатой Shift, а затем из контекстного меню выбрать подменю Выровнять. Аналогично можно выровнять размеры интерфейсных элементов, установить цвета текста и фона, изменить стиль оформления. [3, 4, 6]

 

Создание запросов.

Большинство СУБД разрешают использовать запросы следующих типов:

- запрос-выборка, предназначенный для отбора данных, хранящихся в таблицах, и не изменяющий эти данные;

- запрос-изменение, предназначенный для изменения или перемещения данных. К этому типу запросов относятся: запрос на добавление записей, запрос на удаление записей, запрос на создание таблицы, запрос на обновление;

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

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

Результатом выполнения запросов являются динамические таблицы. По форме они могут быть двух видов:

1) таблицы, структура которых соответствует исходной таблице (таблицам) БД;

2) таблицы, структура которых отличается от исходной таблицы (таблиц) БД, — так называемые кросс-таблицы. Структура кросс-таблицы отличается от структуры исходной таблицы БД тем, что заголовками столбцов в такой таблице являются не имена, а значения выбранных полей. Такие таблицы формируются с помощью особых видов запросов — перекрестных запросов. Перекрестные запросы — это запросы, которые применяются для выбора информации с одновременным группированием данных по значениям отдельных полей.

Запрос-выборка.Для создания нового запроса-выборкинадо в окне базы данных выбрать вкладку Запросыи щелкнуть по кнопке Создать. После этого откроется окно Новый запрос(рис. 3.32).

Рис. 3.32. Окно создания запросов.

Конструктор позволяет самостоятельно создать любой тип запроса. Для этого необходимо:

1) открыть Конструктор запросов;

2) В открывшемся окне Добавление таблицы выбрать таблицу или таблицы, на основе которых составляется запрос. При этом в окне конструктора появится таблица с именами полей.

3) После ввода таблицы (таблиц) щелкнуть по кнопке Закрыть.

4) Переместить необходимые для запроса поля таблицы в поля окна Конструктор запросов (рис. 3.33).

5) Установить порядок сортировки записей по значениям каких-либо полей (например, сортировать записи в алфавитном порядке по полю ФИО).

6) Определить необходимость вывода на экран значений полей. Если «Да», то щелкнуть мышью по квадратику в строке «Вывод на экран».

7) Ввести в строку «Условие отбора» соответствующие значения полей, по которым производится отбор данных из таблиц. Условием отбора является выражение, которое состоит из операторов сравнения и сравниваемых операторов (рис. 3.33).

 

Рис. 3.33. Создание запросов с помощью конструктора.

При задании условий отбора данных необходимо соблюдать следующие правила.

1) Перед вводом значения текстового (символьного) поля должен стоять знак «=».

2) Вводимая строка символов должна быть заключена в кавычки. Данное правило, если вы забыли его соблюсти, Аccess выполнит сам.

3) Математические условия выборки определяются известными операторами сравнения (=, <, >, <=, >=). Кроме этих операторов могут применяться операторы сравнения BETWEEN, IN, LIKE и логические операторы OR, AND, NOT.

4) При составлении условий выборки по полям Дата/Время могут применяться условия (функции), которые при составлении запроса вводятся как вычисляемые поля.

5) Если условие отбора не содержит оператора, то по умолчанию используется оператор =.

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

[Имя таблицы]![Имя поля]

7) Условия отбора, заданные в одной строке, связываются с помощью логической операции И, а заданные в разных строках - с помощью логической операции ИЛИ. Эти операции могут быть заданы явно в условии отбора с помощью операторов АND и ОR соответственно.

8) Сформировать условие отбора можно с помощью Построителя выражения. Перейти в окно Построитель выражений можно, нажав кнопку Построитель на панели инструментов или выбрав команду Построить в контекстном меню. При этом курсор мыши должен быть установлен в ячейке ввода условия отбора. После ввода выражения в бланк и нажатия клавиши Enter Access выполняет синтаксический анализ выражения и отображает его в соответствии с результатами этого анализа.

Ввод условий отбора данных непосредственно в строки Конструктора запросов рекомендуется при конструировании постоянных запросов. При конструировании параметрических запросов ввод условий отбора данных рекомендуется производить через формы.

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

Простой запрос позволяет создать с помощью Мастера запрос на выборку из определенных полей таблиц или других запросов. (Это наилучший способ создания запроса для начинающих пользователей.)

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

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

Запрос с параметрами - запрос, при выполнении которого в его диалоговом окне пользователю выдается приглашение ввести данные, на основе которых будет выполняться запрос. Для создания запросов существует специальный язык SQL. Но, работая с Access, можно не изучать этот язык, т.к. в программе существует бланк запроса по образцу. Задание параметров производится в строке Условия отборадля соответствующих полей. Для создания запроса с параметром команду LIKE [параметр] надо поместить в строке Условие отбора в том поле, по которому производиться выбор. Затем надо описать параметр. Для этого из меню выбрать Запрос – Параметры и в открывшемся окне записать параметр (т.е. имя поля) и его тип.

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

Существует четыре типа запросов на изменение.

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

2. На обновление записи. Запрос на обновление вносит общие изменения в группу записей одной или нескольких таблиц. Например, на 10 процентов поднимаются цены на какую-либо категорию продукции или на 5 процентов увеличивается зарплата сотрудников определенной категории. Запрос на обновление записей позволяет изменять данные в существующих таблицах.

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

4. На создание таблицы. Запрос на создание таблицы создает новую таблицу на основе всех или части данных из одной или нескольких таблиц. Запрос на создание таблицы полезен при создании таблицы для экспорта в другие базы данных Microsoft Access или при создания архивной таблицы, содержащей старые записи.

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

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