Поиск книг в интернет магазине Болеро

Поиск DVD в интернет магазине DVD DOM
Внимание! Money-Hunting.Ru - Интересная Online Игра с Денежными Призами.

ACCESS

  • Занятие 1. Базы данных
    • Создание базы данных
      • Упражнение 1. Мастер таблиц
      • Упражнение 2. Таблицы
    • Конструктор таблиц
      • Упражнение 3. Структура таблицы
      • Упражнение 4. Список подстановки
      • Упражнение 5. Связь таблиц
      • Упражнение 6. Параметры поля
      • Упражнение7. Индекс
    • Контрольное упражнение
    • Подведение итогов
  • Занятие 2. Подбор требуемых данных
    • Запросы
      • Упражнение 1. Мастер запросов
      • Упражнение 2. Конструктор запросов
      • Упражнение 3. Условие отбора
      • Упражнение 4. Итоговый запрос
      • Упражнение 5. Запрос действия
    • Фильтры
      • Упражнение 6. Установка фильтра
      • Упражнение 7. Преобразование в запрос
    • Контрольное упражнение
    • Подведение итогов
  • Занятие 3. Формы и отчеты
    • Форма
      • Упражнение 1 Мастер форм
      • Упражнение 2 Конструктор форм
      • Упражнение 3 Элементы управления
      • Упражнение 4 Заголовок и примечание
    • Отчет
      • Упражнение 5 Мастер отчетов
      • Упражнение 6 Конструктор отчетов
      • Упражнение 7 Группировка и сортировка
    • Вывод результатов
      • Упражнение 8 Предварительный просмотр
      • Упражнение 9 Печать таблиц и запросив
      • Упражнение 10 Файловые операции
    • Контрольное упражнение
    • Подведение итогов


Занятие №1

Access

Microsoft Access XP — профессиональная программа управления базами данных. С ее помощью можно накапливать и систематизировать разнообразную информацию, искать и сортировать объекты согласно выбранным критериям, конструировать удобные формы для ввода данных и генерировать на основании имеющихся записей прекрасно оформленные отчеты. Access обеспечивает одновременный доступ к данным десяткам пользователей.

Базы данных

ТЕМА ЗАНЯТИЯ

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

  • мастер таблиц;

  • конструктор таблиц;

  • типы данных;

  • список подстановки;

  • связь таблиц;

  • значение по умолчанию;

  • ограничение на значение поля;

  • индекс.

Базы данных — это совокупность структур, предназначенных для хранения больших объемов информации и программных модулей, осуществляющих управление данными, их выборку, сортировку и другие подобные действия. Информация базы данных хранится в одной или нескольких таблицах. Любая таблица с данными состоит из набора однотипных записей, расположенных друг за другом. Они представляют собой строки таблицы, которые можно добавлять, удалять или изменять. Каждая запись является набором именованных полей, или ячеек, которые могут хранить самую разнообразную информацию, начиная от даты рождения и заканчивая подробным описанием кулинарного рецепта. Однотипные поля разных записей образуют столбец таблицы.

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

Другие модули базы данных предназначены для обработки информации, хранящейся в таблицах. С помощью запросов производится выборка данных, отвечающих определенным условиям. Формы предназначены для форматированного ввода и восприятия информации. Отчеты обеспечивают вывод (как правило, на принтер) красочно оформленного списка записей с заголовками, пунктами и подпунктами.


Создание базы данных

Создав одну таблицу (например, так, как вы это делали па занятии 2), вы уже получаете полноценную базу данных. Однако в реальной жизни структуры баз данных, а соответственно и способы их создания, намного сложнее. На этом занятии будут рассмотрены лишь некоторые из них.


Упражнение 1. Мастер таблиц

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

  1. Запустите Microsoft Access, выполнив соответствующую команду меню Пуск > Программы (Start > Programs).

  2. В появившемся в области задач приложения окне Создание файл? (New File) в разделе Создание (New) щелкните на пункте Новая база данных (Blank Access Database) (рис. 16.1).

Откроется окно диалога Файл новой базы данных (File New Database).

Рис. 16.1. Окно Microsoft Access

  3. Выберите для размещения новой базы данных папку Мои документы (My Documents). В поле Имя файла (File Name) введите имя Контакты. Затем щелкните па кнопке Создать (Create).

Примечание

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

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

  4. Щелкните на кнопке Таблицы (Tables).

  5. Чтобы запустить мастер создания таблиц, дважды щелкните на значке Создание таблицы с помощью мастера (Create Table By Using Wizard).

Рис. 16.2. Окно базы данных

В первом окне мастера, показанном на рис. 16.3, нужно указать подходящую структуру и выбрать в ней необходимый набор полей.

  6. Выберите положение переключателя Деловые (Business).

  7. В списке Образцы таблиц (Sample Tables) выберите пункт Контакты (Contacts).

  8. Щелкните на пункте Имя (FirstName) списка Образцы полей (Sample Fields).

  9. Щелкните на кнопке со стрелкой вправо, чтобы добавить выбранное поле в структуру создаваемой таблицы.

  10. Повторяя шаги 8 и 9, добавьте в список Поля новой таблицы (Fields In My New Table) поля Фамилия (LastName), Адрес (Address), НазваниеКомпании (Company Name) и РабочийТелефон (WorkPhone).

  11. Щелкните на кнопке Далее (Next).

  12. В поле второго окна мастера введите слово Контакты, которое будет играть роль имени таблицы. Затем щелкните на кнопке Далее.

Рис. 16.3. Мастер создания таблиц

  13. В третьем окне мастера щелкните на кнопке Готово (Finish). Мастер сгенерирует таблицу и откроет ее в режиме ввода данных.

Обратите внимание: поскольку во втором окне осталось выбранным положение переключателя Microsoft Access автоматически определяет ключ (Yes, Set A Primary Key For Me), Access добавляет в таблицу дополнительное ключевое поле Код_ Контакты (КонтактыЮ), которое играет роль уникального идентификатора записей.


Упражнение 2. Таблицы

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

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

  2. Введите фамилию в поле Фамилия.

  3. Заполните все остальные поля первой записи.

  4. Щелкните на поле Имя последней строки и введите имя еще одного человека, его фамилию, адрес, название компании и телефон. Добавьте подобным образом несколько записей, чтобы таблица стала такой, как показано на рис. 16.4. Если вы ошиблись при вводе, просто щелкните на ячейке с неверными данными и отредактируйте их. Стандартные заголовки столбцов часто оказываются неудобными, поэтому Access позволяет заменять их.

Рис. 16.4. Таблица данных

  5. Щелкните на заголовке Фамилия правой кнопкой мыши и выберите команду Переименовать (Rename).

  6. Введите слово Название, которое заменит подсвеченный заголовок Фамилия.

  7. Повторив шаги 5 и 6, верните столбцу название Фамилия.

  8. Щелчком на кнопке Первая запись (First Record) переместите указатель теку щей записи в начало таблицы.

  9. Два раза щелкните на кнопке Следующая запись (Next Record), чтобы перейти к четвертой записи.

  10. Щелкните на кнопке Удалить запись (Delete Record) панели инструментов.

  11. В появившемся окне запроса, информирующем о невозможности отмены операции удаления записи, щелчком на кнопке Да (Yes) подтвердите необходимость удаления. Обратите внимание, что ключевое поле Код_Контакты автоматически заполняется некоторыми числами. Эти числа не обязательно образуют непрерывную последовательность. Единственным условием является их уникальность. Содержимое ключевого поля различно для всех записей таблицы, что позволяет однозначно идентифицировать запись. Такие поля используются для формирования связей таблиц, о которых вы узнаете на этом занятии позже.


Конструктор таблиц

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


Упражнение 3. Структура таблицы

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

  1. Щелчком на кнопке Окно базы данных (Database Window) переключитесь на список таблиц базы данных.

  2. Дважды щелкните на значке Создание таблицы в режиме конструктора (Create Table In Design View). Окно конструктора, показанное на рис. 16.5, состоит из двух частей. В верхней отображается список полей таблицы, а в нижней — свойства выделенного поля.

  3. Введите слово Дата, которое будет играть роль названия нового поля.

  4. Щелкните на ячейке Тип данных (Data Type) первой строки списка полей. Здесь необходимо выбрать тип поля, который определяет структуру и размер данных.

Рис. 16.5. Конструктор таблиц

  5. Щелкните на появившейся стрелке раскрывающегося списка ячейки Тип данных и выберите пункт Дата/время (Date/Time).

  6. Нажмите клавишу Tab и введите расшифровку назначения поля: Дата контакта. Такие описания вводить не обязательно, но их наличие помогает разобраться в структуре таблицы.

  7. Щелкните на второй ячейке столбца Имя поля (Field Name) и введите имя Описание.

  8. Задайте для второго поля тип Текстовый (Text).

  9. Укажите назначение поля в соответствии с рис. 16.5.

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

  10. Добавьте еще одно поле с именем Код_Контакты и типом Числовой (Number),

Теперь нужно добавить индексированное поле и назначить его ключом, однозначно' идентифицирующим записи таблицы. Индексированные поля, или индексы, отличаются от обычных тем, что для них Access создает специальные списки, позволяющие выполнять быструю сортировку и поиск по содержимому индексированного поля. Таблица может содержать несколько индексов. Ключ — это специальный индекс, идентифицирующий записи. Значения такого поля должны быть уникальными. Его наличие не обязательно, но оно так часто используется, что при отсутствии ключа Access напоминает об этом и предлагает автоматически добавить ключевое поле.

  11. Добавьте поле Ключ и назначьте ему тип Счетчик (AutoNumber). Такой тип данных избавляет пользователя от необходимости ввода значений ключевого поля и инициирует автоматическую генерацию уникальных значений.

  12. Сохраняя активной строку Ключ, щелкните на кнопке Ключевое поле (Primary Key). На кнопке этой строки появится значок ключа, показывающий особый статус поля.

  13. Щелкните на кнопке закрытия окна конструктора.

  14. Access спросит о необходимости сохранения структуры таблицы. В ответ щелкните на кнопке Да.

  15. В открывшемся окне диалога (рис. 16.6) введите имя Список.

