7.1. Практическая работа в Microsoft Access

Данный параграф является руководством по созданию простой базы данных в среде MS Access. Для удобства используется терминология, принятая в MS Ac¬cess. Так, отношения называются таблицам, кортежи - записями, атрибуты - по¬лями. В работе используются материалы московских авторов [15].
7.1.1. Создание базы данных.
Программа Access позволяет создавать некоторые часто встречающиеся структуры данных с помощью мастера таблиц. Прежде чем заново строить структуру таблицы, подумайте, нельзя ли воспользоваться одним из предлагаемых шаблонов. Это позволит сэкономить время.
В качестве примера создадим базу данных, предназначенную для хранения информации о людях, с которыми мы контактируем.
Упражнение 1. Создание таблицы.
• Запустите Microsoft Access, выполнив соответствующую команду (Пуск ► Программы ► Access).
• В появившемся окне в разделе Создание щелкните на пункте Новая база данных.
                                  

 

В появившемся окне диалога выберите для размещения новой базы данных папку Мои документы. В поле Имя файла введите имя Контакты. Затем щелкните на кнопке Создать.
При этом откроется окно, показанное на рис. 32. Оно является основным окном базы и позволяет открывать, добавлять и удалять любые объекты базы данных.
            

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

 

В левой области окна находятся кнопки групп объектов. В его правой части расположен список объектов выбранного типа, имеющихся в текущей базе дан¬ных, а также значки команд, позволяющих создавать новые объекты данного типа. Пока что в этой базе данных нет ни одного объекта.
1. Щелкните на кнопке Таблицы.
2. Дважды щелкните на значке Создание таблицы с помощью мастера. В первом окне мастера, показанном на рис. 33, нужно указать подходящую структуру и выбрать в ней необходимый набор полей. В дальнейшем поля можно будет переименовать.

                    

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

1. Выберите положение переключателя Деловые.
2. В списке Образцы таблиц выберите пункт Контакты.
3. Щелкните на пункте Имя списка Образцы полей.
4. Щелкните на кнопке со стрелкой вправо, чтобы добавить выбранное поле в структуру создаваемой таблицы.
5. Повторяя шаги 8 и 9, добавьте в список Поля новой таблицы поля: Фамилия, Адрес, Имя организации и Рабочий Телефон.
6. Щелкните на кнопке Далее.
7. В поле второго окна мастера введите слово Контакты, которое будет играть роль имени таблицы.

                                                   

8. Оставьте выбранным положение переключателя «Microsoft Access автоматически определяет ключ». При этом Access добавляет в таблицу дополнительное ключевое поле Код_ Контакты, которое играет роль первичного ключа (Аналогичную роль выполняет инвентарный номер книги в публичной библиотеке). Затем щелкните на кнопке Далее.
9. В открывшемся третьем окне мастера щелкните на кнопке Готово.
Мастер сгенерирует таблицу и откроет ее в режиме ввода данных.
Упражнение 2. Заполнение и редактирование таблицы
1. Щелкните на поле Имя и введите какое-нибудь имя. Access автоматически добавит в созданную в предыдущем упражнении таблицу первую запись, а строка новой записи сместится вниз.
2. Введите фамилию в поле Фамилия.
3. Заполните все остальные поля первой записи.
4. Щелкните на поле Имя последней строки и введите имя еще одного человека, его фамилию, адрес, название компании и телефон. Добавьте подобным образом несколько записей, чтобы таблица стала такой, как показано на рис. 34.
 

Рис. 34. Заполнение таблицы

