Создание отчетов в Access. Проектирование отчетов, вычисления в MS ACCESS Вычисления в отчетах access

21.06.2020

Вычисления в формах используются:

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

Правила составления выражений в Access мы уже описывали (см. разд. "Использование выражений в запросах" гл. 4). Поэтому здесь мы остановимся в первую очередь на вычисляемых полях формы и опишем, где они нужны и как их создать.

Внимание
Формулы для вычислений в Access записываются с помощью специального синтаксиса, который диктует правила записи формул и в выражениях Access и в процедурах на VBA. Этот синтаксис несколько отличается от принятого в математике, однако во многом на него похож и интуитивно понятен. Описание синтаксиса вычислительных формул приведено в разд. "Выражения в Access" гл. 4
.

Создание вычисляемых полей

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

  1. Создайте свободный элемент управления типа Поле (Text Box) в нужном месте формы.
  2. Прямо в поле введите выражение =Date () . Знак равенства обязателен.
  3. Откройте окно Свойства (Properties) для этого элемента и задайте для свойства Формат поля (Format) желаемый формат даты, например Длинный формат даты (Long Date).
  4. Установите длину поля таким образом, чтобы в нем помещалось необходимое количество символов.
  5. Измените название метки этого текстового поля. Созданное поле будет выглядеть, как показано на рис. 9.47.


Рис. 9.47 . Вычисляемое поле

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

Отчеты дают вам возможность представить компоненты вашей базы данных в удобном для чтения формате для печати. Access 2010 позволяет создавать отчеты из таблиц и запросов.

Чтобы создать отчет:

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

Удаление полей

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

Чтобы удалить поле в отчете:

  1. Щелкните любую ячейку в поле, которое вы хотите удалить.
  2. Нажмите клавишу «Удалить».

Когда вы удаляете поле, обязательно удалите его заголовок. Просто выберите заголовок и нажмите клавишу «Удалить».

Печать и сохранение отчетов в режиме предварительного просмотра

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


Чтобы распечатать отчет:

Сохранение отчетов

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

Access предлагает варианты сохранения отчета в виде файла Excel, текстового файла, PDF, файла XPS, вложения электронной почты, текстового файла или HTML-документа. Поэкспериментируйте с различными вариантами экспорта, чтобы найти тот, который наилучшим образом соответствует вашим потребностям.

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

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

Задача 1. В таблице ТОВАР имеются поля ЦЕНА и СТАВКА_НДС, вычислите цену с учетом НДС и сравните ее с полученной в вычисляемом поле таблицы Цена с НДС.

  1. Создайте в режиме конструктора запрос на выборку для таблицы ТОВАР. Перетащите в бланк запроса поля НАИМ_ТОВ, ЦЕНА, СТАВКА_НДС и Цена с НДС (рис. 4.6).
  2. Для подсчета цены с учетом НДС создайте вычисляемое поле, записав в пустой ячейке строки Поле (Field) выражение [ЦЕНА]+[ЦЕНА]*[СТАВКА_НДС].
  3. Для отбора записей со значением выше 5000 в вычисляемом поле в строку Условие отбора (Criteria) введите > 5000
  4. После ввода выражения система по умолчанию формирует имя вычисляемого поля Выражение 1, которое становится заголовком столбца в таблице с результатами выполнения запроса. Это имя вставится перед выражением [ЦЕНА]+[ЦЕНА]*[СТАВКА_НДС]. Для каждого нового вычисляемого поля в запросе номер выражения увеличивается на единицу. Имя вычисляемого поля отделяется от выражения двоеточием. Для изменения имени установите курсор мыши в вычисляемом поле бланка запроса и нажмите правую кнопку мыши. В контекстно-зависимом меню выберите Свойства (Properties) поля и в строку Подпись (Caption) введите новое имя поля ― Цена с НДС1 . Теперь в таблице с результатами выполнения запроса в заголовке вычисляемого столбца отобразится это имя. Имя поля может быть исправлено также непосредственно в бланке запроса.
  5. Для отображения результата выполнения запроса щелкните на кнопке Выполнить (Run) в группе Результаты (Results). Вычисляемое поле таблицы и за-проса имеют одинаковые значения.
  6. Измените в одной из записей запроса цену товара. Значения в обоих вычисляемых полях будут моментально пересчитаны.
  7. Для формирования сложного выражения в вычисляемом поле или условии отбора целесообразно использовать построитель выражений. Построитель позволяет выбрать необходимые в выражении имена полей из таблиц, запросов, знаки операций, функции. Удалите выражение в вычисляемом поле и используйте построитель для его формирования.
  8. Вызовите построитель выражений (Expression Builder), нажав кнопку Построитель (Builder) в группе Настройка запроса (Query Setup) ленты Конструктор (Design), или выбрав Построить (Build) в контекстно-зависимом меню. Курсор мыши должен быть установлен предварительно в ячейке ввода выражения.
  9. В левой части окна Построитель выражений (Expression Builder) (рис. 4.7) выберите таблицу ТОВАР, на которой построен запрос. Справа отобразится список ее полей. Последовательно выбирайте нужные поля и операторы, двойным щелчком вставляя в выражение. Выражение сформируется в верхней части окна. Обратите внимание, построитель перед именем поля указал имя таблицы, которой оно принадлежит, и отделил его от имени поля восклицательным знаком.
  10. Завершите процесс построения выражения в вычисляемом поле, щелкнув на кнопке ОК.
  11. Сохраните запрос под именем ― Цена с НДС и закройте его.
  12. Выполните сохраненный , выделив его в области навигации и выбрав в контекстном меню команду Открыть (Open).