Рис. 16.6. Ввод имени таблицы

  16. Щелкните на кнопке ОК.


Упражнение 4. Список подстановки

Пришло время наполнить таблицу Список конкретной ин4юрмацией. Для этого выполните следующие шаги.

  1. В окне базы данных откройте список таблиц и дважды щелкните на значке Список. Выбранная таблица откроется в режиме просмотра данных.

  2. Добавьте несколько записей в соответствии с рис. 16.7.

Рис. 16.7. Список состоявшихся контактов

Примечание

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

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

  3. Щелкните на кнопке Вид (View) панели инструментов. Откроется окно конструктора таблицы.

  4. В списке типа данных для поля Код_Контакты выберите пункт Мастер подстановок (Lookup Wizard).

  5. В первом окне мастера оставьте выбранным положение переключателя Объект «столбец подстановки» будет использовать значения из таблицы или запроса (I Want The Lookup Column To Look Up The Values In The Table Or Query) и щелкните на кнопке Далее. Три положения переключателя второго окна мастера выводят на экран список таблиц, запросов или объединяют эти два списка. Здесь нужно выбрать таблицу или запрос на роль источника подстановки. В нашем случае база данных кроме таблицы Список содержит только один объект — таблицу Контакты, которая и окажется выбранной в окне мастера.

  6. Щелкните на кнопке Далее. Третье окно мастера, показанное на рис. 16.8, предлагает выбрать из таблицы Контакты поля, участвующие в подстановке. Этот список обязан содержать то поле, значения которого должны помещаться в поле Код_Контакты, то есть одноименное поле таблицы Контакты.

  7. Щелкните на пункте Код_Контакты.

Рис. 16.8. Мастер подстановок

Рис. 16.9. Параметры подстановки

  8. Щелкните на кнопке со стрелкой вправо. В список источника подстановки следует также добавить те поля, содержимое которых должно отображаться вместо численного значения, помещаемого из поля Код_Контакты таблицы Контакты в поле Код_Контакты таблицы Список. Я думаю, что будет удобно выбирать людей по их именам и фамилиям.

  9. Добавьте в список Выбранные поля (Selected Fields) пункты Фамилия и Имя.

  10. Затем щелкните на кнопке Далее.

  11. В следующем окне мастер продемонстрирует два столбца таблицы-источника, скрыв столбец Код_Контакты, содержащий идентификатор записи. Щелкните на кнопке Далее.

  12. В поле последнего столбца введите название Контакт, которое заменит имя столбца Код_Контакты, и щелкните на кнопке Готово.

  13. В появившемся окне диалога щелчком на кнопке Да подтвердите необходимость сохранения построенной структуры.

Примечание

Параметры списка подстановки появятся на вкладке Подстановка (Lookup), показанной на рис. 16.9. Если вы знакомы с языком структурированных запросов SQL, то сможете разобраться в запросе Источник строк (Row Source), который формирует таблицу подстановки.

  14. Щелкните на кнопке Вид, чтобы снова переключиться в режим ввода данных.

Теперь в третьем столбце таблицы вместо чисел видны фамилии, соответствующие этим числам, хотя само значение поля Код_Контакты не изменилось. Access автоматически ищет соответствующую запись таблицы Контакты по числу, содержащемуся в поле Код_Контакты, и выводит в ячейку текст поля Фамилия — второго поля таблицы Контакты из выбранных в окне мастера подстановки. Давайте попробуем добавить в таблицу Список еще одну запись.

Рис. 16.10. Список подстановки

  15. Щелкните на нижней ячейке столбца Дата и введите дату 10.10.97.

  16. Нажмите клавишу Tab и напечатайте текст Письмо с предложениями о сотрудничестве.

  17. Снова нажмите клавишу Tab и щелкните на появившейся кнопке раскрывающегося списка, как показано на рис. 16.10. Теперь вы можете выбирать людей из списка подстановки, сформированного на базе полей Фамилия и Имя таблицы Контакты.

  18. Щелкните на втором пункте списка.

Access автоматически отыщет в таблице Контакты значение поля Код_Контакты для записи, содержащей информацию о Петре Петрове, и введет найденное число в поле Код_Контакты таблицы Список. Это значение останется скрытым. Вместо него в ячейке таблицы Список появится соответствующая фамилия, взятая из таблицы Контакты.


Упражнение 5. Связь таблиц

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

  1. Выберите команду Сервис > Схема данных (Tools > Relationships). Откроется окно, схематически изображающее связи базы данных. На рис. 16.11 видно, что линия связи соединяет поля Код_Контакты таблицы Контакты и Контакт таблицы Список.

Примечание

Данная связь соединяет ключевое и обычное поля. Это связь типа «один ко многим», когда одной записи таблицы Контакты может соответствовать несколько записей таблицы Список, но не наоборот.

Рис. 16.11. Схема данных

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

  2. Щелчком выделите линию связи.

  3. Нажмите клавишу Delete. В ответ на появившийся запрос щелкните на кнопке Да. Связь исчезнет.

  4. Поместите указатель мыши на пункт Код_Контакты таблицы Контакты.

  5. Нажмите кнопку мыши и перетащите указатель на поле Контакт таблицы Список.

  6. В открывшемся окне диалога щелкните на кнопке Создать. Связь появится вновь.

Чтобы настроить параметры связи, выполните следующие шаги.

  7. Дважды щелкните на линии связи. Откроется окно диалога, показанное на рис. 16.12.

Рис. 16.12. Параметры связи

Примечание

Если таблицы, между которыми нужно организовать связь, отсутствуют, щелкните в окне Схема данных (Relationships) правой кнопкой мыши и выберите команду Добавить таблицу (Show Table). В открывшемся окне диалога выделяйте таблицы, которые нужно разместить в окне Схема данных и щелкайте на кнопке Добавить (Add). Получив все необходимые таблицы, закройте окно диалога кнопкой Закрыть (Close).

  8. Установите флажок Обеспечение целостности данных (Enforce Referential Integrity). Этот режим не позволит Access оставлять в таблице Список записи, для которых нельзя подобрать запись таблицы Контакты с подходящим значением поля Код_Контакты.

  9. Установите флажок Каскадное удаление связанных записей (Cascade Delete Related Records). Теперь при удалении записи таблицы Контакты (то есть удалении информации о конкретном человеке) будут удалены все соответствующие записи таблицы Список (то есть все описания контактов с этим человеком). Если указанный флажок сброшен, удаление тех записей таблицы Контакты, на которые ссылается хотя бы одна запись таблицы Список, запрещено.

Примечание

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

  10. Щелкните на кнопке ОК.

  11. Закройте окно Схема данных.

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

  13. Щелкните на знаке «плюс» записи для Петра Петрова. Откроется вложенная таблица, содержащая те записи таблицы Список, значение поля Код_Кон-такты которых равно величине одноименного поля записи для Петра Петрова (рис. 16.13).

Рис. 16.13. Выборка данных из связанной таблицы

Примечание

При раскрытии фрагмента связанной таблицы знак «плюс» превращается в знак «минус». Чтобы скрыть дополнительную таблицу, щелкните на нем еще раз.

  14. Щелкните еще на каком-нибудь знаке «плюс», и вы увидите описание всех контактов с еще одним человеком. Таким образом, с помощью созданной связи вы можете быстро просматривать в окне таблицы Список описания всех контактов с определенным человеком или группой лиц.


Упражнение 6. Параметры поля

Для того, чтобы обеспечить возможность хранения в базе данных разнообразной информации, Access предлагает большой набор типов данных, перечисленных в табл. 16.1.

ТАБЛИЦА 16.1 . Типы данных
Название типа | Назначение
Текстовый (Text) | Текст длиной до 255 символов
Поле MEMO (Memo) | Текст длиной до 65 000 символов
Числовой (Number) | Числа различных форматов
Дата/время (Date/Time) | Дата и/или время
Денежный (Currency) | Денежные значения различных форматов
Счетчик (AutoNumber) | Счетчик, который автоматически увеличивается на единицу с добавлением каждой новой записи
Логический (Yes/No) | Величины, способные принимать только два значения: да/нет или 1/0
Поле объекта OLE (OLE Object) | Поля, позволяющие вставлять рисунки, звуки и данные других типов
Гиперссылка (Hyperlink) | Ссылки, дающие возможность открывать объект Access (таблицу, форму, запрос и т. п.), файл другого приложения или web-страницу

Чтобы сделать работу со списком контактов более продуктивной, следует изменить типы данных некоторых полей.

  1. В окне базы данных выделите таблицу Список и щелкните на кнопке Конструктор (Design), расположенной в верхней части окна. Выбранная таблица откроется в режиме конструктора.

  2. Описание контакта может быть достаточно длинным, а максимальная длина текстовых полей ограничена 256 символами. Поэтому измените тип поля Описание на Поле MEMO.

  3. Щелкните на поле Дата.

Рис. 16.14. Выбор формата

  4. Для удобства прочтения даты контакта измените 4юрмат ее отображения, выбрав в раскрывающемся списке Формат поля (Format) пункт Длинный формат даты (Long Date), как показано на рис. 16.14.

