Сортировка и фильтрация таблиц
⇐ ПредыдущаяСтр 3 из 3 Сортировка – это упорядочение записей по возрастанию или убыванию значений (чисел, дат, алфавита) какого-либо поля. Для сортировки надо установить курсор на любую запись поля, по которому будет производиться сортировка. В меню команды Записи выполнить команду Сортировка. В появившемся меню выполнить одну из команд Сортировка по возрастанию или Сортировка по убыванию. Фильтрация — это отбор записей по заданному критерию (условию). СУБД Access позволяет применять простой фильтр (по одному критерию) и расширенный фильтр (по нескольким критериям). Рассмотрим выполнение простой фильтрации в таблице базы данных. Допустим, что в таблице Оценки (см. рис. 16) надо отобрать сотрудников, у которых оценка по специальности 5. Для этого необходимо поставить курсор на любую оценку 5 в поле Спец (Специальность) и в меню команды Записи выполнить команды Фильтр, Фильтр по выделенному. После этой операции на экране останутся только те записи, у которых в поле Спец будет находиться оценка 5. Остальные записи будут временно "прикрыты" и на экране их не будет. О том, что таблица отфильтрована, будет свидетельствовать сообщение ФЛТР, находящееся в правой части строки подсказки (напомним, что это самая нижняя строка). Для того чтобы вновь получить доступ к невидимой части таблицы удалить фильтр. Для этого необходимо в меню команды Записи выполнить команду Удалить фильтр. В простой фильтрации можно использовать и "исключающий" фильтр. Например, необходимо отобрать сотрудников, которые имеют положительные оценки по трудовому праву. Для этого необходимо поставить курсор на любую оценку 2 в поле ТП (Трудовое право) и в меню команды Записи выполнить команды Фильтр, Исключить выделенное. После выполнения этой операции все записи, в которых в поле ТП находится оценка 2, будут временно "прикрыты". Восстановление таблицы после фильтрации производится таким же образом – удалением фильтра.
Выполнение рассмотренных операций может выполняться не только с помощью главного меню, но и с помощью контекстного меню, вызываемого нажатием правой клавиши мыши. Можно выполнить простую фильтрацию и с помощью панели инструментов, на которой находятся три пиктограммы в виде перевернутой воронки: Фильтр по выделенному, Изменить фильтр, Применить фильтр. После применения фильтра последняя пиктограмма превращается в команду Удалить фильтр. В практике использования баз данных часто встречается необходимость проводить более сложную фильтрацию, когда надо использовать несколько условий или фильтровать данные по нескольким критериям. Для этих целей в СУБД Access предусмотрена возможность использовать расширенный фильтр. Прежде чем рассмотреть порядок использования расширенного фильтра полезно уточнить некоторые моменты по логическим операциям. В процессе фильтрации СУБД проверяет наложенное фильтром условие. Если оно истинно (выполняется), то очередная запись таблицы остается на экране. Если же условие ложно (не выполняется) – то СУБД "прячет" эту запись. В расширенном фильтре действуют несколько (два и более) условий, которые с помощью логических операций соединяются в одно условие. Наиболее часто используемые операции – логическая операция И (логическое умножение, конъюнкция) и логическая операция ИЛИ (логическое сложение, дизъюнкция). Логическая операция И возвращает истину только в том случае, если все перечисленные условия истинны (выполняются). Если хотя бы одно условие ложно, то и логическая операция И вернет ложь. Логическая операция ИЛИ возвращает истину в том случае, если хотя бы одно из перечисленных условий истинно (выполняется). Если все условия ложны, то и логическая операция ИЛИ вернет ложь.
Рассмотрим порядок использования расширенного фильтра в таблице Оценки. Допустим, необходимо отобрать сотрудников, имеющих по всем предметам отличные оценки. Для этого необходимо в меню команды Записи выполнить команды Фильтр, Расширенный фильтр. На экране появится окно, в котором следует сформировать условия фильтрации (рис. 20).
Рис. 20. Окно расширенного фильтра Сначала в табличке в строке Поле: необходимо определить поля, для которых надо записать условия. Это поле Спец, поле ТП и поле ТБ. Сделать это можно двумя способами. Либо воспользоваться синей кнопкой с галочкой в строке Поле:, которая вызывает на экран список всех полей таблицы. Из этого списка нажатием левой клавишей мыши можно выбрать нужное поле. Либо, установив курсор на нужное имя поля в панельке Оценки (в верхней части окна) и удерживая левую клавишу мыши, "перетащить" это название в табличку. Теперь в табличке под названиями полей следует записать условия. Т.к. надо отобрать отличников по всем дисциплинам, то должно быть: поле Спец = 5 И поле ТП = 5 И поле ТБ = 5. Это логическая операция И, т.е. логическое умножение. Поэтому цифру 5 надо записать в строке Условие отбора под названием каждого поля (см. рис. 21). После подготовки условия фильтрации следует в меню Фильтр выполнить команду Применить фильтр. Фильтрация будет выполнена. Итак, если в табличке расширенного фильтра условия записаны в одной строке, то при фильтрации будет выполняться логическая операция И. Если в табличке расширенного фильтра условия записаны в разных строках, то при фильтрации будет выполняться логическая операция ИЛИ. Для иллюстрации логической операции ИЛИ рассмотрим такой пример. Допустим в таблице Оценки надо отобрать сотрудников, имеющих 5 хотя бы по одной дисциплине, т.е. ИЛИ поле Спец=5 ИЛИ поле ТП=5 ИЛИ поле ТБ=5. Поэтому цифру 5 надо записать под названием каждого поля в разных строках Условие отбора (см. рис. 22). Рис. 21. Окно расширенного фильтра с условиями фильтрации (операция И)
Рис. 22. Окно расширенного фильтра с условиями фильтрации (операция ИЛИ)
В расширенном фильтре можно формировать и более сложные условия с применением нескольких условий для одного поля, с использованием функций (операторов) и т.д. В представленном на рис. 23 примере приведены пять примеров условий проведения одной и той же фильтрации: необходимо отобрать сотрудников имеющих оценки 4 или 5 по дисциплине Техника безопасности (ТБ). На рис. 23а условия отбора (4 и 5) записаны в разных строках – значит, при фильтрации будет выполняться логическая операция ИЛИ, и будут отобраны записи, в которых в поле ТБ находится оценка 5 или 4.
Рис. 23. Примеры условий фильтрации
На рис. 23б в строке Условие отбора указано условие: больше 3. Значит, при фильтрации будут отобраны записи, в которых в поле ТБ находится оценка больше 3. На рис. 23в в строке Условие отбора указано два условия, соединенных функцией OR. Функция OR выполняет логическую операцию ИЛИ. Значит, при фильтрации будут отобраны записи, в которых в поле ТБ находится оценка или 4, или 5. На рис. 23г в строке Условие отбора указано два условия, соединенных функцией AND. Функция AND выполняет логическую операцию И. Значит, при фильтрации будут отобраны записи, в которых в поле ТБ находится оценка больше 3 и меньше 6 (в этом диапазоне находятся оценки 4 и 5). На рис. 23д в строке Условие отбора указана функция BETWEEN (дословный перевод - между), указывающая диапазон от 4 до 5 включительно. Значит, при фильтрации будут отобраны записи, в которых в поле ТБ находится оценка или 4, или 5. Если бы существовали оценки 4.1, 4.2, 4.3 и т.д., то были бы отобраны записи и с этими оценками. Параллельно с фильтрацией можно "заставить" СУБД провести и сортировку таблицы. Для этого служит строка Сортировка в окне расширенного фильтра (рис. 22).
Создание запросов
При работе с базой данных может возникнуть необходимость использовать данные из разных таблиц. Например, в предыдущем параграфе рассматривалась фильтрация таблицы Оценки. Получаемая после фильтрации данных информация недостаточно наглядна и удобна, т.к. содержит оценки, а вместо фамилии сотрудника указан его код. Это явно затруднит принятие управленческого решения. Выходом их создавшегося положения может служить создание запроса, при условии, что между таблицами установлена связь (§ 2.4.).
Запрос является мощным инструментом для обработки данных, хранящихся в таблицах базы данных. Запрос позволяет создавать виртуальную таблицу, состоящую из полей разных таблиц, имеющих связь друг с другом. Создаваемая виртуальная таблица существует только в момент работы запроса и в файле базы данных не сохраняется. Вместо нее в файле базы данных сохраняется "указание" для СУБД, как создать эту таблицу. Поэтому созданный запрос может использоваться многократно. Результат работы запроса (таблицу) можно сортировать, фильтровать, вывести на печать, использовать для создания других запросов, форм и отчетов. В базе данных может быть создано столько запросов, сколько необходимо для работы. Для создания запроса необходимо в окне базы данных (рис. 10) в области Объекты установить курсор на объект Запросы. В правой части окна базы данных будут указаны два инструмента: конструктор и мастер запросов. С помощью этих инструментов можно разработать запросы различных типов. Рассмотрим порядок создания некоторых из них.
Простой запрос Иногда этот тип запроса называют запросом на выборку. Цель этого запроса – создать виртуальную таблицу, состоящую из полей разных таблиц и запросов. Для создания такого запроса целесообразно использовать мастер создания запросов. После его запуска на экране появится окно мастера, изображенное на рис. 24. В этом окне кнопкой в панели Таблицы и запросы вызвать список существующих таблиц и запросов и в нем выбрать требуемую таблицу (запрос). Список полей этой таблицы (запроса) сразу появится в панели Доступные поля. Кнопка обеспечит отбор поля, на котором стоит курсор, и его название сразу же переместится в панель Выбранные поля. Кнопка обеспечит отбор всех полей таблицы (запроса). Кнопками и можно отказаться от выбранного поля или всех выбранных поле соответственно. После отбора требуемых полей из одной таблицы (запроса) можно выбрать следующую таблицу (запрос) и отобрать необходимые поля и т.д. После отбора требуемых полей щелкнуть левой клавишей мыши по кнопке Далее.
Рис. 24. Окно мастера создания запросов
Дальнейший диалог с мастером создания запросов не вызывает никаких затруднений, поэтому в подробном описании не нуждается. Заканчивается диалог вводом имени запроса. Имя созданного запроса появится в окне базы данных (рис. 25). Теперь пользователь может запускать этот запрос (двойной щелчок левой клавиши мыши по имени запроса или по кнопке Открыть в окне базы данных) и получать требуемые данные.
Рис. 25. Окно базы данных с созданным запросом
Запрос с параметром Цель этого запроса – не только создать виртуальную таблицу, состоящую из полей разных таблиц и запросов, но и провести ее фильтрацию по условию, которое задаст пользователь, запустивший этот запрос. Этот запрос создается на базе созданного ранее простого запроса. Допустим, был создан простой запрос Оценки Запрос (рис. 25) с полями Код, Фамилия, Отдел их таблицы Сотрудники и полями Спец, ТП и ТП из таблицы Оценки. Теперь необходимо из него сделать запрос с параметром, например, чтобы при его работе выдавались данные по оценкам сотрудников того отдела, который определит пользователь. Для этого следует, находясь на этом запросе, перейти в режим конструктора (щелкнуть левой клавишей мыши по кнопке Конструктор в окне базы данных). На экране появится окно конструктора, в котором будет расположена структура запроса (Рис. 26).
Рис. 26. Окно конструктора при создании запроса с параметром
В строке Условие отбора для поля Отдел в квадратных скобках надо записать сообщение, которое будет выдаваться пользователю в виде вопроса при работе запроса. В рассматриваемом примере это сообщение может иметь вид: [Введите номер отдела]. Теперь можно либо закрыть окно конструктора, подтвердив сохранение изменений в макете запроса, либо сразу запустить его на выполнение, выполнив команду Запуск в меню команды Запрос. При работе запроса на экран будет выдана панель с предусмотренным сообщением (Рис. 27) и СУБД будет ожидать от пользователя требуемое данное. Введенное пользователем данное, послужит параметром для фильтрации виртуальной таблицы, создаваемой запросом.
Рис. 27. Панель запроса с параметром
Если пользователь введет, например, число 2, то на экране появится таблица, в которой будут данные по сотрудникам 2-го отдела. При следующем запуске запроса можно ввести число 1 – тогда в таблице будут данные по сотрудникам 1-го отдела и т.д. В запросе может быть предусмотрено несколько параметров. Причем, они могут располагаться, как в одной строке Условие отбора, так и в разных строках. В первом случае при работе запроса будет выполняться логическая операция И, во втором – логическая операция ИЛИ.
Запрос с вычислением Цель этого запроса – создать виртуальную таблицу, состоящую из полей разных таблиц и запросов. Кроме того, в этой таблице должно появиться новое поле с результатом вычисления, которое задаст пользователь. Этот запрос создается на базе созданного ранее простого запроса. Допустим, был создан простой запрос Оценки Запрос (рис. 25) с полями Код, Фамилия, Отдел их таблицы Сотрудники и полями Спец, ТП и ТП из таблицы Оценки. Теперь необходимо из него сделать запрос с вычислением среднего бала. Для этого следует, находясь на этом запросе, перейти в режим конструктора (щелкнуть левой клавишей мыши по кнопке Конструктор в окне базы данных). На экране появится окно конструктора, в котором будет расположена структура запроса (Рис. 28).
Рис. 28. Окно конструктора при создании запроса с вычислением
В строке Поле в пустом столбце определить имя нового поля, предназначенного для вывода результата вычисления (например, Срб). После имени поля указывается знак "присвоить" (это двоеточие) и записывается арифметическое выражение. Имена полей, данные, которых будут участвовать в вычислении, должны быть указаны в квадратных скобках. Таким образом, формула для вычисления среднего балла примет вид:
Срб:([Спец]+[ТП]+[ТБ])/3
Вот где пригодилась рекомендация давать полям более короткие имена (см. § 2.2). В противном случае пришлось бы затратить больше времени и усилий на ввод формулы. Любые созданные запросы можно редактировать в режиме конструктора. Например, последний рассмотренный запрос обеспечит вывод среднего балла с большой точностью, которая не нужна. Поэтому для округления результата, например до двух знаков после десятичной запятой, можно использовать функцию Round, имеющую два параметра: что округлять, и до какого количества знаков после запятой. После редактирования формула примет вид: Срб: Round(([Спец]+[ТП]+[ТБ])/3;2)
В запросах с вычислением можно использовать и другие функции. Например, имея в таблице Сотрудники, дату рождения каждого сотрудника, можно определить их возраст с помощью функций Date и DATEDIFF. Функция Date() возвращает текущую дату, установленную в компьютере. Она не имеет аргументов. Функция DATEDIFF возвращает промежуток между двумя датами. Общий вид функции: DATEDIFF("интервал";Д1;Д2) где: - Д1 и Д2 – даты, между которыми следует вычислить промежуток. Дата Д1 должна быть младше даты Д2. В противном случае результат будет отрицательным. - Интервал – аргумент указывающий, в чем считать промежуток: - "yyyy" - в годах; - "q" - в кварталах; - "m" - в целых месяцах; - "d" - в днях. Используя эти функции, можно создать запрос с вычислением по таблице Сотрудники, определив новое поле (ВозрЛет) для размещения в нем данных по возрасту сотрудников. В режиме конструктора в этом поле можно записать формулу: ВозрЛет: DATEDIFF("yyyy"; [Дата]; Date()) Где [Дата] – название поля в таблице Сотрудники, в котором размещены даты рождения сотрудников. После запуска этого запроса будет получена виртуальная таблица с полем ВозрЛет, в котором будут размещены значения возраста в годах для каждого сотрудника. Беда заключается в том, что эти значения будут не совсем точны. Возраст будет округлен в большую сторону. Например, реально сотруднику 35 лет и 2 дня. Но в поле ВозрЛет будет указано число 36. Уж так предусмотрена работа этой функции! Но можно "обхитрить" эту функцию с её, же помощью. Для этого следует определить возраст в месяцах (тут функция работает как надо – выдает только целые месяцы). Потом разделить результат на 12 и отбросить дробную часть полученного результата. Поэтому, для определения возраста в годах в поле ВозрЛет целесообразно ввести такую формулу: ВозрЛет: FIX(DATEDIFF("m"; [Дата]; Date())/12) Функция Fix просто отбрасывает дробную часть числа. Вместо нее можно было использовать и функцию Int. Различие между функциями Int и Fix заключается в том, что если число отрицательное, Int возвращает число меньшее или равное исходному числу, тогда как Fix возвращает число большее или равное исходному числу. Например, Int преобразует -8.4 в -9, а Fix — -8.4 в -8. Используя функции даты можно посчитать возраст сотрудников в месяцах с учетом вычета целых годов. Для этого в запросе следует определить еще одно новое поле (ВозрМес) и в режиме конструктора записать в него формулу: ВозрМес: (DATEDIFF("m"; [Дата]; Date())-[ВозрЛет]*12
2.6.4. Запрос на обновление Цель этого запроса – автоматически изменить данные в одном или нескольких полях таблиц. Допустим такую ситуацию, когда зарплата сотрудников периодически увеличивается на определенную сумму (например, на 100 рублей) и надо вносить изменения в поле Зарпл таблицы Оценки. Для автоматизации этой операции целесообразно создать запрос на обновление. Для этого необходимо создать запрос из одного поля Зарпл и начать редактировать его в режиме конструктора (рис. 29).
Рис. 29. Запрос Зарпл измен в режиме конструктора
После этого в меню команды Запрос выполнить команду Обновление. После выполнения этой команды в табличке окна конструктора вместо строки Сортировка появится строка Обновление. В эту строку надо ввести формулу, которая будет увеличивать значение зарплаты: [Зарпл] + 100 (см. рис. 30).
Рис. 30. Создание запроса на обновление
После запуска этого запроса на выполнение и подтверждением пользователем необходимости выполнения этой операции, данные по зарплате, в таблице Оценки, будут увеличены на 100 рублей. Если еще раз запустить этот запрос – то зарплата сотрудников в таблице Оценки опять увеличится на 100 рублей и т.д. Этот вид запроса является "опасным" для данных. Поэтому в окне базы данных он помечен значком , который отличается от значка обычного запроса . Запрос на обновление можно усложнить. Допустим, что надо увеличивать на 100 рублей зарплату только тем сотрудникам, которые получают менее 20000 рублей. В этом случае необходимо в строку Условие отбора добавить требуемое условие: <20000 (см. рис 31).
Рис. 31. Запрос на обновление с условием
При работе этого запроса зарплата в таблице Оценки будет увеличена на 100 рублей только тем, у кого она составляет менее 20000 рублей.
Важно! При создании любого запроса (кроме запроса на обновление) параллельно с фильтрацией можно "заставить" СУБД провести и сортировку виртуальной таблицы. Для этого служит строка Сортировка в окне расширенного фильтра (рис. 29). Созданные с помощью запроса виртуальные таблицы можно сортировать и фильтровать так же, как и обычные таблицы. Если в виртуальной таблице изменить какое-либо данное, то оно поменяется и в основной таблице.
Создание форм
Формаобеспечивает наиболее гибкий и удобный способ ввода, редактирования, просмотра и удаления данных. Фактически форма является шаблоном, управляющим отображением информации. Форма может отображать поля из нескольких связанных таблиц или запросов, вычисляемые поля, представлять данные в виде диаграммы. Подготовленную форму можно выводить на печать. Для создания формы необходимо в окне базы данных (рис. 10) в области Объекты установить курсор на объект Формы. Форму, можно создавать самостоятельно в режиме конструктора, или с помощью мастера создания отчетов, или с помощью готовых макетов. Готовые макеты (Автоформа в столбец, Автоформа ленточная, Автоформа табличная и.т.д.)вызываются щелчком по команде Создать в окне базы данных на объекте Формы. Рассмотрим порядок создания формы с помощью мастера. После его запуска на экране появится окно мастера, изображенное на рис. 32, которое похоже на окно матера создания запросов. Так же, как и при создании запроса, в этом окне кнопкой в панели Таблицы и запросы нужно выбрать требуемую таблицу (запрос). Кнопками и выбрать необходимые поля. После отбора требуемых полей из одной таблицы (запроса) можно выбрать следующую таблицу (запрос) и отобрать необходимые поля и т.д. После отбора требуемых полей щелкнуть левой клавишей мыши по кнопке Далее, на экране появится диалоговое окно второго шага работы мастера (рис. 33). В этом окне следует выбрать внешний вид создаваемой формы, после чего снова щелкнуть левой клавишей мыши по кнопке Далее.
Рис. 32. Окно мастера создания форм (первый шаг)
Рис. 33. Окно мастера создания форм (второй шаг) На экране появится диалоговое окно следующего, третьего шага работы мастера (рис. 34), в котором следует определить стиль создаваемой формы и снова щелкнуть левой клавишей мыши по кнопке Далее.
Рис. 34. Окно мастера создания форм (третий шаг)
После этого появится диалоговое окно заключительного (четвертого) шага работы мастера (рис. 35), в котором следует присвоить имя создаваемой форме.
Рис. 35. Окно мастера создания форм (четвертый шаг)
Форма создана и после ее запуска (открытия), она появится на экране (рис. 36). В форме Сотрудники использованы поля из связанных таблиц Сотрудники и Оценки. Поэтому в ней отражены данные одной записи из каждой таблицы, касающиеся одного сотрудника. Для "передвижения" по записям можно использовать кнопки , или , , расположенные внизу формы. Номер текущей записи отображается в панели между этими кнопками. Такую форму удобно использовать для редактирования уже имеющихся данных или для ввода новых данных (например, по новым сотрудникам). Для ввода данных по новому сотруднику достаточно щелкнуть левой клавишей мыши по кнопке и ввести необходимые данные в представленные в форме поля. Передвигаться по полям формы можно либо с помощью мыши, либо клавишей табуляции. Вновь введенные данные автоматически создадут новую запись в соответствующих таблицах базы данных. Изменения данных, проведенные в форме, так же автоматически будут зафиксированы в соответствующих таблицах. Форму удобно использовать и для просмотра записей. Дело в том, что форму можно представить не только в виде столбца, но в табличном, ленточном и т.д. виде (см. рис.33). В любом виде ее можно сортировать и фильтровать, как обычные таблицы и запросы.
Рис. 36. Окно формы Сотрудники
Например, необходимо просмотреть данные по сотрудникам 2-го отдела в алфавитном порядке. Для этого достаточно установить курсор на поле Отдел формы и, пролистав записи, добиться появления в этом поле цифры 2. В меню команды Записи выполнить команды Фильтр и Фильтр по выделенному. Установить курсор на поле Фамилия и в меню Записи выполнить команды Сортировка и Сортировка по возрастанию. Теперь при пролистывании (просмотре) записей будут доступны только сотрудники 2-го отдела, причем в алфавитном порядке. Созданную форму можно редактировать в режиме конструктора. Для повышения наглядности данных при проведении анализа можно создать форму, в которой эти данные будут отображаться в виде диаграммы. Например, надо получить форму, содержащую диаграмму, построенную по среднему баллу. Прежде всего, с помощью мастера создания форм в первом шаге (см. рис. 32) надо отобрать требуемые поля: Код, Фамилия, Отдел из таблицы Сотрудники, Срб из запроса Оценки Запрос. Во втором шаге (см. рис. 33) выбрать тип формы Сводная диаграмма. В третьем шаге (см. рис 34) установить требуемый стиль, в четвертом (см.рис. 35) – присвоить имя создаваемой форме, например Диаграмма Среднего балла. После этого на экране появится два окна (рис. 37).
Рис. 38. Окна создания диаграммы в форме
Теперь необходимо "перетащить" поля (удерживая левую клавишу мыши) из окна Список полей диаграммы в окно Диаграмма среднего балла. На рисунке 38 показано, какое поле и где надо расположить. Поле Фамилия – в область категорий. Тогда внизу оси будут отображаться фамилии и будет создан кнопочный объект для фильтрации. Поле Срб (средний балл) – в область данных. Тогда будет построен график. Кроме того, целесообразно перетащить это поле и в область рядов для создания кнопочного объекта для фильтрации. Поле Отдел – в область фильтра для создания кнопочного объекта для фильтрации. После выполнения этих операций на экране появится форма с диаграммой, представленная на рис. 39.
Рис. 39. Форма с диаграммой среднего балла
Наряду с диаграммой в окне находятся три кнопочных объекта Отдел, Фамилия, Срб. Используя их (рис. 40), можно проводить отбор необходимых данных в соответствие, с которыми будет изменяться и диаграмма.
Рис. 40. Использование кнопочного объекта
Созданную в форме диаграмму можно редактировать: изменять название осей, размер шрифта, тип диаграммы, цвет заливки и линий и т.д. Для этого необходимо установить указатель мыши на редактируемый объект (например, название оси) и нажав правую клавишу мыши, вызвать контекстное меню (рис. 41). В контекстном меню выбрать соответствующую команду (например, Свойства) и в результате дальнейшего диалога провести редактирование созданной диаграммы (например, ввести название оси).
Рис. 41. Вызов контекстного меню и панель меню команды Свойства
Создание отчетов
Отчет — это гибкое и эффективное средство для организации просмотра и распечатки итоговой информации. В отчете можно получить результаты расчетов, статистических сравнений, а также поместить в него рисунки и диаграммы. Основное различие между отчетами и формами заключается в их назначении. Если формы задуманы преимущественно для ввода данных, то отчеты — для просмотра данных (либо на экране, либо на бумаге). Все, что можно сделать с формой (за исключением ввода данных), можно сделать и с отчетом. Отчет, как и форму, можно создавать самостоятельно в режиме конструктора, или с помощью мастера создания отчетов, или с помощью готовых макетов. Готовые макеты (Автоотчет в столбец, Автоотчет ленточный, Мастер диаграмм, Почтовые наклейки)вызываются щелчком по команде Создать в окне базы данных на объекте Отчеты. Мастер по разработке отчетовявляется наиболее удобным способом создания отчетов. Он выполняет всю рутинную работу и позволяет быстро разработать макет, служащий основой создаваемого отчета. После этого можно переключиться в режим конструктора и внести изменения в стандартный макет. Для создания отчета с помощью мастера необходимо запустить его. Работа мастера отчетов во многом напоминает работу мастеров создания запросов и форм. В первом шаге следует выбрать требуемые поля из таблиц и запросов. Операция выполняется так же, как и при создании запроса или формы. Поэтому в дополнительных пояснениях не нуждается. Допустим, выбраны поля Код, Должность, Фамилия, отдел из таблицы Сотрудники, поле Зарпл из таблицы Оценки и поле Срб из запроса Оценки Запрос. Во втором шаге работы мастера нужно определить уровни группировки (рис. 42), если это необходимо. Эта операция необязательная, но СУБД дает возможность сгруппировать данные, которые будут представлены в отчете по каким-то признакам. Например, если установить группировку по полю Отдел, то в отчете будут указаны сначала все записи одного отдела, потом – записи другого отдела, потом - следующего отдела и т.д. Можно установить группировку второго уровня, например по полю Должность. Тогда в отчете записи каждого отдела будут ранжированы еще и по должностям: сначала – все инженеры этого отдела, потом – все техники и т.д. Допустим, надо установить уровень группировки по полю Отдел. Для этого следует установить курсор на поле Отдел и щелкнуть левой клавишей мыши по кнопке . Порядок размещения данных в будущем отчете будет отображаться на правой панели окна. Если надо установить второй уровень группировки, то следует выполнить эту операцию с другим полем и т.д. Клавишей можно отказаться от выбранной группировки.
Рис. 42. Второй шаг мастера отчетов (группировка)
В третьем шаге работы мастера (рис.43) можно при необходимости установить сортировку записей в будущем отчете по возрастанию или убыванию значений данных в полях. Если во втором шаге была установлена группировка, то в окне третьего шага будет кнопка Итоги…, использование которой, позволяет подсчитать промежуточные итоги и вывести их в отчете. Нажатие этой кнопки вызовет появление окна, представленного на рис. 44.
Рис. 43. Третий шаг мастера отчетов (сортировка и итоги)
Рис. 44. Окно Итоги третьего шага мастера отчетов В этом окне перечислены поля и допустимые с ними операции. Sum – вычисление суммы значений указанного поля, Avg – вычисление среднего значения, Min и Max – определение минимального или максимального значения в указанном поле. Установив "флажки" в соответствующих квадратиках (на рисунке установлены сумма для поля Зарпл и среднее арифметическое для поля Срб), можно обеспечить вычисление требуемых итогов. В четвертом шаге работы мастера (рис. 45) следует установить требуемый макет будущего отчета – его вид, ориентацию бумаги.
Рис. 45. Четвертый шаг мастера отчетов (вид макета)
Пятый (выбор стиля отчета) и шестой (присвоение имени отчету) шаги идентичны последним шагам мастера создания форм, и поэтому в пояснениях не нуждаются. По окончании работы мастера отчет будет создан и на экране появится его изображение (рис. 46).
Рис. 46. Отчет Средний балл с зарплатой Имя отчета записано в его заголовке. Все записи сгруппированы по номеру отдела: сначала все с 1-го, потом – все со 2-го, в конце – все с третьего. Записи каждого из отделов отсортированы по должности. После записей каждого отдела обозначены итоги: количество записей, суммарная зарплата в отделе и средний балл за отдел. После записей третьего отдела указана и итоговая величина зарплаты за организацию. Созданные отчеты, также как и запросы и формы, предназначены для неоднократного использования: сегодня, завтра, через месяц и т.д. Каждый раз эти объекты при запуске создают информацию на основе тех данных, которые в данный момент хранятся в таблицах базы данных. Содержимое отчетов зачастую выводят на печать. Поэтому чтобы не возникало путаницы, каждая страница отчета снабжается датой и номером. Дата, количество страниц и номер текущей страницы указываются внизу очередной страницы. Отчет можно редактировать. Для этого следует просмотреть его в режиме конструктора (курсор на имя редактируемого отчета в окне базы данных и щелкнуть по кнопке Конструктор). После этого отчет будет представлен на экране в режиме конструктора (рис. 47).
Рис. 47. Отчет в режиме конструктора
Теперь можно изменять цвет шрифта, цвет фона (заливки), стиль оформления, названия полей, расположение данных и выделенные для них размеры и т.д. Можно, кстати заменить сообщение Sum на Сумму, а сообщение Avg на средний балл. Особых проблем редактирование отчетов не вызывает.
Экспорт и импорт данных
Часто возникает необходимость часть данных из базы данных использовать в других программных продуктах, например, в текстовом или табличном процессоре. Данные из таблиц и запросов можно копировать обычным образом: выделить копируемые данные, выполнить команду Копировать, перейти в нужный программный продукт (Word, Excel…) и выполнить команду Вставить. Однако СУБД Access имеет более удобный способ передачи данных из любого объекта базы данных (таблиц, запросов, форм, отчетов) в Word или Excel. Для этого, находясь на нужном объекте в окне базы данных, надо в меню команды Сервис выполнить команду Связи с office. В появившемся меню выполнить одну из команд Публикация в Microsoft Office Word или Анализ в Microsoft Office Excel. После выполнения этих команд будет создан или документ текстового процессора Word, или книга табличного процессора Excel с данными выбранного объекта базы данных. Созданный файл автоматически будет сохранен в папке Мои документы.
При работе в СУБД Access иногда возникает необходимость использовать данные, созданные в другом программном продукте, например, данные из других СУБД, HTML-файлы, текстовые файлы и т.д. Для этого в СУБД Access предусмотрен импорт файлов. Допустим, что в результате обработки электронных форм, созданных в текстовом процессоре Word, появился текстовый файл с данными, которые необходимо использовать в базе данных. Для этого следует в меню команды Файл выполнить команды Внешние данные, Импорт. После выполнения этих команд на экране появится привычное окно для поиска и выбора нужного файла. С началом импорта найденного файла на экране появится окно (рис. 48) в котором следует установить предполагаемый формат данных в этом файле. В нижней панели окна будет отображаться сам файл. Если содержимое файла в этой панели записано непонятными символами, то щелкнув по кнопке Дополнительно нужно установить требуемую кодировку.
Рис. 48. Определение формата данных при импорте файла (первый шаг)
После первого окна появится второе окно импорта файла (рис. 49), в котором надо выбрать разделитель данных и ограничитель текста.
Рис. 49. Второй шаг импорта файла В третьем шаге (рис.50) следует определить, куда размещать данные: в новую таблицу или в уже имеющуюся.
Рис. 50. Третий шаг импорта файла
В четвертом шаге (рис. 51) предлагается ввести названия полей и определить тип данных, которые будут размещены в этих полях. Делается это очень просто: установить указатель мыши на требуемое поле, ввести его название и определить тип данных. Предусматривается возможность отказаться от импорта каких-либо полей. Для этого необходимо установить флажок напротив сообщения не импортировать (пропустить) поле.
Рис. 51. Четвертый шаг импорта файла
В пятом шаге (рис. 52) предоставляется возможность определить ключевое поле или не создавать его. При необходимости его можно создать и потом в режиме конструктора.
Рис. 52. Пятый шаг импорта файла Заканчивается работа по импорту файла вводом имени новой таблицы, в которой будут размещены импортируемые данные (если импорт не производился в уже существующую таблицу), и сообщением завершении импорта.
Созданная таблица с импортированными данными (рис. 53) становится полноправным объектом базы данных, с которым можно выполнять все допустимые операции: связывать с другими объектами, сортировать, фильтровать и т.д.
Рис. 53. Таблица с импортированными данными
Воспользуйтесь поиском по сайту: ©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|