Если Вы ошиблись при вводе, просто щелкните на ячейке с неверными данными и отредактируйте их. Стандартные заголовки столбцов часто оказываются неудобными, поэтому Access позволяет заменять их.
5. Щелкните на заголовке Имя организации правой кнопкой мыши и выбери¬те команду Переименовать.
6. Введите слово Название, которое заменит подсвеченный заголовок Имя организации; нажмите клавишу Enter.
7. Щелчком на кнопке Первая запись переместите указатель текущей записи в начало таблицы.
8. Два раза щелкните на кнопке Следующая запись, чтобы перейти к четвертой записи.
9. Щелкните на кнопке Удалить запись панели инструментов.
10. В появившемся окне запроса, информирующем о невозможности отмены операции удаления записи, щелчком на кнопке Да подтвердите необходимость удаления. Обратите внимание, что ключевое поле КодКонтакты автоматически заполняется некоторыми числами. Эти числа не обязательно образуют непрерывную последовательность. Единственным условием является их уникальность. Содержимое ключевого поля различно для всех записей таблицы, что позволяет однозначно идентифицировать запись. Такие поля используются для формирования связей таблиц, о которых Вы узнаете позже.
11. Щелкните на кнопке Отменить удаление  панели инструментов, чтобы вернуть четвертую запись.
Конструктор таблиц предназначен для задания и изменения структуры таблицы. С помощью конструктора можно формировать свои сколь угодно сложные таблицы с полями любого типа (Числовые, текстовые и т.д.).
Упражнение 3. Структура таблицы
В упражнениях 1 и 2 была создана и заполнена таблица для хранения данных о людях, с которыми Вы контактируете. Теперь давайте с помощью конструктора добавим в базу данных еще одну таблицу, предназначенную для за¬писи всех случаев контакта с людьми из первой таблицы.
Щелчком на кнопке Окно базы данных переключитесь на список таблиц базы данных.
 

1. Дважды щелкните на значке Создание таблицы в режиме конструктора. Окно конструктора, показанное на рис. 35, состоит из двух частей. В верхней части отображается список полей таблицы, а в нижней — свойства выделен¬ного поля.
2. В первую клетку таблицы введите слово Дата, которое будет играть роль названия нового поля.
3. Щелкните на ячейке Тип данных первой строки списка полей. Здесь необ¬ходимо выбрать тип поля, который определяет структуру и размер данных.

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

1. Щелкните на появившейся стрелке раскрывающегося списка ячейки Тип данных и выберите пункт Дата/время.
2. Нажмите клавишу Tab и введите расшифровку назначения поля (Дата контакта). Такие описания вводить не обязательно, но их наличие помогает разобраться в структуре таблицы.
3. Щелкните на второй ячейке столбца Имя поля и введите имя Описание.
4. Задайте для второго поля тип Текстовый.
5. Укажите назначение поля.
Кроме даты и описания контакта таблица данных должна содержать инфор¬мацию о том, с кем Вы контактировали. Но список людей хранится в таблице
Контакты, поэтому в новой таблице не нужно заново вводить имя и фамилию. Достаточно лишь добавить ссылку на одну из записей таблицы Контакты. Эта ссылка будет иметь числовой тип и содержать число, равное значению поля КодКонтакты соответствующей записи таблицы Контакты.
1. Добавьте еще одно поле с именем Код Контакты и типом Числовой.
Теперь нужно добавить индексированное поле и назначить его ключом, однозначно идентифицирующим записи таблицы. Индексированные поля, или индексы, отличаются от обычных полей тем, что для них Access создает списки, позволяющие выполнять быструю сортировку и поиск. Таблица может содержать несколько индексов. Ключ  это специальный индекс, идентифицирующий записи. Значения такого поля должны быть уникальными. Его наличие не обязательно, но оно так часто используется, что при отсутствии ключа Access напоминает об этом и предлагает автоматически добавить ключевое поле.
1. Добавьте поле Ключ и назначьте ему тип Счетчик. Такой тип данных избавляет пользователя от необходимости ввода значений ключевого поля и инициирует автоматическую генерацию уникальных значений.
2. Сохраняя активной строку Ключ, щелкните на кнопке Ключевое поле . На кнопке этой строки появится значок ключа, показывающий особый статус поля.
3. Щелкните на кнопке закрытия окна конструктора .
4. Access спросит о необходимости сохранения структуры таблицы. В ответ щелкните на кнопке Да.
5. В открывшемся окне диалога (рис. 36) введите имя Списо
к.
 

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

