Создание отчета. Сортировка и группировка информации в отчете. Принципы сортировки в Access Окно группировки сортировки в форме access

  • 12.02.2024

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

Другой способ выполнения этой операции: щелкнуть правой кнопкой мыши по любой строке нужного столбца и выбрать из контекстного меню (рис. 2.55) соответствующую команду.

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

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

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

Рис. 2.55.

Замечание

Порядок сортировки зависит от настроек языка, определенных в диалоговом окне Параметры (Options) при создании базы данных. Чтобы изменить эту настройку, необходимо выбрать в меню Сервис (Tools) команду Параметры (Options), открыть вкладку Общие (General) и в поле Порядок сортировки базы данных (New database sort order) выбрать нужный язык (см. гл. 14).

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

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

Иногда нужно выполнить сортировку по значению нескольких полей. Для этого переместите сначала сортируемые столбцы таким образом, чтобы они оказались, во-первых, рядом, а во-вторых, с учетом приоритетов, - приоритеты устанавливаются слева направо, т. к. первыми будут сортироваться значения в крайнем левом столбце. После этого нужно выделить все столбцы и нажать, соответственно, кнопку Сортировка по возрастанию (Sort Ascending) или Сортировка по убыванию (Sort Descending) на панели инструментов.

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

Как я уже сказал, Access очень популярен, особенно в связке с MSSql, т.е. когда его используют в качестве клиента. Если Вы не знаете что такое клиент, и что такое сервер то советую ознакомиться с материалом Что такое взаимодействие Клиент-Сервер?

И сегодня мы как раз будет рассматривать пример формирования отчета в Access, который будет брать данные с сервера MSSql 2008. Как настроить access на работу с MSSql Вы должны уже знать, а если не знаете, то не беда рассмотрим это в следующих статьях, потому что тема сегодняшней статьи совсем другая, а именно группировка данных в отчете.

Мы не раз затрагивали тему Access, поэтому если Вы начинающий программист access, то для лучшего освоения сегодняшнего урока хочу порекомендовать следующий материал – Основы создания запросов в Access 2003 .

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

Создание отчета в Access 2003

Для того чтобы создать отчет откройте Access в режиме конструктора перейдите на объекты «Отчеты» и жмите создать

После чего у Вас откроется конструктор отчетов, и список полей, которые есть в нашей таблице.

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

Еще для наглядности я указал тип границы полей «Сплошная». Меняется это в свойстве поля (Правой кнопкой по полю «свойства»)

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

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

Как не странно это сделать очень легко, и прибегать к редактированию источника данных совсем не нужно.

Группируем данные в отчете Access 2003

Для этого открываем в конструкторе отчета, окошко «Сортировка и группировка» выбираем там поле или поля группировки и в свойствах группы указываем показывать заголовок

Здесь мы указали, что первая группировка будет по полю otdel а вторая по полю name. И в конструкторе отчетов, после того как Вы укажите «Да» в поле показывать заголовок, у Вас сразу появятся эти самые заголовки, и Вам останется всего лишь переконструировать свой отчет, проще говоря, переставить поля таким образом, чтобы это устроил начальство, для примера я сделал следующим образом:

В итоге, когда Вы сохраните и запустите отчет, он будет уже выглядеть вот так:

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

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

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

При поиске некоторого значения Access находит и отображает соответствующую запись Но если заданному критерию удовлетворяет несколько записей, то для удобства работы возникает необходимость отобразить на экране только их С помощью кнопок сортировки и фильтрации, находящихся на панели инструментов (или команд Фильтр (Filter) и Сортировка (Sort) из меню Записи (Records)), можно отобразить на экране только необходимые для работы записи, а также быстро отсортировать их в нужном порядке Для сортировки всей таблицы используются две кнопки сортировки, а для выбора определенных записей - три кнопки фильтрации

Быстрая сортировка