Кроме типа данных и формата отображения вкладка Общие (General) окна конструктора позволяет настроить некоторые дополнительные параметры поля, влияющие на способ ввода данных. Параметр Значение по умолчанию (Default Value) задает содержимое поля, которое записывается в новую запись в том случае, если пользователь не ввел в это поле никаких данных. Если вы регулярно обновляете список контактов, то дата контакта чаще всего будет совпадать с текущей датой. Чтобы упростить ввод информации, можно задать текущую дату в качестве значения по умолчанию для поля Дата.

  5. Введите в поле Значение по умолчанию (Default Value) функцию Date(), которая возвращает текущую дату. В некоторых случаях требуется не только задать тип данных поля, но и ограничить его возможные значения некоторым интервалом или более сложным правилом отбора. Такое правило вводится в поле Условие на значение (Validation Rule). Предположим, вы точно знаете, что все контакты, которые будут заноситься в список, состоятся после 1 января 1999 г. Чтобы избежать ошибок, можно заставить Access сообщать вам о вводе неверной даты. Для этого выполните следующие шаги.

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

  7. Необходимо, чтобы дата записи была позднее, то есть больше, даты 1 января 1999 г. Поэтому щелкните на кнопке >, чтобы добавить нужное условие.

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

  8. Дважды щелкните на папке Функции (Functions) в левом списке построителя выражений.

  9. Щелкните на папке Встроенные функции (Built-in Function), чтобы вывести список стандартных функций Access.

  10. В среднем списке выберите категорию Дата/время.

  11. Двойным щелчком на имени функции DateValue добавьте ее в поле выражения. Вместо местозаполнителя аргумента «stringexpr» нужно ввести конкретную дату в строковом формате.

  12. В поле выражения щелчком выделите текст «stringexpr», а затем напечатайте "1.1.99".

  13. Щелкните на кнопке ОК.

Рис. 16.15. Параметры поля Дата

  14. В поле Сообщение об ошибке (Validation Text) введите текст Неверная дата, который будет появляться при вводе даты, более ранней, чем 1 января 1999 г. Окончательный набор параметров поля Дата показан на рис. 16.15.

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

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

  16. Выделите таблицу Список в окне базы данных и щелкните на кнопке Открыть (Open). Теперь все даты отображаются в длинном формате, а в ячейке Дата в строке новой записи автоматически появляется текущая дата.

  17. Щелкните в ячейке Дата второй строки, измените ее содержимое на 19.11.95 и нажмите клавишу Tab, чтобы перейти к следующему полю. Так как модифицированная дата предшествует 1 января 1999 г., что противоречит настроенному условию, Access не позволит убрать курсор из текущей ячейки и откроет окно сообщения с текстом, введенным вами в поле Сообщение об ошибке конструктора таблицы на шаге 14. Такое сообщение будет появляться до тех пор, пока вы не скорректируете дату.

  18. Щелкните на кнопке ОК.

  19. Исправьте дату на 19.11.00.

  20. Закройте таблицу Список.


Упражнение 7. Индекс

Для ускорения поиска данных о конкретном человеке в таблице Контакты удобно рассортировать записи по алфавиту. Чтобы назначить сортировку по полю Фамилия, выполните следующие шаги.

  1. В окне базы данных щелкните на значке таблицы Контакты.

  2. Щелчком на кнопке Открыть откройте таблицу в режиме редактирования.

  3. В окне таблицы щелкните на заголовке Фамилия, чтобы выделить столбец.

Рис. 16.16. Сортировка фамилий по алфавиту

  4. Щелчком на кнопке Сортировка по возрастанию (Sort Ascending) упорядочите записи столбца фамилии таблицы по алфавиту (рис. 16.16).

  5. Вставьте в таблицу еще несколько человек с фамилией Петров. Например, Василий Петров, Николай Петров и Игорь Петров. Добавляйте записи в указанном порядке.

  6. Чтобы обновить сортировку, закройте окно таблицы Контакты и вновь откройте таблицу. Записи окажутся расположенными так, как показано на рис. 16.17.

Рис. 16.17. Несколько человек с одинаковыми фамилиями

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

  7. Щелчком на кнопке Вид переключитесь в режим конструктора.

  8. Чтобы открыть окно индексов таблицы Контакты, показанное на рис. 16.18, щелкните на кнопке Индексы (Indexes) панели инструментов. В окне индексов есть список со столбцами названия индекса, имени поля, по которому выполняется индексация, и режима сортировки (по возрастанию или по убыванию). Мастер таблиц при создании таблицы Контакты индексировал ее потрем полям: Название Компании, Фамилия, Код_Контакты, добавив индексы с именами соответственно: Название Компании, Фамилия и PrimaryKey. Последний из трех индексов является ключом таблицы, однозначно идентифицирующим ее записи. Все имеющиеся индексы простые, то есть назначают сортировку только по одному полю. Чтобы записи с одинаковыми фамилиями располагались по алфавиту имен, следует модифицировать индекс Фамилия, добавив в него условие сортировки по полю Имя. Для этого выполните следующие шаги.

Рис. 16.18. Индексы

  9. Щелкните правой кнопкой мыши на той строке, которая расположена ниже строки индекса Фамилия.

  10. Выберите в контекстном меню команду Добавить строки (Insert Rows), чтобы вставить одну пустую строку.

  11. В новой строке щелкните на кнопке раскрывающегося списка ячейки Имя поля.

  12. Выберите пункт Имя. В столбце Порядок сортировки (Sort Order) автоматически появится вариант По возрастанию (Ascending).

Рис. 16.19. Сортировка по двум полям

В окне настройки индексов имена полей, по которым происходит упорядочивание в данном индексе, располагаются в строке с именем индекса и ниже ее в строках с пустой ячейкой Индекс (Index Name) в порядке убывания влияния поля. То есть первой выполняется сортировка по тому полю, которое в данном индексе расположено выше. В одном индексе можно использовать до 10 полей. Таким образом, теперь индекс Фамилия упорядочивает записи по алфавиту сначала по фамилиям, а потом по именам.

  13. Закройте окно индексов.

  14. Щелкните на кнопке Вид, чтобы переключиться в режим редактирования таблицы.

  15. Ответьте Да на запрос о необходимости сохранения таблицы. Теперь имена оказались выстроенными по алфавиту, как показано на рис. 16.19. Поскольку перед этим уже была настроена сортировка по полю Фамилия (то есть по индексу Фамилия, главным полем которого является Фамилия), вам даже не пришлось перенастраивать сортировку. Модификация индекса автоматически привела к упорядочению имен.


Контрольное упражнение

Пришло время самостоятельно попрактиковаться в работе с конструктором таблиц.

Access автоматически обновляет файл базы данных. Чтобы сохранить его исходный вариант, в Проводнике создайте копии файлов Контакты.mdb и Список.mdb — соответственно файлы Контакты_копия.mbd и Список_копия.таЬ. Закончив контрольное упражнение, переименуйте файлы Контакты_копия.mbd и Список_копия.mbd обратно в Контакты.mdb и Список.mdb.

  1. Откройте таблицу Контакты в режиме конструктора.

  2. Измените тип данных поля Адрес на Поле MEMO.

  3. Ограничьте длину текстового поля Имя величиной 30 символов.

    • Какой параметр определяет длину поля?
  4. Поле Фамилия является ключевым. Запретите Access добавлять в таблицу Контакты записи с пустым полем Фамилия.
    • Как запретить добавление пустого поля?

  5. Закройте конструктор и сохраните структуру таблицы.

  6. Создайте новую таблицу с именем Метод.

  7. В конструкторе добавьте в нее поле Метод ID с типом данных Счетчик и поле Вариант с типом Текстовый. Первое из них сделайте ключом таблицы.

  8. Переключитесь в режим редактирования и введите в таблицу три записи, в поле Метод которых введите слова Телефон, Письмо, Факс. Эта таблица будет хранить возможные способы контакта.

  9. С помощью конструктора добавьте в таблицу Список поле Метод ID с числовым типом.
  10. С помощью мастера подстановки назначьте этому полю подстановку, состоящую из полей МетодЮ и Вариант таблицы Метод.
    • Как сделать, чтобы в список подстановки кроме названия метода выводился его кодовый номер?

  11. В имеющихся записях таблицы Список введите значение в новое поле, выбрав его в списке подстановки.

  12. Закройте базу данных.

    • Какие операции закрывают базу данных?


Подведение итогов

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

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


Занятие №2

Подбор требуемых данных

ТЕМА ЗАНЯТИЯ

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

  • мастер запросов;

  • конструктор запросов;

  • условие отбора;

  • итоговый запрос;

  • запрос действия;

  • фильтры.

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


Запросы

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


Упражнение 1. Мастер запросов

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

  1. В окне базы данных щелкните на кнопке Запросы (Queries).

  2. Дважды щелкните на значке Создание запроса с помощью мастера (Create Query By Using Wizard).

  3. В раскрывающемся списке Таблицы и запросы (Tables/Queries) первого окна мастера выберите таблицу Список (рис. 17.1).

  4. В списке Доступные поля (Available Fields) щелкните на строке Дата.

  5. Щелкните на кнопке >, чтобы переместить выделенное поле в список Выбранные поля.

  6. Повторяя шаги 3-5, добавьте в список Выбранные поля поле, Описание таблицы Список, а также ноле Фамилия таблицы Контакты.

  7. Щелкните на кнопке Далее.

  8. Введите имя запроса Перечень контактов и щелкните на кнопке Готово.

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

Рис. 17.1. Мастер запросов

Примечание

Чтобы база данных выглядела интереснее, в таблицу Список было добавлено несколько новых записей.

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

Рис. 17.2. Результат выполнения запроса

Результат выполнения запроса показан на рис. 17.2.


