Вычисление процентов

Иногда в отчете требуется вывести проценты, которые составляют конкретные значения в общей или частичной итоговой сумме. В отчетах Access можно создавать такие поля. Для этого в области данных создается вычисляемое поле, значение которого определяется выражением типа = [Стоимость ]/ [Общая стоимость], т.е. нужно меньшее значение разделить на большее. Свойство Формат (Format) для этого поля нужно установить равным Процентный (Percent).
Если требуется вычислить процент частичной (групповой) суммы от общей суммы или суммы более высокого уровня группировки, нужно создать аналогичное поле в разделе заголовка или примечания соответствующей группы.
Access обеспечивает возможность таких расчетов за счет того, что отчет формируется в два этапа. На первом этапе вычисляются поля в области данных, итоговые значения для групп и для отчета в целом и определяется длина отчета. Во время второго этапа вычисляются все выражения, которые ссылаются на итоги, рассчитанные во время первого этапа.
Пример использования полей, содержащих процент от итогового значения, вы можете найти в отчете "Продажи по сотрудникам и странам" (Employee Sales by Country) базы данных "Борей" (Northwind).
 
Нумерация записей и подсчет количества записей в отчете
Свойство Сумма с накоплением (Running Sum), которое мы рассматривали выше, может быть использовано еще одним, несколько неожиданным способом. Оно используется для нумерации записей (строк) в отчете. Если форма отчета требует, чтобы строки отчета были пронумерованы, для этого придется создать вычисляемое поле, свойство Данные (Control Source) которого определяется выражением: =1, а свойство Сумма с накоплением (Running Sum) нужно установить равным Для всего (Over All) или Для группы (Over Group), если требуется нумерация записей в пределах группы. Тогда при печати отчета значение этого поля будет увеличиваться на единицу для каждой новой записи. Пример нумерации записей описанным образом вы можете увидеть в отчете "Продажи по годам" (Sales by Year) базы данных "Борей" (Northwind).
Иногда в отчете требуется сосчитать количество записей, содержащихся в каждой группе, например количество заказов у каждого клиента или количество счетов, выписанных сотрудником отдела продаж. Такое значение так же, как и итоговая сумма, обычно выводится в примечании группы. Для того чтобы его отобразить, нужно в области данных создать вычисляемое поле, которое будет содержать номер строки (как это описано выше), и сделать это поле невидимым, т. е. его свойству Вывод на экран (Visible) присвоить значение Нет (No). Затем в области примечания группы нужно создать вычисляемое поле, свойство Данные (Control Source) которого должно ссылаться на это невидимое поле. Примеры таких полей приводятся на.
Если требуется подсчитать общее количество записей в отчете, то тогда просто создается одно вычисляемое поле в разделе заголовка или примечания отчета, у которого свойство Данные (Control Source) устанавливается равным выражению =Count(*).
 
Объединение текстовых данных и печать условий отбора записей в отчете
В отчетах чаще, чем в формах, применяются вычисляемые поля, которые представляют собой комбинацию данных из различных полей таблиц или базовых запросов. Типичным примером такого объединения является поле, содержащее фамилию и инициалы человека, хотя в базе данных часто фамилия, имя и отчество хранятся в разных полях. Второй, не менее распространенный случай, когда в одном столбце отчета требуется вывести адрес, который обычно тоже хранится в нескольких отдельных полях таблицы. Часто в одном столбце отчета объединяют данные из нескольких полей таблицы в целях уменьшения ширины отчета. Примеры создания текстовых выражений такого типа приводились ранее.
Еще один типичный случай объединения текстовых полей использовался нами в отчете "Заказы клиентов" . Это поля, которые выглядят в отчете как надписи ("Итого по заказу <номер>:", "Итого по клиенту <имя>:"), хотя на самом деле представляют собой комбинацию текстовых строк и значений полей базового запроса.
Иногда в отчетах нужно вывести условия отбора записей. Для этого также применяют вычисляемые поля, содержащие комбинацию текста и параметров отбора. Пример такого выражения показан на: в заголовке отчета создано поле, которое вычисляется с помощью, выражения, содержащего ссылки на параметры базового запроса [Начальная дата] и [Конечная дата]. В этом же отчете используются и другие вычисляемые поля, объединяющие текстовые данные из разных полей.
Аналогично можно написать выражение, которое будет ссылаться на значения полей открытой формы, часто используемой для ввода критериев отбора записей. Примером такой формы, представляющей собой диалоговое окно, может быть форма "Продажи по годам" (Sales by Year Dialog), представленная на.
Для того чтобы в заголовке отчета написать интервал дат, заданных в форме "Продажи по годам", необходимо для источника данных вычисляемого поля использовать выражение: ="Продажи с " & Forms![Продажи по годам]![НачальнаяДата] & " по " & Forms![Продажи по годам]![КонечнаяДата] для английской версии: ="Продажи с " & Forms![Sales by Year Dialog]![BeginningDate] & " no " & Forms![Sales by Year Dialog]![EndingDate]
Замечание
Для того чтобы значения таких выражений были правильными, необходимо, чтобы форма, на которую они ссылаются (в данном случае "Продажи по годам"), была открыта в момент загрузки отчета. В противном случае в этих вычисляемых полях будет отображен код ошибки.
Совет

Если захотите поэкспериментировать с формой "Продажи по годам", советуем вам временно изменить свойство Модальное (Modal) этой формы на Нет (No), чтобы иметь возможность, в то время как форма открыта, переключиться на отчет, содержащий вычисляемые поля.