Задача 2. В вычисляемых полях и условиях отбора можно использовать встроенные функции. В Access определено более 150 функций.
Пусть необходимо выбрать все накладные, по которым производилась отгрузка в заданном месяце. В НАКЛАДНАЯ дата отгрузки хранится в поле ДАТА_ОТГ с типом данных Дата/время (Date/Time).

  1. Создайте в режиме конструктора запрос на выборку для таблицы НАКЛАДНАЯ. Перетащите в бланк поля НОМ_НАКЛ и КОД_СК (рис. 4.8).
  2. Создайте вычисляемое поле в пустой ячейке строки Поле (Field), записав туда одно из выражений: Format([НАКЛАДНАЯ]![ДАТА_ОТГР];»mmmm») ― эта функция возвратит пол-ное название месяца
    или Format([НАКЛАДНАЯ]![ДАТА_ОТГР];»mm») ― эта функция возвратит номер месяца.
  3. Для отбора накладных, выписанных в заданном месяце, в вычисляемом поле в строку Условие отбора (Criteria) введите название месяца, например март (рис. 4.8), или номер месяца, например 3 в соответствии с параметром в функции Format.
  4. Выполните запрос, нажав кнопку Выполнить (Run) в группе Результаты (Results) на вкладке ленты Работа с запросами | Конструктор (Query Tools | Design).
  5. Запишите в вычисляемом поле функцию Month(НАКЛАДНАЯ!ДАТА_ОТГ), и убедитесь, что эта функция возвращает выделенный из даты номер месяца.
  6. Для выборки всех строк, относящихся ко второму кварталу, в строку Условие отбора (Criteria) введите оператор Between 4 And 6, определяющий, попадает ли значение выражения в указанный интервал.
  7. Запишите в вычисляемом поле выражение MonthName(Month(НАКЛАДНАЯ!ДАТА_ОТГ)) и убедитесь, что функция MonthName преобразует номер месяца в его полное на-звание.


Для закрепления смотрим видеоурок.

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

В этой статье

Типы агрегатов, которые можно добавить в отчет

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

Вычисление

Описание

Функция

Суммирует элементы в столбце.

Определяет среднее значение всех элементов столбца.

Подсчитывает количество элементов в столбце.

Максимальное значение

Возвращает элемент, имеющий наибольшее (числовое или по алфавиту) значение в столбце.

Минимальное значение

Возвращает элемент, имеющий наименьшее (числовое или по алфавиту) значение в столбце.

Стандартное отклонение

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

Дисперсия

Вычисляет дисперсию для всех значений в столбце.

Добавление суммы или другого агрегата в режиме макета

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