Упражнение 2. Конструктор запросов

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

  1. Чтобы переключиться в режим конструктора, выберите команду Вид > Конструктор (View > Design View). Окно конструктора показано на рис. 17.3. В его верхней части отображаются списки полей таблиц, к которым обращается запрос, и связи между таблицами. Нижняя область содержит бланк выбора полей таблиц, условий отбора и режимов сортировки. Чтобы добавить в запрос еще одно поле, выполните следующие шаги.

  2. Переместите указатель на пункт Имя таблицы Контакты.

Рис. 17.3. Конструктор запроса

  3. Нажмите кнопку мыши и перетащите поле Имя в верхнюю ячейку четвертой строки бланка запроса. Его имя появится в этой ячейке, а имя соответствующей таблицы — во второй ячейке того же столбца. Третья строка бланка запроса позволяет сортировать результат запроса по тому или иному полю.

  4. В раскрывающемся списке третьей ячейки третьего столбца бланка выберите пункт По возрастанию.

Примечание

Чтобы добавить в запрос сразу все поля таблицы, перетаскивайте пункт *. Если нужная таблица отсутствует в верхней части окна запроса, щелкните на кнопке Отобразить таблицу (Show Table) панели инструментов, выделите нужную таблицу или запрос в открывшемся окне диалога, щелкните на кнопке Добавить, а затем на кнопке Закрыть.

  5. Назначьте тот же режим сортировки для поля Имя. Теперь записи результата запроса будут упорядочены по алфавиту фамилий и имен. Имеющийся вариант связи добавляет в результат запроса только те записи связанных таблиц, в которых значения полей Код_Контакты равны. Так как для некоторых людей из таблицы Контакты нет записей в таблице Список, то информация о таких людях не включается в результат запроса. Чтобы запрос возвращал данные даже о тех людях (включенных в таблицу Контакты), с которыми не было никаких контактов, нашедших отражение в таблице Список, следует изменить параметры объединения.

  6. Дважды щелкните на линии связи.

  7. В открывшемся окне диалога Параметры объединения (Join Properties) выберите положение переключателя Объединение всех записей из "Контакты" и только тех записей из "Список", в которых связанные поля совпадают (Include All Records From "Контакты" And Only Those Records From "Список" Where The Joined Fields Are Equal).

  8. Щелкните на кнопке ОК. На одном конце линии связи появится стрелка, указывающая на смену режима объединения.

Примечание

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

  9. Щелчком на кнопке Вид панели инструментов запустите запрос повторно. Результат выполнения запроса с учетом сортировки и нового режима объединения будет таким, как показано на рис. 17.5.

  10. Закройте окно запроса.

  11. В ответ на вопрос о необходимости сохранения новой структуры запроса ответьте Да.


Упражнение 3. Условие отбора

Добавление в запрос условия отбора позволяет выбирать из таблицы не все записи, а лишь те, которые удовлетворяют определенным критериям. Например, вас могут заинтересовать контакты, приходящиеся на декабрь 1999 года. Давайте модифицируем запрос добавлением соответствующего условия отбора.

  1. Выделите в окне базы данных (рис. 17.4) значок запроса Перечень контактов.

Рис. 17.4. Окно базы данных

  2. Щелкните на кнопке Конструктор.

  3. В бланке запроса щелкните на ячейке Условие отбора (Criteria) первого столбца правой кнопкой мыши и выберите в контекстном меню команду Построить (Build). Откроется окно построителя выражений.

  4. В левом списке построителя щелкните на папке Операторы (Operators).

  5. В среднем списке выберите категорию Сравнения (Comparison).

  6. В правом списке дважды щелкните на пункте Between, чтобы добавить этот оператор в ноле формулы.

  7. Щелчком выделите в поле формулы первый местозаполнитель «Выражение» («Ехрг»).

  8. В левом списке построителя выражений двойным щелчком откройте папку Функции.

  9. 9. Щелкните на папке Встроенные функции, содержащей стандартные функции Access.

  10. В среднем списке построителя выражений щелкните на пункте Дата/время (Data/Time).

  11. В правом списке дважды щелкните на функции DateValue, чтобы заменить ею местозаполнитель «Выражение».

  12. Нажмите два раза клавишу —>, выделив местозаполнитель «stringexpr».

  13. Введите текст "1.12.99".

  14. Повторяя шаги 7-13, замените второй местозаполнитель «Выражение» на выражение DateValue ("31.12.99").

У вас должна получиться формула Between DateValue ("1.12.99") And DateValue ("31.12.99"). Она проверяет условие нахождения даты в интервале от 1 до 31 декабря 1999 г., то есть отбирает те записи, значение поля Дата которых относится к декабрю 1999 г.

Примечание

Если вы уже освоили правила построения выражений Access, то можете не пользоваться построителем, а непосредственно вводить выражения в бланк запроса.

  15. Щелкните па кнопке ОК. Построенная формула появится в ячейке Условие отбора первого столбца бланка запроса. При выборе записей, относящихся к одному месяцу, точная дата контакта может оказаться несущественной. Совсем выбросить это поле из бланка запроса нельзя, так как оно необходимо для реализации условия отбора. Однако любое поле можно скрыть, то есть не включать в результат запроса.

  16. Сбросьте флажок Вывод на экран (Show) первого столбца запроса (рис. 17.5).

Рис. 17.5. Скрытие поля

  17. Щелчком на кнопке Запуск (Run) панели инструментов выполните запрос.


Упражнение 4. Итоговый запрос

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

  1. В окне базы данных щелкните на кнопке Запросы.

  2. Дважды щелкните на значке Создание запроса в режиме конструктора (Create Query In Design View).

  3. В открывшемся окне диалога (рис. 17.6) выделите строку Контакты.

  4. 4. Щелчком на кнопке Добавить добавьте выбранную таблицу в верхнюю область конструктора запроса.

  5. 5. Выделите пункт Список и снова щелкните на кнопке Добавить.

  6. 6. Щелчком на кнопке Закрыть закройте окно диалога Добавление таблицы (Show Table). Списки полей двух таблиц, соединенные линией связи, появятся в окне конструктора.

  7. 7. Щелкните на кнопке Групповые операции (Totals) панели инструментов. В бланке запроса появится дополнительная строка Групповая операция: (Total), позволяющая выполнять статистические операции со значениями конкретных полей.

Рис. 17.6 . Добавление таблицы

  8. Перетащите поле Фамилия в ячейку Поле (Field) первого столбца конструктора.

  9. В ту же ячейку второго столбца перетащите поле Имя таблицы Контакты.

  10. В третий, четвертый и пятый столбцы бланка запроса перетащите поле Дата таблицы Список (рис. 17.7).

Рис. 17.7. Запрос с групповыми операциями

  11. В раскрывающемся списке ячейки Групповая операция (Total) третьего столб ца бланка запроса выберите пункт Min.

  12. В той же ячейке четвертого столбца выберите пункт Мах.

  13. В пятом столбце задайте групповую операцию Count. Групповые операции построенного запроса обработают все записи таблицы Список, соответствующие конкретному человеку из таблицы Контакты, и вместо самих данных таблицы Список выведут в соответствующее поле результата запроса только значение величины, вычисляемой по определенной формуле. Доступные групповые операции перечислены в табл. 17.1.

ТАБЛИЦА 17.1 . Групповые операции

Название | Функция
Условие(Where) | Режим задания условия отбора для поля, но которому не выполняется группировка. Access автоматически делает такое поле скрытым
Выражение (Expression) | Вычисляемое поле, значение которого рассчитывается по сложной формуле
Group By | Поле, определяющее группу записей, по которой вычисляются статистические параметры. К одной группе относятся все записи, для которых значения поля с режимом Group By (Группировка) одинаковы
Last | Последнее значение в группе
First | Первое значение в группе
Var | Вариация значений поля
StDev | Стандартное отклонение величин ноля от среднего
Count | Количество записей, соответствующее ноле которых не содержит величины Null
Мах | Максимальное значение
Min | Минимальное значение
Avg | Среднее значение поля
Sum | Сумма значений поля по всем записям

Примечание

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

  14. Щелкните на кнопке Вид, чтобы выполнить запрос. Появится таблица с пятью столбцами. Два первых столбца содержат фамилии и имена людей. По ним выполняется группировка, то есть расчет значений остальных полей запроса выполняется для записей таблицы Список, сопоставляемых с одним человеком. Как уже говорилось выше, соответствие контакта таблицы Список и человека из таблицы Контакты определяется полями Код_Контакты, с помощью которых осуществляется связь этих двух таблиц. Третий и четвертый столбцы запроса выводят соответственно дату первого (функция Min) и последнего (функция Мах) контакта с данным человеком. Пятый столбец содержит количество записей в таблице Список (функция Count), соответствующих. данному человеку, то есть число контактов с ним. Единственный недостаток построенного запроса — это непонятные имена столбцов. Давайте скорректируем их.

  15. Щелчком на кнопке Вид вернитесь в конструктор запроса.

  16. В ячейке Поле третьего столбца замените имя Дата на текст Дата первого контакта: Дата. Правая часть этого выражения, расположенная правее двоеточия, по-прежнему задает имя поля, а левая определяет название столбца результата запроса. Таким образом, любому столбцу запроса можно назначить произвольное имя.

  17. В ячейке Поле четвертого столбца введите Дата последнего контакта: Дата.

  18. В первой строке пятого столбца бланка'запроса введите Число контактов: Дата.

Примечание

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

  19. Снова щелкните на кнопке Вид.

  20. Закройте запрос.

  21. Для сохранения изменений структуры щелкните на кнопке Да.

  22. В окне диалога Сохранение (Save As) введите имя Итоговый запрос и щелкните на кнопке ОК.


