Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Access_2007.doc
Скачиваний:
257
Добавлен:
17.03.2015
Размер:
20.6 Mб
Скачать

Часто задаваемый вопрос. Ошибки выражений

Почему выражение отображает #Error в режиме предварительного просмотра?

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

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

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

  • вы забыли начать выражение со знака равенства;

  • вы ошиблись,' набирая имя поля, или сослались на поле, которого нет в базовой таблице или запросе;

  • вы вставили непарный набор скобок;

  • у элемента управления Поле то же имя, что и у одного из полей, используемых вами, Если у вас есть выражение =UnitsInStock+UnitsOnOrder и ваш элемент управления Поле назван UnitsInStock, Access приходит в замешательство. Для решения проблемы переименуйте Поле (например в UnitsInStockCalculation) с помощью Окна свойств. (Свойство Имя отображается в верхней части вкладки Все.)

Группировка

Группировка — неоценимое средство для придания смысла большим объемам данных счет упорядочивания их в группах меньшего размера. Затем можно выполнять вычисления в каждой отдельной группе. Рассмотрим список заказов в компании Boutique Fudge. В зави­симости от того, как вы сгруппируете данные, можно посмотреть, лучше ли продается шо­коладное молоко, чем шоколадное пиво, или сильнее ли клиенты из Нью-Йорка жаждут какао, чем клиенты из Алабамы, и т. д.

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

Применение группировки в запросе. В этом случае в ваш отчет не включаются подробно­сти. Он только отображает вычисленные суммы, средние значения, максимумы или

минимумы. Вам не понадобятся изощренные колдовские приемы создания отчета для ре­шения этой задачи — создайте сводный отчет с группировкой (как описано в разд. "Итоговые данные " главы 7) и затем используйте его для формирования отчета.

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

  • Применение подчиненных отчетов. Этот метод создает тот же эффект, что и группировка в отчете. Единственное отличие — формирование отчета из двух отдельных частей.

Примечание

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

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

Для создания групп выполните следующие действия.

  1. Перейдите в Режим макета или Конструктор.

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

Если вы хотите группировать по полю ProductCategoryID (идентификатор категории товара), которое формирует отдельную группу товаров для каждой категории, то начать следует с сортировки результатов по полю ProductCategorylD. В этом случае все товары одной группы перечисляются один за другим. (Можно сортировать и но однозначно оп­ределяемому полю из связанной таблицы ProductCategories, например, CategoryName. Поскольку у каждой категории товара — свое название, это поле отсортирует товары по группам столь же эффективно.)

Примечание

Если вы создали подстановку, у программы Access хватит сообразительности для использова­ния при сортировке более информативного поля, а не связанного с ним поля. Поле ProductCategoryID использует подстановку, которая выводит на экран название соответст­вующей категории, а не связанный с ним идентификатор категории, до которого на самом деле никому нет дела. Когда вы щелкните правой кнопкой мыши поле ProductCategoryID и выбери­те команду сортировки, программа Access применит поле CategoryName для сортировки.

3. Для сортировки данных щелкните правой кнопкой мыши поле, по которому собираетесь сортировать, и выберите команду сортировки (например, Сортировка от А до Я (Sort A to Z) или Сортировка от минимального к максимальному (Sort Smallest to Largest)).

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

4 Щелкните правой кнопкой мыши поле, которое хотите использовать для группировки, и выберите команду Группировка (Group On). Программа Access отсортирует ваши ре­зультаты по этому полю и затем сгруппирует их.

На рис. 11.18 и 11.19 показаны два отчета, в которых товары сгруппированы по катего­риям.

Рис. 11.18. Этот простой табличный отчет отсортирован и сгруппирован по категориям за несколько быстрых щелчков мыши

Подсказка