Данные (Control Source) выражение, которое выполняет нужное вычисление. Если в отчете есть уровни группировки, Access также добавит текстовое поле, которое выполняет такие же вычисления в каждом разделе примечания группы.

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

Добавление суммы или другого агрегата в режиме конструктора

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

Access добавляет текстовое поле в колонтитул отчета и задает в качестве значения его свойства Данные (Control Source) выражение, которое выполняет нужное вычисление. Если в отчете есть уровни группировки, Access также добавит текстовое поле, которое выполняет такие же вычисления в каждом разделе примечания группы. Если для свойства Сумма с накоплением (Running Sum) задано значение Для всего , то общее итоговое значение можно повторить в колонтитуле отчета. Создайте в нем поле и задайте в качестве значения его свойства Данные (Control Source) имя поля, в котором вычисляется сумма с накоплением, например =[СуммаЗаказа] .

Известно, что вычисляемые поля в базе данных Access 2003 используются для различных целей, в том числе и для проведения расчетов. Вычисляемые поля в Microsoft Access 2003 могут быть созданы как в запросе и форме, так и в отчете. Рассмотрим создание вычисляемых полей в отчете базы данных Access 2003. Для ввода выражения в отчете необходимо открыть отчет в режиме Конструктора и создать свободное текстовое поле, используя кнопку "ab " (Поле) на панели инструментов.

В свободное поле можно вводить выражение для выполнения вычислений, в этом случае оно становится вычисляемым. В вычисляемых полях можно использовать функции, а можно ввести выражение, использующее в качестве входных данных значения полей таблиц БД Access. Кроме того, в отчет можно вставить автономную текстовую метку, т.е. метку не связанную с текстовым полем, используя кнопку "Aa " (Надпись) на панели инструментов. "Надпись" используется для ввода какого-либо имени или чисел.

Рассмотрим создание вычисляемого поля в отчете Успеваемость на примере базы данных Training_students_O . Постановка задачи следующая: в отчете БД Access Успеваемость создать одно поле, в котором должна выводиться 100-бальная оценка, и другое поле, в которое должно выводиться текущее время. Для решения этой задачи откроем отчет Успеваемость в режиме конструктора (рис. 1).


Рис. 1.

Для создания вычисляемого поля в отчете Успеваемость, необходимо выполнить следующие действия:

1. Нажать кнопку "ab " (Поле) на панели инструментов, а затем щелкнуть на отчете Успеваемость в "Области данных" в том месте, где планируется вставить свободное (вычисляемое) поле;

2. Удалить метку (в нашем случае Поле 30), которая вставляется вместе со свободным полем (слева от свободного поля), а затем установить курсор в поле "Свободный" (рис. 2) и ввести выражение (для отображения 100-бальной оценки в отчете): =([Оценка])*20. В этом случае Свободное поле стало вычисляемым. Для ввода функций или выражений можно также использовать построитель выражений (кнопка "Построитель" на панели инструментов);



Рис. 2.

3. Нажать кнопку "Aa " (Надпись) на панели инструментов, а затем щелкнуть на отчете Успеваемость в области "Верхний колонтитул " в том месте, где планируется вставить метку "Надпись": 100-бальная оценка;

4. Установить курсор в метку и ввести текст: 100-бал. оценка (рис. 3);



Рис. 3.

5. Перейти в режим просмотра, выполнив щелчок по кнопке "Просмотр" (рис. 4), в отчете БД Access 2003 появились оценки по 100-бальной системе.



Рис. 4.

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

6. Нажать кнопку "ab " (Поле) на панели инструментов, а затем щелкнуть на отчете в области "Нижний колонтитул" в том месте, где планируется вставить свободное текстовое поле для функции "Текущее время";

7. Удалить метку (в нашем случае Поле 31), а затем установить курсор в поле "Свободный" (рис. 5) и ввести функцию: =Time();



Рис. 5.

8. Для ввода функции =Time() в поле "Свободный" можно также использовать построитель выражений (вместо выполнения операции в предыдущем пункте), для этого необходимо щелкнуть на панели инструментов на пиктограмме "Построитель", откроется окно Построитель, в котором надо выделить "выражение" (рисунок 6), и щелкнуть ОК;