Упражнение 5. Запрос действия

До сих пор вы сталкивались с запросами, выполняющими выборку данных и некоторые вычисления. Однако запросы могут применяться также для добавления, удаления и обновления группы записей таблицы. Такие запросы являются мощным инструментом преобразования данных, они называются запросами действия. Предположим, что по каким-то причинам вам понадобилось скорректировать даты контактов, заменив во всех записях таблицы Список, относящихся к 1999 году, месяц ноябрь на декабрь. Подобную операцию трудно проделать вручную,- если в таблице содержится несколько тысяч записей. Запрос действия позволяет быстро решить поставленную задачу.

  1. В окне базы данных щелкните на кнопке Таблицы.

  2. Выделите таблицу Список, данные которой нужно обновить.

  3. В палитре кнопки Новый объект (New Object) выберите пункт Запрос (Query). Откроется окно диалога Новый запрос (New Query), показанное на рис. 17.8. Подобное окно открывается и при щелчке на кнопке Создать (New) окна базы данных. Оно позволяет выбрать наиболее удобный способ создания объекта.

Рис. 17.8. Создание запроса

  4. Дважды щелкните на строке Конструктор (Design View). Таблица Список, выделенная в окне базы данных на шаге 2, автоматически появится в окне конструктора запросов.

  5. Перетащите в бланк запроса поле Дата, значение которого нужно обновлять.

Примечание

Название поля, заключенное в квадратные скобки, является ссылкой на значение поля. Чтобы сослаться на поле другой таблицы, нужно в начале указать имя таблицы, а затем имя поля (оба имени в квадратных скобках) и разделить их восклицательным знаком. Например [Контакты]! [Фамилия].

  6. В палитре кнопки Тип запроса (Query Type) выберите пункт Обновление (Update Query). Описание всех возможных вариантов запросов, предлагаемых программой Access, приведено в табл. 17.2. Структура бланка запроса видоизменяется в соответствии с типом запроса. В бланке выбранного варианта запроса на обновление появляется поле Обновление (Update To), в которое нужно ввести новое значение поля. Чтобы изменить месяц даты с ноября на декабрь, достаточно прибавить к дате 30 дней.

  7. Введите в ячейку Обновление (Update To) формулу [Дата] +30.

ТАБЛИЦА 17.2. Варианты запросов

Тип | Описание
Выборка (Select) ; | Выборка данных в таблицу результата запроса на основе указанных условий отбора
Перекрестный (Crosstab) | Результат запроса выводит статистические значения (сумму, количество или среднее) для одного из полей таблицы в зависимости от двух параметров других полей таблицы, задающих заголовки строк и столбцов результата перекрестного запроса
Создание таблицы (Make-Table) | Создание новой таблицы в текущей или в другой базе данных на базе информации из имеющихся таблиц
Обновление (Update) | Обновление данных таблицы
Добавление (Append) | Добавление набора записей в таблицу
Удаление (Delete) | Удаление записей таблицы в соответствии с указанным критерием

  8. Чтобы обновлялись только даты, относящиеся к ноябрю 2000 года, введите в ячейку Условие отбора формулу Between DateValue ("1.11.99") And DateValue ("30.11.99"), которая подробно обсуждалась в третьем упражнении этого занятия (рис. 17.12).

  9. Закройте запрос, сохранив его под именем Обновление.

  10. Щелкните на кнопке Таблицы окна базы данных и двойным щелчком на значке Список откройте эту таблицу. В ней есть четыре записи, относящиеся к ноябрю 2000 года.

Примечание

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

  11. В окне базы данных щелкните на кнопке Запросы.

  12. Дважды щелкните на значке Обновление.

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

Рис. 17.9. Запрос на обновление

  13. Щелкните на кнопке Да и изучите изменения, произошедшие с данными таблицы Список.


Фильтры

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


Упражнение 6. Установка фильтра

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

  1. В окне базы данных щелкните на кнопке Таблицы, а затем дважды на значке Контакты.

  2. В столбце Фамилия щелкните на ячейке с фамилией Петров.

  3. Щелкните на кнопке Фильтр по выделенному (Filter By Selection). В результате видимыми останутся только те записи, в поле Фамилия которых присутствует значение Петров (рис. 17.10).

  4. Чтобы отменить влияние фильтра, щелкните на кнопке Удалить фильтр (Remove Filter).

Примечание

Access запоминает последний применявшийся фильтр. Его можно снова назначить простым щелчком на кнопке Применение фильтра (Apply Filter). Это та же самая кнопка, с помощью которой отменяется действие фильтра, но теперь она будет иметь другое название.

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

Рис. 17.10. Фильтрация записей

  5. Выберите команду Записи > Фильтр > Расширенный фильтр (Records > Filter > Advanced Filter/Sort). Откроется окно, похожее на конструктор запроса. Критерий равенства поля Фамилия значению Петров уже будет присутствовать в бланке фильтра.

  6. Перетащите поле Рабочий Телефон во второй столбец бланка.

Рис. 17.11. Окно расширенного фильтра

  7. В ячейку Условие отбора введите формулу <>Null (рис. 17.11).

Значение любого пустого поля равно величине NuIL Условие < >NuII проверяет поле на неравенство величине Null, то есть отбирает все непустые поля.

  8. Выберите команду Фильтр > Применить фильтр (Filter > Apply Filter/Sort). Настроенный" фильтр будет применен к таблице Контакты. В результате в ней останутся только две записи.

  9. С помощью команды Записи > Удалить фильтр (Records > Remove Filter/Sort) отмените фильтрацию.


Упражнение 7. Преобразование в запрос

К сожалению, назначение нового фильтра автоматически стирает все предыдущие, которые уже невозможно применить повторно. Если фильтр достаточно сложный, его многократная настройка может отнимать много времени, и вам, вероятно, захочется как-то спасти результат титанического труда. Access предлагает простой способ сохранения фильтров. Так как окно фильтра подобно конструктору запроса, было бы логично записать фильтр в виде запроса с теми же условиями отбора. Чтобы превратить фильтр в запрос, выполните следующие шаги.

  1. Командой Записи > Фильтр > Расширенный фильтр (Records > Filter > Advanced Filter/Sort) активизируйте окно сложного фильтра, созданного в предыдущем упражнении.

  2. Выполните команду Файл > Сохранить как запрос (File > Save As Query).

  3. В открывшемся окне диалога введите имя Фил ьтр и щелкните на кнопке ОК.

  4. Закройте окно фильтра.

  5. В окне базы данных появился новый запрос с названием Фильтр. Дважды щелкните на значке этого запроса.

Откроется окно результата выполнения запроса, записи которого будут повторять записи фильтрованной таблицы Контакты. Этим запросом можно пользоваться когда угодно, выводя на экран записи, отобранные по соответствующим критериям. Более того, любой запрос можно превратить в фильтр. Это делается следующим образом.

  6. Щелчком активизируйте окно таблицы Контакты (если таблица закрыта, откройте ее).

  7. Чтобы назначить новый фильтр (и стереть предыдущий), щелкните на ячейке с фамилией Петров правой кнопкой мыши и выберите в контекстном меню команду Исключить выделенное (Filter Excluding Selection). В таблице останутся только те записи, в поле Фамилия которых нет слова Петров.

  8. Щелчком на кнопке Удалить фильтр отмените фильтрацию данных. Теперь давайте вернем прежний сложный фильтр.

  9. Выберите команду Записи > Фильтр > Расширенный фильтр.

  10. Выберите команду Файл > Загрузить из запроса (File > Load From Query).

  11. В открывшемся окне диалога выделите запрос Фильтр и щелкните на кнопке ОК.

Старые условия фильтрации появятся в бланке окна фильтра. Теперь для применения сохраненного фильтра достаточно щелкнуть на кнопке Применение фильтра панели инструментов.


Контрольное упражнение

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

  1. Запустите мастер запросов.

  2. Добавьте в запрос поля Фамилия и Адрес таблицы Контакты, а затем поля Дата и Описание таблицы Список.
  3. Настройте итоговый запрос, подсчитывающий количество записей.
    • Как с помощью мастера, создать итоговый запрос?

  4. Переключитесь в режим конструктора.

  5. Скройте третье и четвертое поля запроса.

  6. Закройте запрос, сохранив его под именем Количество записей.

  7. Откройте таблицу Список.

  8. Включите фильтр, оставляющий только записи, относящиеся к фамилии Леонидов.

  9. Откройте окно сложного фильтра.
  10. Измените условие фильтрации так, чтобы оставались также записи, касающиеся Петрова.
    • Какое условие отбора необходимо добавить ?

  11. Назначьте обновленный фильтр.

  12. Сохраните настроенный фильтр в виде запроса.

  13. Откройте запрос Обновление в конструкторе запросов.
  14. Просмотрите его в режиме SQL.
    • Как включить режим просмотра SQL?

  15. Закройте базу данных.


Подведение итогов

На занятии были изучены запросы, запросы действия и фильтры. Эти объекты позволяют сортировать данные, выбирать их на основе введенных условий, а также обновлять и создавать таблицы.

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


Занятие №3

Формы и отчеты

ТЕМА ЗАНЯТИЯ

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

  • мастер форм;

  • конструктор форм;

  • элементы управления;

  • заголовок и примечание формы;

  • мастер отчетов;

  • конструктор отчетов;

  • группировка и сортировка;

  • печать данных.


Форма

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


