- •Часть I. Хранение данных в таблицах 34
- •Глава 1. Создание вашей первой базы данных 35
- •Глава 2. Создание более сложных таблиц 66
- •Глава 3. Обработка листа данных: сортировка, поиск,
- •Глава 4. Блокировка неправильных данных 136
- •Глава 5. Связывание таблиц с помощью отношений 168
- •Часть II. Обработка данных с помощью запросов 206
- •Глава 6. Запросы, выбирающие записи 207
- •Глава 7. Основные хитрости, применяемые в запросах 241
- •Глава 8. Запросы, обновляющие записи ..272
- •Глава 9. Анализ данных с помощью перекрестных запросов и
- •Часть III. Отчеты 323
- •Глава 10. Создание отчетов 324
- •Глава 11. Проектирование сложных отчетов 356
- •Часть IV. Разработка пользовательского интерфейса
- •Глава 12. Создание простых форм 392
- •Глава 13. Проектирование сложных форм 426
- •Глава 14. Создание системы переходов 465
- •Часть V. Программирование в access 496
- •Глава 15. Автоматизация задач с помощью макросов 497
- •Глава 16. Автоматизация выполнения задач средствами языка
- •Глава 17. Написание кода с более развитой логикой 571
- •Часть VI. Совместное использование access 615
- •Глава 18. Совместное использование бд несколькими пользователями 616
- •Глава 19. Импорт и экспорт данных 650
- •Глава 20. Подключение Access к sql Server 692
- •Глава 21. Подключение Access к SharePoint 724
- •На профессиональном уровне. Преимущества хорошо спроектированной базы данных
- •Для тех, кто понимает. Когда программы Access недостаточно
- •Уголок ностальгии. Зачем опять изобретать колесо?
- •Уголок ностальгии. Сочетания клавиш в Access 2003
- •Часть I
- •Часто задаваемый вопрос. Использование чужой бд
- •На профессиональном уровне. Шаблоны, подходящие для разных целей
- •На профессиональном уровне. Работа Access в интерактивном режиме
- •Для тех, кто понимает. Использование Access бд, созданных в более ранних версиях программы
- •На профессиональном уровне. Проектирование бд для начинающих
- •На профессиональном уровне. Вставка больших значений в узкие столбцы
- •Для тех. Кто понимает. Если сомневаетесь, не удаляйте
- •Малоизвестная или недооцененная возможность. Копирование записи целиком за один шаг
- •Малоизвестная или недооцененная возможность. Сжатие бд
- •Часто задаваемый вопрос. У какого файла расширение laccdb?
- •Практические занятия для опытных пользователей. Изменение папки, которую Access использует для хранения бд
- •Малоизвестная или недооцененная возможность. Сворачивание ленты
- •Экономящая время подсказка. Создание ярлыка для таблицы
- •Глава 2
- •Для тех, кто понимает. Изменение типа данных может привести к потере информации
- •На профессиональном уровне. Нормативы максимальной длины
- •На профессиональном уровне. Как Access предотвращает дублирование записей
- •На профессиональном уровне. Почему так важна уникальность
- •Глава 3
- •Малоизвестная или недооцененная возможность. Настройка всех листов данных
- •На профессиональном уровне. Числа и специальные символы в текстовых полях
- •Практические занятия для опытных пользователей. Фильтры в противоположность запросам
- •Малоизвестная или недооцененная возможность. Поиск и замена
- •Глава 4
- •Для тех, кто понимает. Не требуйте слишком многого
- •На профессиональном уровне. Как работают индексы
- •Часто задаваемый вопрос. Индексы и производительность
- •Практические занятия для опытных пользователей. Вставка вашей маски в список масок программы
- •На профессиональном уровне. Создание списка подстановки, использующего другую таблицу
- •Глава 5
- •Часто задаваемый вопрос. Отключение обеспечения целостности данных
- •Для тех, кто понимает. Пользуйтесь каскадным удалением с осторожностью
- •Практические занятия для опытных пользователей. Изменение параметров подтаблицы
- •Часто задаваемый вопрос. Обновление списка
- •Для тех, кто понимает. Применяйте связи "один-к-одному" с осторожностью
- •Часто задаваемый вопрос. Работа со связями "многие-ко-многим"
- •Часто задаваемый вопрос. Печать ваших отношений
- •Часть II
- •Для тех, кто понимает. Не бойтесь подстановок
- •На профессиональном уровне. Синтаксис фильтра
- •Практические занятия для опытных пользователей. Как индексы ускоряют поиск
- •Малоизвестная или недооцененная возможность. Запросы на базе запросов
- •Для тех, кто понимает. Подумайте дважды, прежде чем изменять структуру таблиц
- •На профессиональном уровне. Сравнение: отношения и объединения
- •На профессиональном уровне. Изменение данных при использовании запроса с объединением
- •Глава 7
- •На профессиональном уровне. Синхронизация запросов
- •Малоизвестная или недооцененная возможность. Переименование поля в запросе
- •Часто задаваемый вопрос Банковское округление
- •Практические занятия для опытных пользователей. Улучшенные числовые форматы
- •Малоизвестная или недооцененная возможность. Использование случайных чисел для сортировки в случайном порядке
- •Практические занятия для опытных пользователей. Как извлечь первое слово из текстовой строки
- •Для тех, кто понимает. Вычисления для дат и времени
- •Глава 8
- •Аварийная ситуация. Когда Access блокирует ваше обновление
- •Малоизвестная или недооцененная возможность. Скрытие запроса
- •Глава 9
- •Часто задаваемый вопрос. Итоговый проигрыш; итоговый запрос против перекрестного
- •Для тех, кто понимает. Создание запроса с объединением для лучшей группировки
- •На профессиональном уровне. Правильный выбор групп
- •Малоизвестная или недооцененная возможность. Помещение сводных таблиц в их собственные формы
- •Часть III
- •Глава 10. Создание отчетов
- •Глава 11. Проектирование сложных отчетов
- •Глава 10
- •На профессиональном уровне. Выполнение тяжелой работы с помощью запроса
- •Часто задаваемый вопрос. Добавление изображений в отчеты.
- •На профессиональном уровне. Учитесь любить pdf-файлы
- •Часто задаваемый вопрос. Разные способы экспорта данных
- •Малоизвестная или недооцененная возможность. Формат по образцу.
- •Практические занятия для опытных пользователей. Разные линии сетки
- •Глава 11
- •Часто задаваемый вопрос. Ошибки выражений
- •Часть IV
- •На профессиональном уровне. Поля типа Счетчик в формах
- •На профессиональном уровне. Разные люди — разные формы
- •Малоизвестная или, недооцененная возможность. Вывод на экран изображений из бд
- •На профессиональном уровне. Семейство форм Access
- •Глава 13
- •На профессиональном уровне. Присоединенные элементы управления
- •Малоизвестная или недооцененная возможность. Повторное применение ваших любимых настроек стиля границ
- •Часто задаваемые вопросы. Осовременивание элементов управления Windows
- •Практические занятия для опытных пользователей. Как освободиться от привязки к сетке
- •На профессиональном уровне. Насколько велик ваш экран?
- •Глава 14
- •Малоизвестная или недооцененная возможность. Варианты сортировки и просмотра в области переходов
- •На профессиональном уровне. Кнопочные формы с несколькими страницами
- •За кадром. Меню кнопочных форм сохраняются в бд
- •Часть V
- •На профессиональном уровне. Макросы по сравнению с программным кодом
- •Практические занятия для опытных пользователей. Обработка ошибок макроса
- •На профессиональном уровне. Макрокоманды, которым Access не доверяет
- •На профессиональном уровне. ОтправитьОбъект работает с вашей программой элекронной почты
- •Часто задаваемый вопрос. Внедренный макрос
- •Глава 16
- •Малоизвестная или недооцененная возможность. Справка по Visual Basic
- •Для тех кто понимает. Как код связывается с событиями
- •Малоизвестная или недооцененная возможность Разбиение длинных строк кода
- •На профессиональном уровне. Взаимодействие с другими формами
- •Практические занятия для опытных пользователей. Получение нужного цвета
- •Часто задаваемый вопрос. Ленточные формы и неприсоединенные элементы управления
- •Практические занятия для опытных пользователей. Связывание записей с рисунками
- •Глава 17
- •Практические занятия для опятных пользователей. Применение более сложных переменных
- •Практические занятия для опытных пользователей. Применение пользовательских функций в запросах
- •На профессиональном уровне. Алгоритм Луна (Luhn Algorithm)
- •Часто задаваемый вопрос. Запуск других Windows-программ
- •На профессиональном уровне. Станьте знатоком статистических функции по подмножеству
- •Уголок ностальгии. Dао против аdо
- •Часть VI
- •Для тех, кто понимает. Поиск места в сети для вашей бд
- •На профессиональном уровне Указание местонахождения в сети
- •Часто задаваемый вопрос. Как поведут себя старые версии Aсcess?
- •Аварийная ситуация. Мистическая ошибка “Файл уже используется”
- •Часто задаваемый вопрос. Когда не следует пользоваться форматом accde
- •Уголок ностальгии. Отмирание страниц доступа к данным
- •Практические занятия для опытных пользователей. Разделение таблиц для более безопасных корректировок
- •Уголок ностальгии. Защита с помощью рабочих групп упразднена
- •Глава 19
- •На профессиональном уровне. Sql Server и SharePoint: два частных случая
- •Сберегающая время подсказка. Копирование из одной бд в другую
- •На профессиональном уровне. Опасность дубликатов
- •Малоизвестная или недооцененная возможность. Экспорт отчетов
- •На профессиональном уровне. Более внимательный взгляд на теги
- •Глава 20
- •На профессиональном уровне. Важнейшие причины перехода на sql Server
- •Часто задаваемые вопрос. Можно ли доверять корпорации Microsoft?
- •На профессиональном уровне. Проекты Access по сравнению со связанными таблицами
- •0 Запросах
- •Для тех, кто понимает. Синтаксические различия
- •Глава 21
- •Часто задаваемый вопрос. Путаница, связанная с SharePoint
- •На профессиональном уровне. Установка SharePoint
- •На профессиональном уровне. Пять интересных инструментов программы SharePoint, которые стоит опробовать
- •Малоизвестная или недооцененная возможность.
- •Малоизвестная или недооцененная возможность. Представление таблицы данных Access
- •Малоизвестная или недооцененная возможность. Параметры списков SharePoint
На профессиональном уровне. Правильный выбор групп
Пытаетесь решить, какое поле использовать для группировки в строках, а какое для группировки в столбцах? Если эти два поля независимы (а они должны быть таковыми), есть смысл применить поле, создающее меньше всего групп для группировки в столбцах. Таблицы с множеством строк и несколькими столбцами легче читать (и печатать), чем таблицы с множеством столбцов и несколькими строками.
Например, если группировать по названию товара и стране, можно биться об заклад, что вы в результате получите больше групп товаров, чем стран. (У вас могут быть клиенты в восьми разных странах, а каталог товаров с 480 видами товаров.) Итак, примените группировку по товарам для строк, а по странам — для столбцов.
8. Если нужно показать промежуточный итог для каждой строки, установите флажок Вычислить итоговое значение для каждой строки? Да (Yes, include row sums).
Промежуточный итог по строке отображается в самом первом столбце. Например, если установлен этот флажок в запросе со штатами и категориями товаров, общие объемы продаж для каждого штата отображаются в первом столбце, за которым следует разбиение продаж по категориям (рис. 9.8).
Рис. 9.8. Заключительный перекрестный запрос показывает связь между штатами и типами товаров, покупаемыми его жителями (слева дается итог для каждого штата или провинции по всем категориям товаров)
9. Щелкните мышью кнопку Далее.
На заключительном шаге придется задать имя запроса. Затем можно выбрать запуск запроса и просмотр полученных результатов или продолжить его редактирование в Конструкторе. Если вам необходима фильтрация, перейдите в Конструктор. В противном случае самое время увидеть плод вашего труда.
Щелкните мышью кнопку Готово.
Создание перекрестного запроса с нуля
Как и запрос любого другого типа, перекрестный запрос можно тонко настроить в Конструкторе. Вы также можете создать новый перекрестный запрос с нуля, выполнив следующие действия.
1. Выберите на ленте Создание → Другие → Конструктор запросов (Create → Other → Query Design). Программа Access создаст новый пустой запрос и откроет его в окне Конструктора.
2. С помощью окна Добавление таблицы (Show Table) добавьте таблицу или запрос, которые вы хотите использовать, и щелкните мышью кнопку Закрыть.
Если вы используете БД AdventureWorks, легче всего выбрать вкладку Запросы (Queries) в окне Добавление таблицы и добавить запрос Orderedltems.
Подсказка
Вы также можете закрыть диалоговое окно Добавление таблицы и просто перетащить таблицы, которые вам нужны, из области переходов на поверхность рабочего поля Конструктора запросов.
3. Выберите на ленте Работа с запросами | Конструктор → Тип запроса → Тип запроса: перекрестный (Query Tools | Design → Query Type → Crosstab),
Программа Access преобразует ваш запрос в перекрестный. Перекрестные запросы выглядят как итоговые с одной лишь разницей. В списке полей в нижней части окна вы найдете дополнительную строку — Перекрестная таблица (Crosstab) (рис. 9.9).
Рис. 9.9. Как и у итоговых запросов, у перекрестных есть свойство Групповая операция, в котором задается способ применения поля: для группировки, фильтрации или вычисления итога. В отличие от итоговых запросов перекрестные включают также свойство Перекрестная таблица, в котором задается размещение полей в строке, в столбце, в виде значений или полное скрытие (в этом случае вы, вероятно, применяете поле для сортировки или фильтрации)
4. Выберите поля, которые хотите использовать в своем перекрестном запросе. Каждое поле в перекрестном запросе играет одну из следующих ролей.
□ Поле используется для группировки по строкам. В данном случае задайте в свойстве Групповая операция значение Группировка и значение Заголовки строк (Row Heading) в свойстве Перекрестная таблица.
Несмотря на то, что мастер создания перекрестного запроса ограничивает вас тремя полями для группировки в строках, вы на самом деле можете добавить практически неограниченное число полей для группировки в столбцах. Убедитесь в том, что столбцы размещены надлежащим образом. Например, если у вас два поля для группировки строк, поле слева используется для группировки первым, а затем группы разбиваются с помощью следующего поля.
□ Поле применяется для группировки по столбцам. В этом случае задайте в свойстве Групповая операция значение Группировка и значение Заголовки столбцов (Column Heading) в свойстве Перекрестная таблица.
Для этой цели вы должны использовать только одно поле. Помните о том, что группировка по столбцам выполняется после применения группировки строк.
Поле отображается как значение в таблице. В этом случае задайте в свойстве Групповая операция итоговую функцию, которую хотите использовать (такую как Sum, Count, Avg и т. д.), и вариант Значение (Value) в свойстве Перекрестная таблица.
Для этой цели вы должны использовать только одно поле. Но вы можете применить выражение, выполняющее вычисления, базирующиеся на значениях нескольких полей. Например, перекрестные запросы, показанные на рис. 9.1 и 9.2, используют выражение Revenue: [UnitPrice] * [OrderQty] для вычисления общей выручки для каждой строки заказа.
Подсказка
Возможно, вы помните, что мастер создания перекрестного запроса предоставляет возможность показать итог для каждой строки в отдельном столбце. На рис. 9.10 показано, как создать подобный эффект самостоятельно.
Рис. 9.10. Обратите внимание на то, что поле OrderQty появляется дважды. В первый раз оно определено как значение, отображаемое в сетке таблицы. Во второй раз оно определяется как заголовок строки, которая создается в дополнительном столбце с итогом для каждой строки. С помощью псевдонима дополнительный столбец переименован в Total Of OrderQty (общее количество в заказе) во избежание путаницы
□ Поле применяется для фильтрации или отбора. В этом случае задайте в свойстве Групповая операция значение Условие (Where) и вариант (не отображается) (not shown) в свойстве Перекрестная таблица. Затем вставьте условие в поле Условие отбора. (См. выражения для условий отбора в разд. "Построение условий отбора" главы 6.)
Примечание
К сожалению, в вычисляемом поле нельзя применить фильтрацию или сортировку. Это означает, что если создается запрос, подсчитывающий количество продаж, нельзя отобрать только строки с большими количествами продаж. Но этот трюк можно проделать в сводной таблице, как описано в следующем разделе.
На рис. 9.10 показано определение запроса, подобного созданному с помощью мастера в предыдущем разделе (см. рис. 9.8).
Сводные таблицы
Если итоговые и перекрестные запросы не потрясли вас в достаточной степени, у программы Access есть еще одно мощное средство для подытоживания ваших данных. Сводная таблица — это специальная таблица, выполняющая те же трюки, что и перекрестный запрос — группировку по строкам и столбцам — но обладающая большими функциональными возможностями. Далее перечислены некоторые из них.
Сводные таблицы можно перестроить в любой момент. Быстрым перемещением с помощью мыши вы можете превратить итоги продаж по странам в сетку с продажами в зависимости от возраста клиента. Сводные таблицы — незаменимое средство исследования (добычи) данных, в ходе которого вы пытаетесь выудить скрытые тенденции и связи из массы необработанных сведений.
Сводные таблицы поддерживают неограниченное число уровней группировки. Вы не ограничены одним уровнем группировки по столбцам, как в перекрестном запросе. Вместо этого можно разбить строки и столбцы на группы более мелкие.
Сводные таблицы сворачиваются. Можно скрыть группы строк и столбцов, которые не интересуют вас в данный момент, и углубиться в группу для просмотра каждой записи, содержащейся в ней. Просматривая данные подобным способом, легче понять, что с ними происходит.
Сводные таблицы поддерживают неограниченное количество вычислений. Перекрестные запросы способны выполнять одно вычисление, повторяющееся для каждой группы. Сводная таблица может выполнить столько вычислений, сколько вам нужно, и поместить их все в одну и ту же ячейку.
Сводные таблицы поддерживают сортировку вычисляемых значений. Например, если в вашу сводную таблицу добавлены итоги по объемам продаж, лучшие исполнители поднимаются вверх.
Примечание
Многие приверженцы программы Access живут долго и счастливо, даже не сталкиваясь со сводными таблицами. И все потому, что это узкоспециализированное средство, и многие специалисты предпочитают анализировать информацию в других программах (например, в Microsoft Excel). Но свойства сводных таблиц заслуживают внимания, поскольку могут оказаться полезными в следующий раз, когда вам потребуется сделать общие выводы о производительности вашей компании, выпекающей изделия, посвященные знаменитостям.
Построение сводной таблицы
Программа Access включает в состав сводные таблицы несколько странным образом. В отличие от итоговых и перекрестных запросов сводные таблицы — это не специальный тип запроса. Access обеспечивает сводную таблицу режимом отображения, который можно применять с любой таблицей или запросом.
Примечание
Причина выбора этого кажущегося странным дизайна состоит в необходимости обеспечить чрезвычайную гибкость таблиц. С помощью нескольких щелчков мыши вы можете реорганизовать категории или углубиться в анализ, перейдя от отображения сводных данных к отдельным записям. Для того чтобы это стало возможным, сводным таблицам нужен легкодоступный полный набор записей.
Для применения режима Сводная таблица (Pivot Table) откройте таблицу или запрос, которые хотите использовать, и затем выберите на ленте Главная → Режимы → Режим → Сводная таблица (Home → Views → View → PivotTable View).
Сначала сводная таблица отображается пустой (рис. 9.11).
Рис. 9.11. Этот пример отображает запрос Orderedltems в режиме Сводная таблица. Пока еще не на что смотреть, потому что вы не построили сводную таблицу. Справа открыто окно Список полей сводной таблицы, включающее все поля вашей таблицы или запроса
Примечание
Сводные таблицы одновременно работают только с одной таблицей или запросом. Поэтому стоит создать запрос, объединяющий все нужные вам таблицы, так же как вы делали при построении перекрестного запроса. Можно также воспользоваться запросом для создания дополнительных вычисляемых полей (например, поля, перемножающего стоимость товара и количество единиц товара).
Для создания сводной таблицы нужно сообщить программе Access о том, какие поля использовать в каждой части таблицы. Все сводные таблицы сформируются из пяти компонентов:
поля строк применяются для группировки записей в строках;
поля столбцов используются для группировки записей в столбцах;
поля итогов применяются для вычисления итоговых значений в каждой группе;
в полях деталей или подробностей выводятся отдельные значения для каждой записи в группе. При желании вы можете выводить на экран итоговую информацию (в этом случае поле деталей действует как поле итогов);
поля фильтра применяются для сокращения списка записей, используемых для создания сводной таблицы, на основании заданного критерия.
Примечание
Структура сводной таблицы очень похожа на структуру перекрестного запроса — ключевое отличие состоит в том, что многие из ограничений, сужающих перекрестные запросы, не применяются в сводных таблицах.
Самый легкий способ освоить сводные таблицы и множество их функциональных возможностей — попытаться построить хотя бы одну своими руками. Приведенные далее действия подробно описывают процесс создания простой сводной таблицы, которая отображает итоги объемов продаж, сгруппированных по странам и категориям товаров. Если вы хотите действовать в соответствии с ними, используйте запрос OrderedItems в БД AdventureWorks, которую можно загрузить с Web-страницы "Missing CD" на сайте www.missingmanuals.com. Затем вы сможете усовершенствовать сводную таблицу, воспользовавшись ее богатыми возможностями.
Примечание
Предпочитаете визуальный подход к изучению сводных таблиц? На странице "Missing CD" можно найти и изобразительный ряд, интерактивное анимационное руководство.
1. Из окна Список полей сводной таблицы перетащите с помощью мыши поле РгоductCategory в область Перетащите сюда поля строк (Drop Row Fields Here). Когда вы переместите поле, программа Access выведет все категории товаров сверху донизу в алфавитном порядке (рис. 9.12). Если нужен обратный порядок сортировки, просто щелкните правой кнопкой мыши одно из значений и выберите последовательно Сортировка → Сортировка по убыванию (Sort →Sort Descending).
Подсказка
Если вы случайно закрыли окно со списком полей сводной таблицы, его можно вернуть выбрав на ленте Работа со сводными таблицами I Конструктор -> Показать или скрыть -» Список полей (PivotTable Tools I Design -> Show/Hide -> Field List).
Рис. 9.12.В данном примере в область строк добавлен список товаров, а элементы второй группировки (список стран) переносится в область столбцов. Обратите внимание, как только поле выбрано, его имя отображается жирным шрифтом в окне Список полей сводной таблицы
2. Из списка полей сводной таблицы перетащите поле Country в область Перетащите сюда поля столбцов (Drop Column Fields Here).
Как только вы перетащите поле, программа Access заполнит его слева направо в алфавитном порядке названиями всех стран из списка. Другими словами, каждая страна приведена в своем столбце.
Подсказка
Если перемещение с помощью мыши утомительно, есть другой способ создания макета сводной таблицы. В окне Список полей сводной таблицы просто выберите поле, которое хотите добавить в сводную таблицу, и затем в раскрывающемся списке в нижней части окна выберите область, в которую нужно поместить поле. В завершение для вставки поля щелкните мышью кнопку Добавить в (Add to) (расположенную под списком).
3. Теперь нужно выбрать данные для анализа. Переместите поле OrderQty в область Перетащите сюда поля итогов или деталей (Drop Totals or Details Fields Here).
Этот шаг заполняет сводную таблицу данными (программе Access может понадобиться несколько мгновений для группировки всех данных, если у вас таблица большого объема).
Поле OrderQty добавлено как подробность, т. е. вы увидите все записи в таблице (или запросе) в соответствующих группах (рис. 9.13).
4. Пришло время добавить итоговые вычисления. Щелкните правой кнопкой мыши в сводной таблице поле OrderQty (подойдет любое поле OrderQty) и выберите вариант из подменю Автовычисления (AutoCalc).
Можно выполнить все групповые функции, с которыми вы знакомы, включая суммирование, подсчет количества и поиск среднего арифметического. Например, выберите
Автовычисления → Сумма, если хотите найти общее количество товаров, проданных в данной категории.
Рис. 9.13. В этой сводной таблице показаны все значения поля OrderQty из запроса Orderedltems, но их немного трудно анализировать. Для того чтобы составить общее представление, необходимо скрыть некоторые из этих деталей и взглянуть на итоговую информацию
Все сводные данные, которые создаются с помощью подменю Автовычисления, называют итогами. Они добавляются в группу Итоги (Totals) в верхней части окна Список полей сводной таблицы. (Щелкните кнопкой мыши квадратик со знаком +/-, расположенный рядом со словом Итоги для вывода на экран содержимого группы.) Для удаления итога щелкните его в списке правой кнопкой мыши и выберите команду Удалить (Delete).
5. Для скрытия подробной информации и отображения только сводных данных снова щелкните правой кнопкой мыши поле OrderQty и выберите команду Без подробностей (Hide Details).
После того как подробности будут скрыты, вы получите приемлемый результат, напоминающий перекрестный запрос (рис. 9.14).
Подсказка
Если вы знаете наперед, что никогда не захотите отображать подробности, можно добавить итоги сразу же. Для этого выберите поле (в данном случае OrderQty) в окне Список полей сводной таблицы и затем в раскрывающемся списке в нижней части этого окна выберите вариант Данные (Data Area). Далее щелкните мышью кнопку Добавить в. Этот подход удобен при работе с громадными таблицами, содержащими тысячи записей. В такой ситуации быстрее добавить итог, а не подробные сведения из каждой записи.
Рис. 9.14. Если убрать с дороги подробности, можно сразу увидеть признанные и не пользующиеся спросом группы. Итог для каждой строки выводится в конце строки (здесь не показан), а итог для каждого столбца отображается в строке Общие итоги в нижней части столбца
Манипуляции сводной таблицей
Вот где начинается веселье. Одно из ключевых достоинств сводных таблиц — их гибкость. Можно сколько угодно раз перемещать поля, вводить неограниченное число уровней группировки и выполнять множество вычислений сразу.
Далее приведено несколько способов быстрого изменения сводной таблицы.
Для удаления поля щелкните его правой кнопкой мыши и выберите команду Удалить (Remove). Или перетащите его за пределы окна программы Access (так, чтобы указатель мыши превратился в стрелку со знаком X) и отпустите.
Для перемещения поля из одной позиции в другую просто перетащите имя поля в нужное место. Например, можно изменить приведенный ранее пример, перетащив поле столбцов (Country) в область строк, а поле строк (ProductName) в область столбцов.
Для упорядочивания группы щелкните правой кнопкой мыши внутри столбца этой группы и выберите последовательность команд Сортировка → Сортировка по возрастанию (Sort → Sort Ascending) или Сортировка → Сортировка по убыванию (Sort → Sort Descending). Вы можете использовать этот прием для поиска стран и категорий с максимальным объемом продаж (или приносящих максимальный доход).
Для добавления элементов данных перетащите дополнительные поля из окна Список полей сводной таблицы в таблицу. Например, можно вычислить общее количество заказанных товаров и среднюю цену товара. Бы можете даже вставить одно и то же поле несколько раз для выполнения разных итоговых вычислений. Просто перетащите то же поле в таблицу еще раз, щелкните его правой кнопкой мыши и выберите вариант из подменю команды Автовычисления.
Для включения дополнительных уровней группировки перетащите дополнительные поля из окна Список полей сводной таблицы в область строк или столбцов. Хитрость заключается
вразмещении поля в нужном месте иерархии группировок. Например, если вы хотите разбить группу страны на группы штатов, нужно поместить полеStateProvince справа от поля Country, как показано на рис. 9.15. Если же вы хотите разбить группы категорий товаров на группы отдельных товаров, нужно поместить поле ProductName справа от поля ProductCategory.
Рис. 9.15. Вверху: поле StateProvince располагается справа от поля Country. Теперь столбцы будут группироваться по странам (поле Country) и внутри стран по штатам (поле StateProvince) — как раз то, что нужно. Программа Access отображает толстую голубую линию, обозначая место расположения столбца после того, как вы отпустите левую кнопку мыши. Внизу: поле StateProvince располагается слева от поля Country. Теперь столбцы группируются сначала по штатам, а затем по странам. Программа разрешает сделать это, хотя в подобном действии мало смысла. Каждый штат принадлежит только одной стране, и в группе будет только одна подгруппа, которая бесполезна
Каждый раз, когда вы изменяете структуру сводной таблицы, программа просматривает вашу таблицу и полностью перестраивает сводную. Если вы изменяете данные в открытой сводной таблице, можно выбрать на ленте Работа со сводными таблицами | Конструктор → Данные → Обновить (PivotTabie Tools | Design → Data → Refresh Pivot), чтобы заставить программу Access сразу перестроить сводную таблицу.
Создание вычисляемого поля
Для получения самой интересной информации из сводной таблицы зачастую необходимо соединить несколько полей в выражении. Классический пример (который вы уже виделираньше в этой главе при обсуждении перекрестного запроса) — умножение количества заказанных изделий на цену изделия для определения итоговой выручки. Можно также умножить цену товара на количество единиц товара на складе для определения стоимости запасов, имеющихся у вас под рукой.
Этот метод действует и в сводной таблице, но для его реализации потребуется немного больше работы.
1. В режиме Сводная таблица выберите на ленте Работа со сводными таблицами | Конструктор → Сервис → Формулы → Создание вычисляемого поля сведений (PivotTable Tools | Design → Tools → Formulas → Create Calculated Detail Field).
На экране появится окно Свойства (Properties) с несколькими вкладками, в данный момент отображена вкладка Вычисление (Calculation) (рис. 9.16).
Рис. 9.16. Это вычисляемое поле перемножает значения двух полей
В поле Имя (Name) введите имя вычисляемого поля. Например, можно ввести имя TotalRevenue.
В большое поле, расположенное под полем Имя, введите выражение, выполняющее вычисление.
Можно ввести, к примеру, [UnitPrice] * [OrderQty].
Вы можете применять любую комбинацию функций Access и полей исходной таблицы. (Сведения о создании выражений для вычисляемых полей можно найти в разд. "Вычисляемые поля "главы 7.) Если вы забыли имя поля, можно воспользоваться раскрывающимся списком, расположенным под текстовым полем. Просто выберите поле и щелкните мышью кнопку Добавить ссылку на (Insert Reference To).
4. Используя другие вкладки, измените, как считаете нужным, параметры форматирования вашего поля.
Другие вкладки позволяют управлять тем, как ваше вычисляемое поле решает иные задачи, связанные со сводной таблицей (например, отбор записей) и параметрами форматирования поля. Самые полезные параметры находятся на вкладке Формат (Format), позволяющей задать шрифт, цвет и (что особенно важно) формат вывода Денежный для поля TotalRevenue, таким образом, оно отображается со знаком валюты в соответствии с настройками вашего компьютера, запятыми и двумя знаками в дробной части.
5. Щелкните кнопкой мыши вкладку Вычисление (если она не выбрана в настоящий момент) и щелкните мышью кнопку Изменить (Change) для вставки вычисляемого поля в сводную таблицу.
Если вы воспользовались кнопкой Без подробностей (Hide Details) для сворачивания сводной таблицы и отображения только итоговых данных, то ничего не увидите в ней. Только что добавленное вами вычисляемое поле — это поле сведений или подробностей. Для того чтобы увидеть полный список значений всех записей, выберите на ленте Работа со сводными таблицами | Конструктор → Показать или скрыть → С подробностями (PivotTable Tools | Design → Show/Hide → Show Details), прежде чем продолжить. Ваше вычисляемое поле также появится в окне Список полей сводной таблицы. Если позже захотите от него избавиться, щелкните поле в этом списке правой кнопкой мыши и выберите команду Удалить. В следующем пункте добавляется полезный итог к вашему полю сведений.
6. Щелкните правой кнопкой мыши вычисляемое поле, выберите команду Автовычисления и задайте вариант групповой операции (например, Сумма), затем можно щелкнуть поле правой кнопкой мыши и выбрать команду Без подробностей, чтобы вернуться к более компактному сводному представлению данных.
Ваше итоговое поле появится в списке полей сводной таблицы в группе Итоги, расположенной в верхней части списка. Для удаления этого поля щелкните его правой кнопкой мыши и выберите команду Удалить. Для удаления поля из сводной таблицы, но сохранения его под рукой для применения в дальнейшем, щелкните мышью поле в таблице и выберите команду Удалить. Если вам не нравится длинное имя итогового поля (которое обычно выглядит как "Sum of TotalRevenue" (Сумма TotalRevenue)), щелкните поле правой кнопкой мыши и выберите команду Свойства, чтобы открыть одноименное окно. Укоротить имя можно на вкладке Заголовки (Caption) в текстовом поле Заголовок (Name).
На рис. 9.17 показан окончательный вариант примера.