Иногда необходимо отсортировать записи в определенной последовательности Кнопки сортировки панели инструментов позволяют сортировать столбцы по возрастанию или по убыванию Сначала выберите поля для сортировки, а затем щелкните на кнопке Сортировка по возрастанию (А-Я) (Sort Ascending (A-Z)) или Сортировка по убыванию (Я-А) (Sort Descending (Z-A))

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

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

Чтобы восстановить первоначальный порядок расположения записей, воспользуйтесь командой Записи^Удалить фильтр (Records^Remove Filter/Sort)

Фильтрация

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

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

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

Запросы

Запросы обеспечивают быстрый и эффективный доступ к данным, хранящимся в таблице.

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

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

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

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

Сортировка записей таблицы

В таблице данные всегда отсортированы по первичному ключу. Чтобы организовать другой способ сортировки данных, используется запрос. Для создания такого запроса в окне базы данных следует выбрать пиктограммуТАБЛИЦА” и указать таблицу, которую необходимо отсортировать. Выбор пиктограммыНОВЫЙ ЗАПРОС”, расположенной на панели инструментов, приводит к открытию диалогового окна для создания нового запроса для указанной в окне базы данных таблице. В результате выбора пиктограммыНОВЫЙ ЗАПРОС” в диалоговом окне отображается список всех имен полей исходной таблицы, в начале которого расположен символ " * ". Отбуксируйте звездочку в бланк запроса QBE. Она является символом-заменителем всех полей данных. Кроме того, отбуксируйте в бланк запроса то поле данных, по которому должна быть проведена сортировка.

Для этого поля из списка "Сортировка" выберите способ сортировки. Выберите пиктограмму “ВЫПОЛНИТЬ”и MS Access отобразит на экране результат запроса, отображаемый в режиме таблицы, данные в котором отсортированы требуемым образом.

Запросы с критериями поиска

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

Для составления запроса следует перейти в окно базы данных, выбрать пиктограмму “ЗАПРОС” и нажать кнопку "Создать", а затем кнопку "Новый запрос". В следующем окне диалога следует выбрать одну из таблиц БД и нажать кнопку "Добавить", MS Access поместит в окно запроса список полей указанной таблицы. Теперь можно выбрать одно или несколько полей и отбуксировать их в бланк запроса QBE.

Встроке"Условие отбора" можно ввести теперь критерии выбора. Для обозначения произвольного количества символов используйте в качестве символа-заменителя звездочку (*), а для обозначения одного произвольного символа знак вопроса (?). Сформулируйте критерии запроса. Например, если для текстового поля будет задан только критерий "А*", то в результате выполнения запроса будут отображены только те записи, текстовое поле которых начинается с буквы "А" (или "а").

Если требуется отыскать комбинацию нескольких значений, необходимо ввести их в строку "Условие отбора", употребляя в качестве разделителя логические операторы AND и OR. Кроме обычных операторов сравнения, MS Access предоставляет три специальных оператора, полезных для отбора данных: BETWEEN, IN, LIKE.

Запросы с параметрами

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

Чтобы установить параметр необходимо ввести в строку "Условие отбора" имя или фразу, заключенную в квадратные скобки (). То, что заключено внутри квадратных скобок, MS Access рассматривает как имя параметра. Это имя выводится в диалоговом окне при выполнении запроса, поэтому разумно в качестве имени параметра использовать содержательную фразу. В одном запросе можно задать несколько параметров; при этом имя каждого параметра должно быть уникальным и информативным.

По умолчанию MS Access преобразует введенные в запрос параметры в текстовый тип данных. Однако, так как текстовые поля нельзя сравнивать с полями дат, тип данных для параметров необходимо установить точно. Для этого выберите команду Запрос/Параметры из меню, в результате чего MS Access откроет окно диалога "Параметры запроса". Введите параметр без квадратных скобок в диалоговое окно и выберите необходимый тип данных.

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

Вычисляемые поля в запросах

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

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

Выражение 1: [Поле1] “оператор” [Поле2]

В квадратные скобки заключаются только имена полей. MS Access автоматически использует "Выражение 1" в качестве имени вычисленного выражения. Это имя можно изменить на более содержательное.