Упражнение 1. Мастер форм

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

  1. С помощью команды Файл > Открыть (File > Open) откройте базу данных Контакты, созданную на предыдущем занятии.

  2. В окне базы данных щелкните на кнопке Формы (Forms).

  3. В списке форм дважды щелкните на значке Создание формы с помощью мастера (Create Form By Using Wizard).

  4. В списке Таблицы/запросы первого окна мастера, показанного на рис. 18.1, выберите пункт Таблица: Контакты.

Рис. 18.1. Мастер форм

  5. Щелкните на кнопке », чтобы добавить в список Выбранные поля все поля таблицы.

  6. Выделите пункт Код_Контакты и щелчком на кнопке < уберите это поле обратно в левый список. Содержимое поля Код_Контакты генерируется автоматически, а его значение несущественно для пользователя, поэтому не следует включать это поле в форму.

  7. Щелкните на кнопке Далее.

  8. В следующем окне диалога выберите для формы стиль Выровненный (Justified) и щелкните на кнопке Далее.

  9. В списке третьего окна выберите вариант оформления Камень (Stone) или любой другой понравившийся вам стиль и снова щелкните на кнопке Далее.

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

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

  11. Щелкните несколько раз на кнопке Следующая запись, чтобы добраться до информации о Василии Петрове. В этой записи отсутствуют адрес, название фирмы и телефон.

  12. Щелкните на поле ниже подписи Адрес и введите адрес Василия Петрова.

  13. Аналогичным способом добавьте название компании и телефон (рис. 18.2).

Рис. 18.2. Форма для таблицы Контакты

  14. Щелкните на кнопке Новая запись (New Record) и добавьте информацию еще об одном человеке. Как видите, форма позволяет просматривать и редактировать любую запись, а также добавлять записи.


Упражнение 2. Конструктор форм

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

  1. В окне базы данных дважды щелкните на значке Создать форму в режиме конструктора (Create Form In Design View). В окне конструктора присутствуют пустая форма с разметочной сеткой, вертикальная и горизонтальная линейки, помогающие позиционировать объекты (рис. 18.3). Неотъемлемым атрибутом конструктора форм является пацель инструментов Панель элементов (Toolbox), помогающая добавлять элементы формы. Новую форму необходимо связать с источником данных — таблицей Список.

Рис. 18.3. Конструктор форм

  2. Щелкните в пустой области конструктора и выберите в контекстном меню команду Свойства (Properties).

  3. На вкладке Данные (Data) окна диалога свойств формы (рис. 18.4) щелкните на стрелке поля Источник записей (Record Source).

Примечание

Любой элемент формы имеет контекстное меню, в котором есть команда Свойства. Выбор такой команды открывает окно свойств, подобное окну свойств формы. Вкладка Макет (Format) содержит параметры форматирования объекта. Вкладка Данные — описание источника данных, различные ограничения и условия, накладываемые на данные поля. Вкладка События (Event) позволяет писать функции отклика на различные события (например, перемещение мыши на объект). Параметры, не вошедшие в первые три группы, размещаются на вкладке Другие (Other). Вкладка Все (АН) обеспечивает одновременный доступ ко всем параметрам.

  4. Выберите в раскрывшемся списке пункт Список.

  5. Закройте окно свойств. В конструкторе форм появится небольшое окно со списком полей источника записей (таблицы Список). Это окно помогает добавлять элементы управления формы. Его можно скрывать или выводить на экран с помощью кнопки Список полей (Field List). Сейчас нужно добавить в форму три области ввода для трех полей таблицы.

  6. Поместите указатель на пункт Дата окна Список, нажмите кнопку мыши и перетащите этот пункт в область формы. Access создаст элемент управления типа поле, а также подпись.

Рис. 18.4. Окно свойств формы

  7. Проделайте аналогичную операцию для пунктов Описание и Код_Контакты, расположив поля примерно так, как показано на рис. 18.5. Любой объект формы можно выделить щелчком мыши, при этом вокруг него появляется габаритная рамка с боковыми и угловыми маркерами масштабирования объекта. В левом верхнем углу объекта появляется большой квадрат, за который можно перетаскивать объект в пределах формы.

  8. Щелчком выделите подпись Описание. Затем еще раз щелкните на ней, чтобы перейти в режим редактирования. Замените имеющийся текст на Описание контакта.

  9. Захватите правый боковой маркер поля Описание мышью и растяните рамку поля до правого края формы.

Рис. 18.5. Добавление полей

Рис. 18.6. Готовая форма

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

  11. Повторите процедуры шагов 8-10 для всех трех полей. Разместите их и настройте подписи в соответствии с рис. 18.6.

  12. Чтобы привести оформление новой формы в соответствие с форматом формы, созданной в предыдущем упражнении, щелкните на кнопке Автоформат (AutoFormat) панели инструментов.

  13. Выберите в списке открывшегося окна диалога пункт Камень и щелкните на кнопке ОК. Access приведет фон формы, оформление, цвет и шрифт полей в соответствие с выбранным шаблоном.

  14. Щелчком на кнопке Вид перейдите в режим редактирования данных.

В форму будет выведено содержимое первой записи таблицы Список. Обратите внимание, что поле с подписью Фамилия имеет такой же список подстановки, который был настроен для поля Код_Контакты таблицы Список на предыдущем занятии. Структура списка подстановки была перенесена в форму в процессе перетаскивания поля на шаге 7.

  15. Закройте окно формы.

  16. В появившемся окне диалога введите в качестве имени новой формы слово С п и с о к и щелкните на кнопке О К.

Теперь форма Список появится на вкладке Формы (Forms) окна базы данных.

Примечание

Чтобы одновременно переместить поле вместе с его подписью, тащите объект за тело подписи (но не за маркер перемещения).


Упражнение 3. Элементы управления

При открытии конструктора форм на экране появляется панель элементов (см. рис. 18.3). Если ее нет, щелкните на кнопке Панель элементов панели инструментов. С помощью кнопок панели элементов в форму можно добавлять различные объекты, типы которых перечислены в табл. 18.1. Элементы управления форм и отчетов сходны между собой, поэтому такая же панель элементов имеется и в конструкторе отчетов, о котором мы поговорим на этом занятии позже, а все операции, рассматриваемые в этом и в следующем упражнении, одинаково применимы как к формам, так и к отчетам.

Примечание

В предыдущем упражнении в форму было добавлено шесть элементов управления: два поля ввода (Дата и Описание), одно поле со списком Код_Контакты и три надписи, по одной рядом с каждым полем.

ТАБЛИЦА 18.1. Элементы управления форм и отчетов
Значок | Название | Назначение
 | Надпись (Label) | Надписи создаются автоматически вместе с элементами типа текстовое поле, поле со списком и т. п. Они разъясняют смысл поля ввода. Дополнительные надписи могут использоваться для заголовков и пояснений
 | Поле (Text Box) | Используется для ввода и отображения информации полей таблиц и запросов, а также для вывода результатов вычислений
 | Группа переключателей (Option Group) | Группа переключателей ссылается на некоторое поле таблицы. Каждый переключатель группы соответствует определенному целочисленному значению этого поля
 | Выключатель (Toggle Button) | Позволяет вводить информацию типа да/нет. Величине «да» или «истина» соответствует утопленное положение выключателя
 | Переключатель (Option Button) | Элемент группы переключателей, в которой может быть отмечен только один из них (его кружок выглядит зачерненным)
 | Флажок (Check Box) | Предназначен для представления полей типа да/нет. Отмеченный квадратик соответствует величине «да», а пустой — «нет»
 | Поле со списком (Combo Box) | Разрешает как непосредственный ввод значения в поле, так и его выбор в раскрывающемся списке предопределенных значений
 | Список (List Box) | Позволяет выбирать данные из набора пунктов и не разрешает непосредственный ввод значений
 | Кнопка (Command Button) | Щелчок на такой кнопке выполняет команду, с помощью которой можно перейти в другую форму, переместиться по записям и выполнить многие другие операции

Рисунок | Рисунок любого графического формата с рамкой
Свободная рамка объекта (Unbound Object Frame) | Объект OLE, не связанный ни с каким источником данных
Присоединенная рамка объекта (Bound Object Frame) | Объект OLE, связанный с полем данных таблицы или запроса
Разрыв страницы (Page Break) | Линия, по которой формируется перевод страницы при выводе формы или отчета на принтер
Набор вкладок (Tab Control) | Позволяет разместить на одном и том же пространстве экрана несколько наборов элементов управления. Удобен в тех случаях, когда элементы легко разделяются на логические группы
Подчиненная форма/отчет (Subform/Subreport) | Вставляет в форму (или отчет) область с другой формой (или отчетом), связанной с главной
Линия (Line) | Добавляет прямую линию
Я Прямоугольник (Rectangle) | Рисует прозрачный или непрозрачный прямоугольник с цветной границей любой толщины
Другие элементы (More Controls) | Открывает меню с элементами управления, не вошедшими в панель элементов

Чтобы с помощью панели элементов добавить в форму декоративные объекты, выполните следующие шаги.

  1. Поместите указатель мыши на угол области формы.

  2. Перетащите этот угол вправо вниз, чтобы немного увеличить форму.

  3. С помощью команды Правка > Выделить все (Edit > Select All) выделите все элементы формы.

  4. Нажмите клавишу Ctrl и, не отпуская ее, нажатиями клавиш со стрелками передвиньте элементы формы так, чтобы они были отцентрированы относительно новых границ формы.

  5. Щелкните на кнопке Прямоугольник (Rectangle) панели элементов.

  6. Растяните мышью диагональ прямоугольника, чтобы он окружил все элементы формы (рис. 18.7).

  7. В палитре кнопки 11вет линии/границы (Line/Border Color) панели инструментов Форматирование (Formatting) выберите синий цвет.