6. Щелкните на кнопке ОК.
Упражнение 4. Список подстановки
Полученную таблицу Список необходимо наполнить конкретной информацией. Для этого выполните следующие шаги.
1. Щелчком на кнопке Окно базы данных  переключитесь на список таблиц базы данных.
2. Дважды щелкните на значке Список. Выбранная таблица откроется в режиме просмотра данных.
3. Добавьте несколько записей в соответствии с рис. 37.

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

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

Не забывайте, что числа в столбце Код Контакты должны соответствовать номерам записей таблицы Контакты, описывающих людей, с которыми Вы контактировали. Согласитесь, что искать соответствующие номера очень неудобно. Access позволяет автоматизировать эту операцию с помощью списка подстановки, который настраивается следующим образом.
4. Щелкните на кнопке Вид панели инструментов. Откроется окно конструктора таблицы.
5. В списке типа данных для поля Код Контакты выберите пункт Мастер подстановок.
6. В первом окне мастера оставьте выбранным положение переключателя. В этом случае объект столбец подстановки будет использовать значения из таблицы или запроса. После этого щелкните на кнопке Далее. Три положения переключателя второго окна мастера выводят на экран список таблиц, запросов или объединяют эти два списка. Здесь нужно выбрать таблицу или запрос на роль источника подстановки. В нашем случае база данных кроме таблицы Список содержит только один объект  таблицу Контакты, которая и окажется выбранной в окне мастера.
7. Щелкните на кнопке Далее. Третье окно мастера, показанное на рис. 38, предлагает выбрать из таблицы Контакты поля, участвующие в подстановке. Этот список обязан содержать то поле, значения которого должны помещаться в поле Код Контакты, то есть одноименное поле таблицы Контакты.
8. Щелкните на пункте Код Контакты и затем на кнопке со стрелкой вправо.


 


 

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

9. В список источника подстановки следует также добавить те поля, содержимое которых должно отображаться вместо численного значения, помещаемого из поля Код Контакты таблицы Контакты В нашем случае удобно выбирать людей по их именам и фамилиям.
10. Добавьте в список Выбранные поля пункты Фамилия и Имя.
11. Затем щелкните на кнопке Далее.
12. В следующем окне мастер продемонстрирует два столбца таблицы-источника, скрыв столбец Код Контакты, содержащий идентификатор записи.
13. В поле последнего окна введите название Контакт, которое заменит имя столбца Код Контакты, и щелкните на кнопке Готово.
14. В появившемся окне диалога щелчком на кнопке Да подтвердите необходимость сохранения построенной структуры.
15. Щелкните на кнопке Вид, чтобы снова переключиться в режим ввода данных.
Теперь в третьем столбце таблицы вместо чисел видны фамилии, соответствующие этим числам, хотя само значение поля Код Контакты не изменилось. Access автоматически ищет соответствующую запись таблицы Контакты по числу, содержащемуся в поле Код Контакты, и выводит в ячейку текст поля Фамилия  второго поля таблицы Контакты из выбранных в окне мастера подстановки.
Добавим в таблицу Список еще одну запись.
1. Щелкните на нижней ячейке столбца Дата и введите дату 05.02.05.

2. Нажмите клавишу Tab и напечатайте текст «Письмо с предложениями о сотрудничестве».
3. Снова нажмите клавишу Tab и щелкните на появившейся кнопке раскры¬вающегося списка, как показано на рис. 39. Теперь Вы можете выбирать лю¬дей из списка подстановки, сформированного на базе полей Фамилия и Имя таблицы Контакты.
 

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