При построении сложных выражений MS Access предлагает использовать утилиту, называемую “Построитель выражений”. Для перехода в “Построитель выражений” необходимо щелкнуть по пустому полю в бланке QBE, а затем – по кнопке “Построить” панели инструментов.

Итоговые запросы

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

Для того чтобы составить итоговый запрос, находясь в режиме Конструктора запроса , следует выбрать пиктограмму “ГРУППОВЫЕ ОПЕРАЦИИ” или воспользоваться командой Вид/Групповые операции . В результате чего в бланке запроса появится строка "Групповая операция". Затем для соответствующего поля из списка необходимо выбрать функцию "Группировка".

Многотабличные запросы

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

Во-первых откройте окно Конструктора запроса и добавьте таблицы, в которых содержится необходимая информация. Если ранее с помощью команды Связи была установлена связь между таблицами, то MS Access определит это автоматически. Эта связь будет отображена в виде линии, проведенной между полями таблиц. Если связь между таблицами отсутствует, вы должны ее установить.

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

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

Примечание: Поля главной таблицы при отношении “один-ко-многим” нельзя изменить в результате запроса, отображаемого в режиме таблицы. Кроме того, эти поля могут содержать повторяющиеся значения.

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

Перекрестные запросы

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

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

Поместите в окно Конструктора запроса таблицу "Товары". Затем включите строку "Групповая операция", выбрав команду Вид/Групповые операции . После этого отбуксируйте поле данных"Тип" в бланк запроса. Для этого поля выберите из списка значение "Группировка".

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

Последним в бланк запроса отбуксируйте поле "Цена". Для этого поля выберите значение "Sum".

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

Теперь необходимо итоговый запрос преобразовать в перекрестный запрос. Для этого выберите команду Запрос/Перекрестный .

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

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

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

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

Запросы на удаление

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

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

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

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

Для этого в строке меню выберите команду Запрос/Удаление . После этого MS Access выключает в бланке запроса строки "Сортировка"и"Вывод на экран". Для запросов на удаление эти строки не нужны. Кроме того, для всех колонок бланка запроса в новой строке"Удаление" отображается текст "Условие". Однако критерии при этом не изменяются.

Если выполнить запрос выбором пиктограммы “ВЫПОЛНИТЬ”, MS Access не отобразит на экране результат выполнения запроса. Вместо него появится сообщение о том, сколько записей будет удалено в исходной таблице. Вы можете прервать процесс удаления нажатием кнопки "Отмена". Однако нажатие OK приводит к безвозвратному удалению записей, удовлетворяющих критериям запроса.

Запросы-обновления

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

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

33. Макросы в MS Access: определение, действия, выполняемые с их помощью. Создание макроса. Макросы обеспечивают последовательность операций и применяются для автоматизации их выполнения. Макрос – это не программа, а набор из одной или нескольких макрокоманд. Макросы незаменимы при закреплении последовательности действий за комбинацией клавиш и управление запуском при открытой БД. С помощью макросов можно автоматизировать многие рутинные операции, например, автоматизировать использование форм и отчетов. Чтобы привязать макрос данных к событию таблицы, необходимо: 1. в области навигации дважды щелкнуть по таблице, в которую нужно добавить макрос данных 2. на вкладке Таблица в группе До событий или После событий выберите событие, к которому нужно привязать макрос 3. если с событием уже связан макрос, значок этого события на ленте будет выделен 4. будет открыт конструктор макросов 5. введите макрокоманды, которые нужно включить в макрос 6. сохраните и закройте макрос Для связывания макроса с формой нужно выполнить следующие действия: открыть форму в режиме Конструктора выделить необходимый элемент (например, кнопку), с реакцией на событие которого (например, нажатие кнопки), будет связано выполнение макроса в окне свойств этого элемента управления выбрать вкладку События в раскрывающемся списке для строки, соответствующей выбранному событию, выбрать имя нужного макроса 35. События. Макросы. Модули. Событием называют определенное действие, возникающее при работе с конкретным объектом. Microsoft Access реагирует на целый ряд событий: нажатие кнопки мыши, изменение данных, открытие или закрытие форм и т.д. Обычно события возникают в результате действий пользователя. С помощью процедуры обработки события пользователь имеет возможность определить собственные отклики на события, происходящие в форме, отчете или элементе управления. Макросы обеспечивают последовательность операций и применяются для автоматизации их выполнения. Макрос – это не программа, а набор из одной или нескольких макрокоманд. Макросы незаменимы при закреплении последовательности действий за комбинацией клавиш и управление запуском при открытой БД. С помощью макросов можно автоматизировать многие рутинные операции, например, автоматизировать использование форм и отчетов. Модули представляют наборы описаний, инструкций и процедур, сохраненных под общим именем для организации программ на языке Microsoft Visual Basic. Существуют два основных типа модулей: модули класса и стандартные модули. Модули форм и модули отчетов являются модулями класса, связанными с определенной формой или отчетом. Они часто содержат процедуры обработки событий, запускаемые в ответ на событие в форме или отчете. Процедуры обработки событий используются для управления поведением формы или отчета и их откликом на события, такие как нажатие кнопки. В стандартных модулях содержатся общие процедуры, не связанные ни с каким объектом, а также часто используемые процедуры, которые могут быть запущены из любого окна базы данных. Основное различие между стандартным модулем и модулем класса, не связанным с конкретным объектом, заключается в области определения и времени жизни.