Рис. 18.7. Добавление элементов формы

  8. В палитре кнопки Толщина линии/границы (Line/Border Width) выберите толщину 4 пиксела.

  9. Щелкните на кнопке Рисунок (Image) панели элементов.

  10. В левом нижнем углу формы растяните рамку рисунка.

Рис. 18.8. Параметры рисунка

  11. В открывшемся окне выбора файла найдите папку, в которую был установлен Office XP (обычно она называется Microsoft Office), раскройте вложенную в нее папку Office10\Broadcast, выберите файл NS_logo.gif и щелкните на кнопке ОК. (Вместо этого файла можете вставить любой другой не слишком большой рисунок.)

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

  12. Щелкните на рисунке правой кнопкой мыши и выберите в контекстном меню команду Свойства.

  13. В списке Установка размеров (Size Mode) вкладки Макет открывшегося окна параметров выберите пункт Вписать в рамку (Stretch), как показано на рис. 18.8. Теперь рисунок будет растягиваться и сжиматься вместе с рамкой элемента, подстраиваясь под ее размеры.

  14. Закройте окно параметров.


Упражнение 4. Заголовок и примечание

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

  1. В конструкторе формы Список щелкните на свободном пространстве правой кнопкой мыши.

  2. Выберите в контекстном меню команду Свойства, чтобы открыть окно свойств формы, показанное на рис. 18.9.

Рис. 18.9. Параметры форматирования формы

  3. В списке Режим по умолчанию (Default View) вкладки Макет выберите пункт Ленточная форма (Continuous Forms).

  4. Закройте окно параметров.

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

  5. Выберите команду Вид > Заголовок/примечание формы (View > Form Header/Footer), в окне конструктора формы появятся дополнительные области, показанные на рис. 18.10.

  6. Щелкните на кнопке Надпись (Label) панели элементов.

  7. Растяните мышью прямоугольник в разделе Заголовок формы (Form Header).

  8. Введите текст Список контактов.

  9. Нажмите клавишу Esc, чтобы выйти из режима редактирования текста, но оставить надпись выделенной.

  10. В списке Размер (Font Size) панели инструментов Форматирование выберите число 22.

  11. Щелкните на кнопке По центру (Center).

  12. Поместите указатель на верхний край полосы Область данных (Detail) и, нажав кнопку мыши, перетащите ее вверх, уменьшив область заголовка до необходимых размеров.

Рис. 18.10. Добавление заголовка и примечания

Рис. 18.11. Ленточная форма

  13. Повторив шаги 6-8, введите в примечание формы текст Если при добавлении контакта вы не нашли нужного человека в списке Фамилии, с помощью формы Контакты добавьте информацию об этом человеке в новую запись таблицы Контакты.

  14. Перетащите нижний край формы вверх, уменьшив ее по высоте.

  15. Щелкните на кнопке Вид.

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


Отчет

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


Упражнение 5. Мастер отчетов

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

  1. В окне базы данных щелкните на кнопке Отчеты (Reports).

  2. Дважды щелкните на значке Создание отчета с помощью мастера (Create Report By Using Wizard).

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

Рис. 18.12. Выбор полей для отчета

  3. В раскрывающемся списке Таблицы и запросы первого окна мастера отчета выберите таблицу Контакты.

  4. В списке Доступные поля выделите поле Фамилия.

  5. Щелчком на кнопке > переместите выбранное поле в список Выбранные поля.

  6. Повторяя шаги 4 и 5, добавьте в список Выбранные поля поля Имя, Адрес, Название Компании, Рабочий Телефон.

Примечание

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

  7. Выберите в списке Таблицы и запросы таблицу Список.

  8. Переместите в список Выбранные поля поля Дата и Описание, добавив их к по лям таблицы Контакты.

9. Щелкните на кнопке Далее.

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

Рис. 18.13. Пятое окно мастера отчетов

  10. Оставьте вариант Контакты (By Контакты) и щелкните на кнопке Далее.

  11. В следующем окне не назначайте дополнительной группировки. Просто щелк ните на кнопке Далее.

  12. Четвертое окно мастера отчета позволяет задать порядок сортировки записей. Выберите в списке 1 пункт Дата и щелкните на кнопке Далее.

Следующее окно, показанное на рис. 18.13, позволяет выбрать способ расположения полей и ориентацию страницы.

Рис. 18.14. Фрагмент отчета, сгенерированного мастером

  13. Выберите положение переключателя Структура 1 (Outline 1).

  14. Затем щелкните на кнопке Далее.

  15. В следующем окне мастера выберите вариант оформления Строгий (Corporate) и щелкните на кнопке Далее.

  16. Введите в качестве заголовка текст Список контактов и щелкните на кнопке Готово.

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


Упражнение 6. Конструктор отчетов

Если внимательно присмотреться к отчету, показанному на рис. 18.14, можно заметить несколько недостатков. Вот их список:

  • названия таких полей, как Фамилия и Имя, явно лишние, их следует убрать;

  • информация о человеке занимает слишком много места, ее можно представить компактнее;

  • некоторые подписи следует заменить более понятными;

  • поле Дата слишком коротко, оно не вмещает дату в длинном формате. Давайте исправим указанные недочеты в конструкторе отчетов.

  1. Чтобы переключиться в режим конструктора, выберите команду Вид > Конструктор.

Рис. 18.15. Конструктор отчетов

В схеме отчета (рис. 18.15) присутствует несколько разделов. Их назначение указано в табл. 18.2. Поля и подписи можно размещать в любом разделе отчета, регулируя этим их положение на странице.

  2. Щелчком выделите надпись Фамилия.

  3. Нажатием клавиши Delete удалите надпись.

ТАБЛИЦА 18.2 . Разделы отчета
Раздел | Назначение
Заголовок отчета (Report Header) | Печатается в самом начале отчета один раз. Выводится и скрывается командой Вид > Заголовок/примечание отчета (View > Report Header/Footer)
Верхний колонтитул (Page Header) | Печатается в верхнем поле каждой страницы. Выводится и скрывается командой Вид > Колонтитулы (View > Page Header/Footer)
Заголовок группы КолКонтакты (КонтактыЮ Header) | Появляется в начале каждой группы записей, соответствующих очередному значению поля КодКонтакты (то есть того поля, по которому назначена группировка)
Область данных (Detail) | Основные данные отчета
Нижний колонтитул (Page Footer) | Печатается в нижнем поле каждой страницы. Выводится и скрывается командой Вид > Колонтитулы (View > Page Header/Footer)
Примечание отчета (Report Footer) | Печатается в самом конце отчета. Выводится и скрывается командой Вид > Заголовок/приме чание отчета (View > Report Header/Footer)

  4. Повторяя шаги 2 и 3, удалите из раздела Заголовок группы Код_Контакты надписи Имя, Дата и Описание. Назначение соответствующих полей очевидно и не нуждается в пояснении.

  5. Щелкните на горизонтальной линии, расположенной ниже поля Назвакие Компании, правой кнопкой мыши и выберите команду Вырезать (Cut).

  6. Аналогичным приемом удалите три оставшиеся линии раздела Заголовок группы Код_Контакты. Нет смысла выводить подписи полей адреса, названия компании и телефона в заголовке каждой группы. Достаточно будет поместить соответствующие надписи в верхний колонтитул страницы.

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

  8. Щелчком выделите надпись Адрес. Нажмите клавиши Ctrl+X, чтобы вырезать ее.

  9. Щелкните на заголовке раздела Верхний колонтитул и нажмите клавиши Ctrl+V, чтобы вставить вырезанную надпись в верхний колонтитул.

  10. Выделяя надписи колонтитула и перетаскивая их мышью за маркер верхнего левого угла либо передвигая нажатием клавиши Ctrl и клавиш со стрелками, разместите их так, как показано на рис. 18.16.

Рис. 18.16. Перемещение надписей между разделами

  11. Щелкните на надписи Адрес. Повторным щелчком на ней включите режим редактирования и замените текст на Почтовый адрес.

  12. Описанным выше приемом измените текст подписей НазваниеКомпании и РабочийТелефон соответственно на Компания и Телефон.

  13. Переставьте поля раздела Заголовок группы Код_Контакты, разместив их в две строки. Фамилия и имя — в первой строке, а остальные три поля — во второй.

  14. Щелкните правой кнопкой мыши на жирной линии, расположенной в разделе Заголовок отчета. Выберите в контекстном меню команду Копировать (Copy).

  15. Щелкните на заголовке раздела Заголовок группы Код_Контакты и нажмите клавиши Ctrl+V, чтобы вставить в этот раздел дубликат линии.

  16. Нажимая клавиши Ctrl+V, переместите линию вниз, под вторую строку полей данных.

  17. Снова нажмите Ctrl+V, добавив вторую линию вдоль верхнего края раздела.

  18. Перетащите заголовок раздела Область данных вверх, убрав излишнее пустое пространство.

  19. Щелчком выделите поле Дата. Увеличьте его горизонтальный размер, перетащив вправо серединный маркер правой границы поля.

Рис. 18.17. Модифицированная структура отчета

  20. Растяните поле Описание вправо до границы отчета. Окончательный вид новой структуры отчета показан на рис. 18.17.

  21. С помощью команды Вид > Предварительный просмотр (View > Print Preview) переключите отчет в режим вывода данных. В новом варианте, показанном на рис. 18.18, информация размещается намного компактнее.

  22. Закройте отчет. При появлении запроса о необходимости сохранения новой структуры отчета щелкните на кнопке Да.

Примечание

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

Рис. 18.18. Просмотр нового варианта отчета


Упражнение 7. Группировка и сортировка

