Access 2007
.pdf
прошлом году, или свадебных гостей, не приславших подарки. С помощью условного форматирования можно акцентировать внимание на этих порциях данных, задав для них другое форматирование.
Фундаментальная идея условного форматирования заключается в том, что вы определяете условие, которое, принимая значение Истина, сообщает программе Access о необходимости применить дополнительное форматирование к значению в столбце.
Для использования условного форматирования выполните следующие действия.
1.Выберите значение в столбце, к которому хотите применить условное форматирование, Например, если хотите выделить товары стоимостью более 100 долларов, щелкните кнопкой мыши одно из значений в столбце Price. Неважно, какое значение вы выберите — правило условного форматирования применяется ко всем значениям в столбце.
2.Выберите Работа с макетами отчетов | Формат → Шрифт → Условное (Report Layout Tools | Formatting → Font → Conditional).
Если кнопка Условное не активна, возможно, вы не выбрали подходящую порцию данных в отчете. Например, если выбрать заголовок столбца вместо значения в столбце, условное форматирование применить невозможно.
После щелчка мышью кнопки Условное на экране появится диалоговое окно Условное форматирование (Conditional Formatting) с одним условием. Это окно можно использовать для задания от одного до трех условий в одном столбце, но чаще всего достаточно одного.
3.С помощью списка и текстовых полей задайте условие, которое должна проверить программа Access.
Первое поле с раскрывающимся списком позволяет выбрать, хотите ли вы проверять реальные данные, хранящиеся в поле (Значение поля), или вычисление, использующее эти данные (Выражение). Простейший и чаще всего применяемый вариант — условие, базирующееся на значении поля.
С помощью второго поля с раскрывающимся списком выберите тип сравнения, которое вы хотите выполнить. Например, можно проверить, равно ли значение в ячейке заданному числу, больше или меньше заданного или лежит в некотором диапазоне значений. Наконец, введите данные, которые программа Access должна использовать для сравнения. Например, если вы выбрали сравнение меньше чем, введите значение, с которым Access будет сравнивать. Если выбрана проверка принадлежности диапазону значений, введите два значения, задающие этот диапазон.
На рис. 10.17 показано заполненное окно Условное форматирование, проверяющее дорогостоящие товары в поле Price.
Примечание
Все сравнения "между" — охватывающие. Например, если задано условие "между 1 и 10", оно истинно для чисел 1, 10 и любых промежуточных значений. С другой стороны, если программа Access столкнется со значением 0.99, она не будет применять к нему условное форматирование.
4.Щелкните мышью кнопки Формат (Format) для задания параметров форматирования, которые программа должна применить, если условие истинно.
351
Рис. 10.17. В данном примере цена товара будет выводиться жирными красными символами желтом фоне, если она больше 50 долларов
Рис. 10.18. Данный отчет не даст пропустить дорогостоящие товары
Этот вариант форматирования может изменить цвет шрифта или фона, применить жирное курсивное или подчеркнутое начертание шрифта. Но в условном форматировании нельзя изменить гарнитуру шрифта или его размер.
Под строкой с вашим условием вы увидите область предварительного просмотра для выбранных вами параметров форматирования.
Если хотите добавить второе и третье условия, щелкните мышью кнопку Добавить » (Add ») и вернитесь к пункту 3.
352
Например, можно задать шрифт синего цвета для пометки цен выше 50 долларов и шрифт красного цвета для выделения цен, превышающих 100 долларов. Если у вас несколько перекрывающих друг друга условий, программа Access применит только первое соответствующее.
Подсказка
Во избежание недоразумений тщательно структурируйте ваши условия, избегая их взаимного перекрытия. Например, используйте одно условие для отбора значений между 100 и 499, а другое — для значений не меньших 500.
Для удаления условий можно щелкнуть мышью кнопку Удалить (Delete). Access выведет на экран диалоговое окно с просьбой указать удаляемые условия. Вы можете установить флажок рядом с соответствующим условием и щелкнуть мышью кнопку ОК.
6. Щелкните мышью кнопку ОК.
После нажатия кнопки ОК программа Access вычисляет условие для каждого значения в столбце и устанавливает нужное форматирование. На рис. 10.18 показан окончательный вид отчета.
Фильтрация и сортировка в отчете
В отчетах предлагаются те же средства фильтрации и сортировки, которые вы научились применять к листу данных в главе 3. Кроме того, у вас есть возможность группировки и подсчета итогов, которые будут рассматриваться в главе 11.
Фильтрация в отчете
В отчете ProductCatalog представлены все записи из таблицы Products. Однако очень часто отчеты нуждаются в отборе важного подмножества данных. Например, у вас может появиться желание проанализировать объемы продаж товаров определенной категории или заказов, сделанных клиентами из конкретного города. Из отчета ProductCatalog было бы логично исключить товары, снятые с производства. Помимо всего прочего, компании Boutique Fudge не за чем рекламировать товары, которые она больше не продает.
Вы можете сократить результаты, включенные в отчет, двумя способами. Один вариант вы уже изучили: создание запроса, извлекающего нужные вам результаты, и последующее использование запроса для формирования отчета. Этот способ хорош, если у вас уже есть запрос, удовлетворяющий требованиям, или вы планируете использовать это подмножество данных для нескольких целей (отчеты, редактирование, другие запросы и т. д.).
Другой вариант — применить фильтрацию к данным отчета. Преимущество этого метода заключается в том, что вы можете изменять условия фильтрации быстро и многократно, Если планируется использование одного и того же отчета для печати нескольких выборок данных, это самый лучший подход. Например, можно отобрать товары одной категории, напечатать их, а затем изменить условия фильтрации для выбора товаров другой категории, которые тоже можно вывести на печать.
353
Фильтрация отчета выполняется так же, как и фильтрация листа данных. У вас есть два возможных варианта.
Если вы хотите быстро сформировать условие отбора на основе имеющегося значения, щелкните правой кнопкой мыши это значение, как показано на рис. 10.19. Например, в поле CategoryName можно щелкнуть правой кнопкой мыши значение Beverages (напитки). Всплывающее меню содержит несколько вариантов условий отбора, основанных на текущем значении. В зависимости от выбранного варианта можно включить в отчет записи из категории Beverages, записи из других категорий, записи из категорий, в название которых входит слово Beverages (например, Alcoholic Beverages (алкогольные напитки)) и т. д.
Рис. 10.19. Варианты быстрой фильтрации, которые вы видите, зависят от типа данных. В этом примере условия отбора позволяют задать разные фильтры, базирующиеся на слове "Beverage"
■Если вы хотите создать выражение для большей гибкости условия, щелкните правой кнопкой мыши любое значение в столбце и найдите подменю фильтрации. Точное название меню зависит от типа данных. Например, если щелкнуть правой кнопкой мыши поле CategoryName, появится подменю Текстовые фильтры. Если щелкнуть правой
354
кнопкой мыши поле Price, вы увидите подменю Числовые фильтры. Эти подменю включают набор вариантов фильтрации, позволяющих задать конкретные выражения. Все тонкие детали и вспомогательную информацию о создании разнообразных выражений фильтров см. в разд. "Фильтрация" главы 3.
Фильтры могут применяться в нескольких столбцах одновременно. Для удаления фильтра щелкните правой кнопкой мыши столбец и выберите команду Снять фильтр с... (Clear filter from...).
Сортировка данных в отчете
Первоначально в отчете существует тот же порядок записей, что и в источнике данных. Если отчет строится на базе запроса, порядок определяется порядком сортировки, использованным в запросе. Если отчет создается на базе таблицы, у записей нет определенного порядка, как правило, они выводятся в порядке их добавления в таблицу.
В любом случае сортировку можно применить непосредственно в отчете, во многом так же, как и на листе данных. Просто щелкните правой кнопкой мыши заголовок соответствующего столбца и найдите вариант сортировки. Варианты сортировки зависят от типа данных — например, вы можете упорядочить текстовые поля в алфавитном порядке, даты — в хронологическом, а числовые поля — по возрастанию или по убыванию.
Примечание
Одновременно можно сортировать по одному полю. Если вы хотите применить более сложную сортировку, использующую несколько столбцов (например, сортировку, разделяющую товары по категориям, отсортированным в алфавитном порядке, а затем упорядочивающую заказы в каждой категории в зависимости от цены товара), для такого отчета придется создать запрос.
355
Глава 11
Проектирование сложных отчетов
В предыдущей главе вы научились создавать простые отчеты - хорошо отформатированные распечатки, компонующие данные в одну таблицу. Простые отчеты — прекрасная вещь для создания твердой копии, более отшлифованной, чем простая распечатка листа данных. Как уже известно из предыдущей главы, простые отчеты предоставляют возможность детального форматирования, необходимого для выделения важных столбцов и значений, кроме того, в простых отчетах изящно обрабатываются большие текстовые поля без потери пространства на листе и без обрезания данных.
Простые отчеты — великолепное средство программы Access, но они статичны, строги и просты. Главное их ограничение — структура отчета. Независимо от того, как вы форматируете или упорядочиваете данные в простом отчете, программа Access всегда представляет их в виде таблицы. В реальной жизни может возникнуть необходимость представления отпечатанных данных в иной форме. Возможно, вам понадобится преобразовать данные в счета клиентов, списки посещаемости класса или почтовые этикетки. Все эти отчеты выполняют одну и ту же задачу — извлекают данные из таблицы и затем организуют их на печатной странице, но ни для одного из них не подойдет стандартный отчет с его простой табличной структурой.
В этой главе вы увидите, как создавать разнообразные, более специализированные отчеты, использующие идеи, изложенные в предыдущей главе, и дополненные несколькими новыми приемами. В процессе изучения вы обратитесь к режиму Конструктора, узнаете, как добавлять изображения и контуры, и научитесь устанавливать разрывы страниц в длинных распечатках. Вы также узнаете, как использовать группировку для анализа данных и вычисления промежуточных итогов.
Улучшение отчетов в Конструкторе
Конструктор — это режим, который освобождает ваши отчеты. Как вы узнали в предыдущей главе, Конструктор обеспечивает иное представление отчета. В отличие от Режима макета в Конструкторе вы не увидите никаких данных отчета. Вместо этого перед вами предстанет проект вашего отчета, сообщающий программе Access о том, как формировать отчет. С помощью этого представления можно делать то, что практически невозможно в любом другом режиме.
Рассмотрим простой отчет с перечнем товаров, созданный в предыдущей главе. Переключившись в режим Конструктора, можно увидеть, что делает отчет действующим (рис. 11.1). Для перехода в Конструктор щелкните правой кнопкой мыши заголовок вкладки и выберите режим
Конструктор.
356
Рис. 11.1. Окно Конструктора разделено на пять разделов. Каждый из них сообщает программе Access о том, как конструировать фрагмент отчета. Раздел Область данных — самая важная часть. Когда запускается выполнение отчета (с помощью печати или отображения в Режиме макета), Access повторяет раздел Область данных для каждой строки. Программа заполняет поля в разделе Область данных значениями из соответствующей записи
Примечание
Странная сетка из линий и точек, которую вы видите в Конструкторе, предназначена для того, чтобы помочь вам выровнять разные части отчета. Как вы увидите, пользователи часто применяют Конструктор для размещения данных в точно заданной позиции, поскольку автоматического выравнивания разных фрагментов отчета не существует.
Разделы в режиме конструктора
Секрет освоения режима Конструктор — понимание назначения пяти его разделов. Несмотря на то, что некоторые из них можно оставить пустыми, в каждый отчет они включаются практически в неизменном порядке.
■Заголовок отчета (Report Header). Этот раздел выводится один раз в начале отчета, на первой странице. Именно в него вставляются заголовки, эмблемы и ваши имя и фамилия.
■Верхний колонтитул (Page Header). Этот раздел появляется сразу под Заголовком отчета на первой странице и в верхней части каждой последующей страницы. Это место для вставки номеров страниц, а в простых табличных отчетах, таких как каталог товаров, он также применяется для размещения заголовков столбцов.
■Область данных (Detail). Этот раздел отображается сразу после Верхнего колонтитула и является сердцем всех отчетов. Хитрость заключается в том, что Область данных выводится один раз для каждой записи вашего отчета. В простом табличном отчете этот раздел представляет единственную строку.
357
■Нижний колонтитул (Page Footer). Этот раздел отображается в нижней части каждой страницы. Если вы не пользуетесь Верхним колонтитулом для вывода номеров страниц, этот раздел предоставляет вам еще одну возможность.
■Примечание отчета (Report Footer). Этот раздел выводится один раз в конце любого отчета. Его можно использовать для печати сводных данных, знаков авторского права, даты вывода на печать и других сведений.
Содержимое описанных разделов выглядит совершенно иначе чем то, что вы видели в других режимах, поскольку не отображает реальные данные. Вместо данных разделы содержат заполнители, в которые программа Access может каждый раз вставлять необходимую информацию, когда формируется отчет. Если вы создаете отчет о товарах, Access извлекает мнения из полей ProductCategoryID, ProductName, Price и Description и затем перемещает их в соответствующие поля.
Понадобится некоторое время для того, чтобы вы освоили манипулирование данными в режиме Конструктор. Прежде всего, нужно научиться изменять размер каждого раздела. Эта возможность полезна, т. к. в разных отчетах для каждой области отводятся различные по объему пространства. На рис. 11.2 показано, как изменять размер разделов.
Рис. 11.2. Для изменения размера раздела переместите указатель мыши к границе, расположенной под разделом, размер которого нужно изменить. Перетащите с помощью мыши границу вниз (для увеличения его размера) или вверх (для сокращения отведенного пространства). Дальше ваша задача — разместить содержимое внутри раздела для того, чтобы заполнить доступное пространство. В данном примере раздел Область данных расширяется
Примечание
Если вы не хотите использовать раздел, его размер можно свести практически к нулю. Посмотрите на раздел Примечание отчета на рис. 11.1. Он присутствует, но не будет виден, поскольку в этот отчет не включены примечания. Помимо этого можно скрыть разделы колонтитулов.
358
Просто щелкните правой кнопкой мыши отчет и выберите команду Колонтитулы страницы для того, чтобы удалить разделы колонтитулов в отчете. (Щелкните кнопкой мыши эти команды еще раз для того, чтобы снова отобразить эти разделы.)
Об элементах управления
Конструктор предлагает иное представление вашего отчета. Программа Access отображает все содержимое отчета с помощью элементов управления: графических объектов, содержащих текст, изображения и форматирование. Каждый элемент управления — это отдельный объект. Вы можете изменить его внешний вид или перетащить его в другое место (иногда может понадобиться сначала вытащить его из табличного макета).
На рис. 11.3 показаны элементы управления в отчете, представляющем каталог товаров. На рисунке видны не все элементы, поскольку не осе столбцы попали в поле зрения.
Рис. 11.3. В отчете о товарах есть элементы управления для отображения заголовка, номеров страниц, заголовков столбцов и данных. У каждого элемента управления есть тонкая граница черного цвета, которая помогает выделить элемент и изменить его размер в Конструкторе. На распечатке эти границы не видны
Примечание
Небольшая странность на рис. 11.3 может удивить вас. На рисунке есть несколько полей ввода, которые выглядят, скорее, как подписи. Подобное отображение объясняется содержимым этих элементов управления. Как вы узнаете чуть позже в этой главе, в отчетах элемент управления Подпись применяется для неизменного текста, а элемент управления Поле — для переменного содержимого (основанного на текущей дате, текущей записи, текущей странице и т. д.).
Для того чтобы чувствовать себя свободнее в Конструкторе, поэкспериментируйте с простым отчетом. (Если у вас под рукой нет отчета, можно загрузить из Интернета БД Boutique Fudge с примерами к данной главе; см. Web-страницу "Missing CD" на сайте
359
www.missingmanuals.com.) Далее перечислены некоторые задания, которые полезно проделать самостоятельно.
■Перетащите с помощью мыши с одного места на другое элементы управления в разделах
Заголовок отчета и Нижний колонтитул.
■Измените размер элемента управления в разделе Заголовок отчета или Нижний колонтитул, перетащив с помощью мыши черную границу, окружающую элемент.
■Измените порядок вывода столбцов, переместив с помощью мыши их заголовки в разделе Верхний колонтитул или поля в разделе Область данных. Когда перемещается столбец, программа Access автоматически реорганизует остальные столбцы. Программа действует так же, как при изменении порядка отображения столбцов в Режиме макета.
■Выделите элемент управления и измените его форматирование с помощью группы ленты
Инструменты конструктора отчетов | Конструктор -* Шрифт (Report Design Tools | Design → Font). Этот метод можно применять как к элементам в разделах верхнего и нижнего колонтитулов, так и к заголовкам столбцов и отдельным полям.
Когда вы завершите изменения, щелкните правой кнопкой мыши заголовок вкладки и выберите другой режим (например, Представление отчета, Режим макета или Предварительный просмотр) для того, чтобы увидеть, как будет выглядеть напечатанный отчет. Когда вы закроете отчет, программа Access предложит сохранить выполненные вами изменения.
Вы должны уметь делать в Конструкторе все, что вы делали для настройки отчета в Режиме макета. Конечно, удобнее применять Режим макета для выполнения большинства этих задач. Но как вы увидите в следующем разделе, Конструктор предоставляет больше возможностей для отказа от типичного табличного отчета и организации ваших данных любым понравившимся вам способом.
Удаление полей из макета
В простом отчете программа Access группирует все поля в нечто, именуемое макетом. На самом деле макет — это контейнер, который позволяет легко работать с группами полей. Эта новинка появилась в Access 2007; она предоставляет несомненные удобства, с которыми вы познакомились в главе 10:
■когда вы перемещаете заголовок столбца, данные этого столбца перемещаются вместе с ним и наоборот;
■когда вы переносите столбец в новое место, программа Access соответствующим образом реорганизует другие столбцы;
■когда вы расширяете столбец, Access отодвигает все следующие за ним стоящие на пути столбцы. Аналогично, когда вы сжимаете столбец, следующие столбцы сдвигаются для заполнения освободившегося пространства.
Без макета вы не смогли бы перемещать столбцы так быстро. Каждый раз, когда нужно было внести изменение в один столбец, пришлось бы кропотливо переносить все остальные столбцы. В отчете с несколькими десятками полей этот процесс доставил бы множество хлопот.
Несмотря на то, что макеты — это маленькие чудесные удобства, они становятся смирительной рубашкой, если вы хотите организовать данные иначе. Допустим, вы хотите взять отчет с каталогом товаров и сделать его похожим не на инвентарную опись, а на розничное издание, показанное на рис. 11.4. С помощью макета это сделать не удастся, поскольку поля
360