Лекция 15. Создание отчетов средствами MS Access

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

§ предоставляют широкие возможности для группировки и вычисления промежуточных и общих итогов для больших наборов данных;

§ отчеты могут быть использованы для получения эстетично оформленных материалов, наклеек и других документов.

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

Окно отчета и его инструменты

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

Структура отчета в режиме конструктора практически полностью соответствует структуре формы и делится на разделы, имеющие то же назначение, но некоторые свои особенности:

§ «Верхний колонтитул» и «Нижний колонтитул» позволяют выводить общую информацию для всех страниц отчета, так как печатаются вверху и внизу каждой страницы соответственно, например, название документа, нумерация страниц, дата и время и т.д. Отобразить эти разделы можно командой меню Вид – Колонтитулы .

§ «Заголовок отчета» и «Примечание отчета» Печатаются только один раз в начале отчета и в конце отчета соответственно. В заголовок включается информация, обычно помещаемая на обложке, например эмблема компании, название отчета. Если в этих разделах помещен вычисляемый элемент управления, использующий статистическую функцию Sum, то сумма рассчитывается для всего отчета. Включить эти разделы можно командой Вид - Заголовок/примечание отчета.

§ «Область данных» Раздел печатается один раз для каждой строки данных из источника записей. В нем размещаются элементы управления, составляющие основное содержание отчета.

§ «Заголовок группы» и «Примечание группы» используются для реализации группировки в отчетах. Выводятся перед и после каждой новой группы записей, соответственно. Используется для печати названия группы и вычисления статистических функций. Например, если отчет сгруппирован по изделиям, в заголовках групп можно указать их названия. Если поместить в эти разделы вычисляемый элемент управления, использующий статистическую функцию Sum, сумма будет рассчитываться для текущей группы.

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

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

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

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

Вычисления в отчетах

В качестве значения свойства «Данные» практически любого объекта, позволяющего выводить данные, можно задать выражения любой сложности с использованием арифметических операторов. Кроме того, в вычислениях можно использовать любые встроенные функции, а также функции, которые определены разработчиком в модуле VBA . При необходимости можно использовать построитель выражений. Чтобы указать MS Access на необходимость использования выражения, ввод выражения обязательно должен начинаться со знака равно (=).

= [Стипендия]*0,5

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

Группировка в отчетах

Отчеты, в отличие от форм, позволяют выполнять группировку. Для включения группировки в отчет, используется окно «Сортировка и группировка», которое можно вызвать командой меню Вид-Сортировка и группировка (рисунок 15.1).

Рисунок 15.1 - Окно Сортировка и группировка.

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

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

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