Когда используется группировка, возможно, нет смысла оставлять заголовки столбцов в разделе макета страницы, т. к. каждый заголовок группы разрывает таблицу. Часто гораздо луч­ше располагать заголовки столбцов под названием группы так, чтобы они выводились в нача­ле каждой группы (а не в верхней части каждой страницы). На рис. 11.18 применен этот подход (на рис. 11.19 он не нужен, поскольку в отчете вообще не используются заголовки.) К сожале­нию, для того чтобы применить эту более привлекательную организацию данных, вам придется удалить поля из автоматически создаваемого макета (см. разд. "Удаление полей из макета' ранее в этой главе).

Группировка включает дополнительные разделы в отчет. Если вы группируете с по­мощью ноля ProductCategoryID, ваш отчет получает новый раздел Заголовок группы 'ProductCategoryID' (ProductCategoryID Header), который программа Access располагает непосредственно над Областью данных (рис. 11.20). Это название группы содержит сведе­ния о группировке — в данном случае, категории товара. В Области данных находятся дан­ные всех записей, включенных в группу.

Примечание

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

Рис. 11.19. Группировка так же хорошо функционирует и в отчетах со сложными нетабличными макетами. Но, возможно, придется потратить немного больше времени на определение начала и конца группы, поэтому подумайте о задании другого цвета фона для разделения категорий (с помощью свойства Цвет фона) и их выделения, как в данном примере. Или же можно использовать элемент управления Линия для создания разделительной черты в начале каждой категории. На рис, 11.20 показан этот отчет в Конструкторе

Тонкая настройка с помощью панели

Группировка, сортировка и итоги

Когда группировка задана, у вас появляются дополнительные возможности:

  • можно вставить дополнительную сортировку в пределах каждой подгруппы;

  • можно выполнить сводные вычисления для каждой группы;

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

Любой из этих вариантов легче всего добавить с помощью панели Группировка, сорти­ровка и итоги (Group, Sort, and Total). Для ее отображения в Конструкторе выберите па ленте Инструменты конструктора отчетов | Конструктор Группировка и итоги Груп­пировка и сортировка (Report Design Tools | Design Grouping & Totals Group & Sort)

или вРежиме макета — Работа с макетами отчетов | Формат → Группировка и итоги → Группировка и сортировка (Report Layout Tools | Formatting Grouping & Totals Group & Sort).

Рис. 11.20. Конструктор предоставляет самый легкий способ добавления содержимого в раздел заголовка каждой группы. В отчет ProductCatalog можно вставить в раздел Заголовок группы 'ProductCategoryID' дополнительные поля из таблицы ProductCategories (например, поле Description)

ПанельГруппировка, сортировка и итоги выводится в нижней части окна программы. На рис. 11.21 показан примерный вид экрана при отображении отчета (см. рис. 11.19) с то­варами, сгруппированными по категориям.

Рис. 11.21. У данного отчета один уровень сортировки (по полю CategoryName в алфавитном порядке) и один уровень группировки (по полю ProductCategorylD). Для отображения дополнительных параметров для каждого уровня выберите его и щелкните мышью кнопку Больше (обведена). На рис. 11.22 показаны параметры группировки, которые можно изменить

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

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

Сортировка...

Позволяет выбрать поле, применяемое для сортировки. На рис. 11.21 поля сортируются по полю CategoryName и затем группируются по полю ProductCategorvID.

Группировка ...

Предоставляет возможность задать поле, применяемое для группировки. Этот параметр позволяет моментально включить группировку.

Сортировка от А до Я/от минимального к максимальному

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

По всему значению

Заставляет программу Access создавать индивидуальную группу для каждого отдельного значения в поле группировки. Если вы группируете по полю ProductCategoryID, этот параметр обеспечивает размещение каждой категории товаров в отдельной группе. Иногда подобный подход приводит к созданию слишком большого количества групп, что затрудняет последующий анализ (и расходует груды бумаги). В подобных ситуациях необходимо формировать более крупные группы, включающие больше записей. Если группируются то­вары по ценам или заказы по датам, возможно, лучше группировать по диапазону значений, как показано на рис. 11.23.

С итогами...

Промежуточные итоги — самое популярное свойство группировки. Они позволяют сравнивать количественно одну группу с другой. Панель Группировка, сортировка и итоги позволяет выполнять вычисления промежуточных итогов любых числовых полей (рис. 11.24).

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

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

С заголовком...

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

Рис. 11.24. В данном примере список товаров группируется по категории, передняя для каждой категории цена выводится в примечании (обведено)

С разделом заголовка/С разделом примечания

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

Удерживать группу на одной странице

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

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

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

Панель Группировка, сортировка и итоги не предлагает установить разрыв страницы в начале каждой группы. Для этого необходимо перейти в Конструктор, выбрать раздел заго­ловка группы и затем выбрать на ленте Страницу свойств в группе Формат, найти параметр Конец страницы. Задать значение До раздела для установки разрыва страницы в начале каж­дого раздела или После раздела — в конце раздела. (Вы не увидите разницы между этими вариантами, пока в отчете используются заголовок и примечание отчета. Если вы применяе­те заголовок отчета и используете значение До раздела, разрыв страницы устанавливается между заголовком отчета и первым разделом.)

Примечание

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

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

Рис. 11.27. В данном отчете информация заказа преобразуется в подготовленный для печати счет с помощью группировки и еще нескольких приемов, которые вам уже знакомы. Исходная информация извлекается из таблицы OrderDetails (дополненная данными из таблиц Orders, Product и Customer). Элементы управления Линия отделяют разные разделы счета, автоматически генерируемые итоги сообщают вам общую стоимость заказа, в выражениях комбинируется несколько полей и дополнительные текстовые фрагменты (например, "Order History for" (сведения о сделанных заказах) и "Order #" (номер заказа)). Данный пример включен в БД Boutique Fudge с загружаемым из Интернета содержимым, иллюстрирующим материал данной главы

Если у вас несколько уровней группировки, некоторую информацию можно скрыть, так чтобы отображались только сводные данные. В Режиме макета просто выберите Работа с макетами отчетов | Формат Группировка и итоги Без подробностей (Report Layout Tools | Formatting Grouping & Totals Hide Details). Если применить этот прием к при­меру, показанному на рис. 11.27, программа Access скроет построчное содержание заказа, и вы увидите лишь общую стоимость каждого заказа.

Подсказка

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]