Отчет, который вы сконструировали в двух предыдущих упражнениях, имеет еще один существенный недостаток. Фамилии людей из списка Контакты выводятся не по алфавиту. Мастер отчетов автоматически сгруппировал данные таблицы Список по их принадлежности к тем или иным записям таблицы Контакты, которая определяется связью между полями Код_Контакты этих двух таблиц. По указанной причине фамилии в отчете упорядочены по возрастанию числового параметра Код_Контакты — идентификатора записей таблицы Контакты. Это неудобно, в отчетах с большим числом записей при такой сортировке будет довольно трудно отыскать нужного человека. Есть смысл изменить порядок сортировки, для этого выполните следующие шаги.

  1. Щелкните на кнопке Отчеты окна базы данных.

  2. Выделите значок отчета Список контактов.

  3. Щелчком на кнопке Конструктор панели инструментов окна базы данных от- кройте отчет в режиме конструктора.

  4. Щелкните на кнопке Сортировка и группировка (Sorting And Grouping) панели инструментов, чтобы открыть окно диалога, показанное на рис. 18.19.

Рис. 18.19. Сортировка и группировка

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

Казалось бы, можно просто изменить поле сортировки Код_Контакты на Фамилия, и записи в отчете сразу же выстроятся по алфавиту. Но в этом случае для четырех людей с одинаковой фамилией Петров будет выведен только один заголовок группы, ниже которого разместится список контактов со всеми Петровыми. Вспомните, что новый заголовок группы выводится только для каждого нового значения поля, по которому выполняется группировка. Код_Контакты — уникальный идентификатор записей таблицы Контакты, группировка по которому обеспечивает вывод в отчет всех записей этой таблицы. Для сортировки записей по алфавиту фамилий и имен следует добавить в список окна диалога Сортировка и группировка (Sorting And Grouping) соответствующие поля, разместив их выше поля группировки Код_Контакты.

  5. Щелкните в третьей строке на кнопке раскрывающегося списка Поле/выражение (Field/Expression).

  6. Выберите пункт Фамилия.

  7. В раскрывающемся списке Поле/выражение четвертой строки окна Сортировка и группировка выберите пункт Имя.

Примечание

При добавлении нового поля сортировки Access автоматически назначает ему порядок сортировки По возрастанию. Чтобы реализовать обратный порядок записей, выберите в раскрывающемся списке ячейки Порядок сортировки соответствующей строки пункт По убыванию (Descending).

  8. Щелчком на кнопке строки Фамилия выделите ее.

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

  10. Повторяя шаги 8 и 9, разместите строку Имя между строками Фамилия и Код_Контакты, как показано на рис. 18.20.

Рис. 18.20. Добавление полей сортировки

  11. Закройте окно Сортировка и группировка.

Примечание

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

  1. Щелкните на кнопке Вид панели инструментов, чтобы вывести отчет в режиме предварительного просмотра.

Теперь записи сначала сортируются по фамилиям, затем по именам. После этого для каждой новой записи таблицы Контакты появляется заголовок группы (так как величины поля Код_Контакты для всех записей различны). Ниже каждого такого заголовка из таблицы Список выводятся все контакты, соответствующие данному значению величины Код_Контакты, то есть данному человеку (рис. 18.21).

Рис. 18.21. Окончательный вид отчета

  13. Закройте отчет.


Вывод результатов

Несмотря на многообразие объектов баз данных, все они печатаются с помощью одних и тех же приемов. Вид печатной копии отчета или формы определяется расположением элементов управления в окне конструктора. Таблицы и запросы вообще практически не имеют параметров форматирования. Ширина и высота ячеек, а также шрифт их содержимого настраиваются непосредственно в режиме просмотра таблицы или запроса с помощью команд меню Формат (Fornrat). Перед печатью данных полезно вывести отчет в режиме предварительного просмотра, после чего можно распечатывать его на бумагу.


Упражнение 8. Предварительный просмотр

Перед выводом объекта базы данных на принтер нужно настроить параметры страницы и проверить правильность форматирования в режиме предварительного просмотра. Давайте выполним все эти действия на примере таблицы Контакты.

  1. В окне базы данных щелкните на кнопке Таблицы.

  2. Двойным щелчком на значке Контакты откройте эту таблицу в режиме редактирования данных.

  3. Увеличьте ширину столбца Адрес (Address), перетащив вправо его правую границу, чтобы адреса не обрезались по длине.

  4. Выберите команду Формат > Подтаблица > Развернуть все (Format > Subdatasheet > Expand All), чтобы отобразить записи таблицы Список.

  5. Выделите столбец Код_Контакты, щелкнув на его заголовке.

  6. С помощью команды Формат > Скрыть столбцы (Format > Hide Columns) скройте выделенный столбец. Этот служебный столбец не нужно печатать.

  7. Щелкните на заголовке столбца Ключ подчиненной таблицы.

  8. Повторным выполнением команды Формат > Скрыть столбцы уберите и этот столбец.

Примечание

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

  9. Выберите команду Файл > Предварительный просмотр. Вы увидите предпола-гаемое > оформление бумажной копии таблицы.


Упражнение 9. Печать таблиц и запросов

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

  1. Выберите команду Файл > Параметры страницы (File > Page Setup). Откроется окно диалога, которое позволяет настроить размер страницы, ее ориентацию и поля (рис. 18.22).

  2. На вкладке Поля (Margins) увеличьте левый отступ до 40 мм. Изменение полей отразится на образце, демонстрируемом в разделе Образец (Sample).

  3. Щелкните на вкладке Страница (Page). При необходимости измените ориентацию на Альбомная (Landscape).

Ориентация и поля страницы определяют, сколько записей сможет поместиться на одном листе.

  4. Щелкните на кнопке ОК.

  5. Выберите команду Файл > Печать (File > Print). Откроется окно диалога Печать (Print).

  6. В раскрывающемся списке Имя (Name) выберите принтер. В разделе Копии (Copies) укажите необходимое число копий и щелкните на кнопке ОК.

Рис. 18.22. Параметры страницы


Упражнение 10. Файловые операции

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

  1. Чтобы сжать базу данных, выполните команду Сервис > Служебные программы > Сжать и восстановить базу данных (Tools > Database Utilities > Compact And Repare Database).

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

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

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

  3. Закройте базу данных.

  4. Щелкните на кнопке Открыть панели инструментов.

  5. В окне открытия файла выделите значок Контакты.mdb.

  6. Щелкните на стрелке палитры кнопки Открыть и выберите пункт Монопольно (Open Exclusive). Такой режим открытия предотвращает одновременный доступ к базе данных другого пользователя через локальную сеть.

  7. Выберите команду Сервис > Защита > Задать пароль базы данных (Tools > Security > Set Database Password).

  8. В поле Пароль (Password) открывшегося окна диалога введите пароль.

  9. Для проверки повторно введите тот же пароль в поле Подтверждение (Verify).

  10. Щелкните на кнопке ОК. Теперь для следующего открытия базы данных потребуется вводить пароль.

Примечание

Чтобы удалить пароль, выберите команду Сервис > Защита > Удалить пароль базы данных (Tools > Security > Remove Database Password), введите старый пароль и щелкните на кнопке ОК.

Еще одним полезным инструментом Access является возможность пересылки информации из базы данных в другие приложения Office XP. Например, чтобы для выполнения вычислений переслать таблицу Контакты в книгу Excel, выполните следующие операции.

  11. Щелкните на кнопке Таблицы окна базы данных.

  12. Выделите таблицу Контакты.

  13. Выберите команду Сервис > Связи с Office > Анализ в MS Excel (Tools > Office Links > Analyze It With MS Excel).

Примечание

Кроме передачи данных в Excel вы можете с помощью команды Публикация в MS Word (Publish It With MS Word) того же подменю опубликовать их в Word или, выполнив команду Слияние с MS Word (Merge It With MS Word), использовать информацию базы данных в качестве источника данных для слияний, которые обсуждались на занятии 8.

Access автоматически запустит Excel XP, создаст новую книгу с одним листом и перешлет в его ячейки данные из таблицы Контакты.


Контрольное упражнение

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

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

  2. Включите в отчет поля даты и описание контакта, а также фамилию и имя.

  3. Выберите вариант просмотра по таблице Список.

  4. Настройте группировку записей по дате.

    • Как с помощью мастера отчетов сгруппировать записи по дате ?

  5. Выберите стиль отчета Блок (Block).

  6. В четвертом окне мастера задайте сортировку по фамилиям и именам в обратном алфавитном порядке.

    • Как назначить обратную алфавитному порядку сортировку по двум полям?

  7. Назовите новый отчет Контакты по датам.

  8. Переключитесь в режим конструктора отчетов.

  9. Уберите рамку всех полей.

    • Как быстро убрать рамку всех элементов управления?

  10. Перенесите первое поле даты (которое начинается с функции =Format) из раздела Область данных в раздел Заголовок группы Дата.

  11. Увеличьте ширину поля Дата, чтобы в него помещалась дата в длинном формате. При необходимости переместите другие поля.

  12. Замените текст заголовков полей на корректные русские подписи.

  13. Распечатайте полученный отчет.


Подведение итогов

Это занятие завершает серию упражнений, посвященных изучению баз данных Access. Теперь вы умеете с помощью мастеров строить формы и отчеты, обеспечивающие форматированный вывод записей таблиц базы данных на экран и на печать. Вы познакомились с конструкторами форм и отчетов, позволяющими изменять любые параметры этих объектов Access, и научились распечатывать информацию из базы данных [ Если вы собираетесь постоянно работать с Access, лучшим помощником в повседневной работе будет книга Б. Карпова «Microsoft Acccess 2002: справочник» («Питер», 2001). ].

Три следующих занятия посвящены приложению Outlook ХР — клиенту электронной почты и всемогущему планировщику вашей работы.