4. Щелкните на втором пункте списка.
Access автоматически отыщет в таблице Контакты значение поля КодКонтакты и поместит его в соответствующей ячейке таблицы Список. В нашем случае вместо кода 2 будет помещена информация о Викторе Сазанове.
Упражнение 5. Связь таблиц
В предыдущем упражнении с помощью мастера подстановок была сформирована связь между двумя таблицами. Такая связь позволяет установить правила взаимодействия между таблицами. Список подстановок можно было организовать и без связи. Но представьте, что Вы удалите из таблицы Контакты запись, на которую ссылаются некоторые записи таблицы Список. В такой ситуации останутся описания контактов, в которых потеряны фамилии людей. Наличие пра¬вильно организованной связи позволяет избежать подобных неприятностей.
1. Выберите команду Сервис ► Схема данных. Откроется окно, схематиче¬ски изображающее связи базы данных. На рис. 40 видно, что линия связи со¬единяет поля Код Контакты таблицы Контакты и Контакт таблицы Спи¬сок.
Примечание. Данная связь соединяет ключевое и обычное поля. Это связь типа «Один ко многим», когда одной записи таблицы Контакты может соответствовать несколько записей таблицы Список, но не наоборот.

Рис. 40. Схема данных Для тренировки

Для тренировки давайте удалим связь, а затем создадим ее заново.
1. Щелчком выделите линию связи.
2. Нажмите клавишу Delete. В ответ на появившийся запрос щелкните на кнопке Да. Связь исчезнет.
3. Поместите указатель мыши на пункт Код_Контакты таблицы Контакты.
4. Нажмите кнопку мыши и перетащите указатель на поле Контакт таблицы Список.
5. В открывшемся окне диалога щелкните на кнопке Создать. Связь появится вновь.
Чтобы настроить параметры связи, выполните следующие шаги.


 

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

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

2. Установите флажок Каскадное удаление связанных записей. Теперь при удалении записи таблицы Контакты (то есть удалении информации о конкретном человеке) будут удалены все соответствующие записи таблицы Список (то есть все описания контактов с этим человеком). Если указанный флажок сброшен, удаление тех записей таблицы Контакты, на которые ссылается хотя бы одна запись таблицы Список, запрещено.
Примечание. Установка флажка Каскадное обновление связанных полей приведет к тому, что при обновлении поля Код_Контакты таблицы Контакты будут автоматически об¬новляться одноименные поля в соответствующих записях таблицы Список.
1. Щелкните на кнопке ОК.
2. Закройте окно Схема данных.
3. В окне базы данных дважды щелкните на значке таблицы Контакты. В открывшемся окне таблицы видны небольшие знаки «плюс», расположенные в левой части записей. Их присутствие говорит о наличии связи ключевого поля таблицы с другой таблицей.
4. Щелкните на знаке «плюс» записи для Виктора Сазанова. Откроется вложенная таблица, содержащая те записи таблицы Список, значение поля КодКонтакты которых равно величине одноименного поля записи для Виктора Сазанова (рис. 42).
Примечание. При раскрытии фрагмента связанной таблицы знак «плюс» превращается в знак «минус». Чтобы скрыть дополнительную таблицу, щелкните на нем еще раз.

 

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

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

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

Типы данных в Microsoft Access

Название типа

Назначение

Текстовый

Текст длиной до 255 символов

Числовой

Числа различных форматов

Дата/время

Дата и/или время

Счетчик

Счетчик, который автоматически увеличивается на едини­цу с добавлением каждой новой записи

Денежный

Денежные значения различных форматов

Логический

Величины, способные принимать только два значения: да/нет или 1/0

Поле MEMO

Текст длиной до 65 535 символов

Поле объекта OLE

Поля, позволяющие вставлять рисунки, звуки и данные других типов

Г иперссылка

Ссылки, дающие возможность открывать объект Access (таблицу, форму, запрос и т. п.), файл другого приложения или web-страницу

Упражнение 6. Изменение параметров поля

1. В окне базы данных выделите таблицу Список и щелкните на кнопке Конструктор, расположенной в верхней части окна. Выбранная таблица откроется в режиме конструктора.
2. Описание контакта может быть достаточно длинным, а максимальная дли¬на текстовых полей ограничена 256 символами. Поэтому измените тип данных поля Описание с Текстовый на Поле MEMO (Рис. 43).

Рис. 43. Выбор типа поля

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