При группировке по текстовому полю можно начать новую группу при изменении первого или нескольких начальных символов в значениях поля. Например, чтобы образовать по одной группе для каждой буквы алфавита, необходимо определить создание новой группы при изменении первой буквы значения поля – таким образом, будет получена группа записей, в которых значения поля начинаются с букв А, Б, В и т.д.

Чтобы задать группировку по первым символам, устанавливается значение свойства «Группировка» - По первым знакам , а значение свойства Интервал определяет число начальных символов, по которым необходимо образовывать группы.

Для чисел можно установить свойство «Группировка» в значение Интервал . В этом случае свойство «Интервал» определяет диапазоны группировки. Если в свойстве «Интервал» указано значение 10, то группы будут формироваться через интервал равный 10, например: от –20 до –11, от –10 до –1, от 0 до 9, от 10 до 19, от 20 до 29 и т.д.

Для полей даты/времени можно устанавливать значения свойства «Группировка»: По годам, По кварталам, По месяцам, По неделям, По дням, По часам, По минутам . Тогда свойство «Интервал» будет указывать на количество лет, кварталов, месяцев и т.д. в интервале.

Вычисление промежуточных итогов и итогов с накоплением

Еще одна задача, которую обычно приходиться решать при составлении отчетов, - это получение итоговых величин по группам данных. Для получения промежуточных итоговых значений для групп в эти разделы можно поместить дополнительные свободные элементы управления, в которых используется выражение, построенное с применением итоговых функций: Sum, Min, Max, Avg, Count, First, Last, StDev и Var.

Выражение в разделе группы, использующее итоговую функцию, не должно ссылаться на элемент управления, размещенный в области данных, т.е. не удастся создать вычисляемое поле в области данных и сослаться на него в выражении, использующем итоговую функцию. Но возможно повторить вычисляемое выражение в итоговом поле. Например, если вычисляемое поле в области данных с именем Цена содержит выражение [Цена за единицу]*[Количество] , то в разделе примечаний группы необходимо использовать выражение Sum([Цена за единицу]*[Количество]), а не Sum([Цена]) .

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

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

Контрольные вопросы

1. В чем основное назначение отчетов?

2. Какие способы создания отчетов вы знаете?

3. Что общего и в чем различие между основными разделами форм и отчетов?

4. Как создаются вычисляемые поля?

5. Как выполняется группировка в отчетах?

6. Как вычисляются общие итоги?

7. Как вычислить итоги с накоплением?

8. Назовите механизм настройки отчетов.

Задания для самостоятельной работы

Задание 1 . Создание отчета «Читатели библиотеки» при помощи мастера, по следующему описанию:

1. В окне «Базы данных» выполните переход в категорию «Отчеты».

2. Откройте окно мастера отчетов командой «Создание отчета с помощью мастера». Откроется окно диалога «Создание отчетов» (рисунок 15.2).

3. В раскрывающемся списке «Таблицы и запросы» укажите таблицу «Читатели».

4. Из списка «Доступные поля» в список «Выбранные поля» перенесите все поля таблицы. Нажмите кнопку Далее .

5. На данном этапе предлагается выбрать уровень группировки, но группировка не планируется, поэтому просто нажимаем кнопку Далее .

6. Установим порядок сортировки по полю «ФИО», затем нажмем кнопку Далее .

7. Выберем вид отчета – табличный для продолжения нажимаем кнопку Далее .

8. Выберем стиль текста отчета – сжатый . Нажмем кнопку Далее .

9. Укажем имя отчета Читатели библиотеки и нажмем кнопку Готово . Результат создания отчета изображен на рисунке 15.3


Рисунок 15.2 – Диалоговое окно «Создание отчетов»


Рисунок 15.3 – Фрагмент отчета «Читатели библиотеки»

Задание 2. Отредактируйте отчет «Читатели библиотеки» в режиме конструктора.

Задание 3 . Создайте собственный отчет для БД ИС «Библиотека» позволяющий выводить читательские билеты, по виду приближенные к настоящим.

Задание 4. Создайте отчет, предоставляющий информацию о количестве книг у каждого из читателей.