6371
.pdf40
около года и более не рассматриваются). Указанное свойство устанавлива-
ется в строке (раскрывающемся списке) "Размер поля" на вкладке "Об-
щие", расположенной в левой нижней части окна конструктора в области
"Свойства поля".
|
|
Таблица 5 |
|
Структура таблицы " Туры" |
|
|
|
|
Имя поля |
Тип данных |
|
|
|
|
КодТура |
Счетчик |
|
|
|
|
НазваниеТура |
Текстовый |
|
|
|
|
МестоОтдыха |
Мастер подстановок (из таблицы "МестоОтдыха") |
|
|
|
|
ВидОтдыха |
Мастер подстановок (из таблицы "ВидОтдыха") |
|
|
|
|
Продолжительность |
Числовой (размер поля – |
байт) |
|
|
|
Стоимость |
Числовой (размер поля – |
длинное целое) |
|
|
|
НазваниеФирмы* |
Мастер подстановок (из таблицы "Фирмы") |
|
|
|
|
* – поле добавляется позже, после создания соответствующей таблицы ("Фир-
мы", п. 2.4).
По условию работы в таблицу "Туры" вводятся стоимости туров в валюте принимающей страны. На территории России продажа туров воз-
можна только за рубли. Именно эта стоимость, которая может быть рас-
считана с помощью соответствующего запроса (см. раздел 3.7), интересует клиента. В то же время иностранные контрагенты анонсируют стоимость своих услуг в валюте, поэтому вводить именно ее в таблицу, предназна-
ченную для внутреннего употребления, вполне оправданно.
В случае отсутствия в рекламных объявлениях названий туров предлагается придумать их самостоятельно. Также самостоятельно могут быть заданы продолжительность и стоимость тура с учетом реалий и здра-
вого смысла. Вид отдыха выбирается из значений данного реквизита, ис-
ходя из характера тура.
41
Создание новых таблиц в Access–2007 имеет некоторые особенно-
сти. Например, структуру таблицы можно задать непосредственно в режи-
ме таблицы.
При открытии пустой БД на экране появляется автоматически соз-
данная таблица из трех столбцов. Первый столбец назван "Код" и предна-
значен для создания ключевого поля. Второй столбец (пустой, озаглавлен-
ный "Добавить поле") предназначен для создания следующего поля.
Для переименования поля надо вызвать быстрое меню его заголов-
ка (ячейки, где находится имя поля) и выбрать команду "Переименовать столбец". Изменить тип данных можно с помощью соответствующего рас-
крывающегося списка в группе кнопок "Форматирование и тип данных",
находящихся на ленте на вкладке "Таблица".
Для задания ключевого поля надо выделить его и нажать кнопку
"Ключевое поле" группы "Сервис" на вкладке "Конструктор".
После задания структуры таблицы можно выйти из режима конст-
руктора в режим таблицы для ввода данных. Режим выбирается с помо-
щью раскрывающегося списка – единственной кнопки из группы "Режи-
мы". При переходе к режиму таблицы в случае изменения структуры про-
грамма предлагает ее сохранить. При первом сохранении рекомендуется переименовать таблицу, удалив предлагаемое по умолчанию название
"Таблица1" и введя нужное название с клавиатуры.
Другой способ переключения режимов работы с компонентом БД – выбор быстрого меню компонента нажатием правой кнопки мыши на пик-
тограмме рядом с именем компонента в заголовке окна и выбор в быстром меню нужного режима.
В Access–2007 существует еще один режим работы с компонентами БД – режим макета, который по своим возможностям представляет нечто среднее между режимами компонента и конструктора.
42
Для создания следующей таблицы надо выбрать одну из кнопок вкладки "Создание" группы "Таблица": "Конструктор таблиц" – для зада-
ния структуры в режиме конструктора или "Таблица" – для задания струк-
туры непосредственно в режиме таблицы. При создании таблиц с неболь-
шим числом полей (таблицы "Валюта", "ВидОтдыха", "МестоОтдыха")
проще работать в режиме таблицы. При создании таблиц с большим чис-
лом полей и задании их свойств, отличных от присваиваемых по умолча-
нию, проще работать в режиме конструктора (таблицы "Страны", "Туры").
Задать мастер подстановок в Access–2007 можно также непосредст-
венно в режиме таблицы. Для этого надо вызвать быстрое меню заголовка
(как правило, пустого столбца) и выбрать команду "Столбец подстановок".
Альтернативный вариант – выделить нужное поле и выбрать ту же коман-
ду в группе кнопок "Поля и столбцы" на вкладке "Режим таблицы". Запус-
кается мастер подстановок. Дальнейшие действия практически аналогичны предыдущим версиям программы.
2.4. Мастер таблиц. Некоторые свойства полей
Мастер таблиц позволяет создавать таблицы с использованием уже готовой структуры, поля которых наиболее соответствуют реквизитам объектов нужного класса. Данный способ создания таблиц рассматривает-
ся на примере таблицы "Фирмы".
Задание А. Создать структуру таблицы "Фирмы" согласно приве-
денному ниже описанию.
В ранних версиях Access в окне базы данных выбираем "Создание таблицы с помощью мастера". В окне "Создание таблиц" надо выбрать об-
разец из представленных в списке в левой части окна. Предлагается вы-
брать образец "Поставщики" из группы "Деловые", структура которого наиболее близка к таблице, предназначенной для сведений об организа-
ции-контрагенте.
43
В средней части окна представлены образцы полей. Во вновь созда-
ваемую таблицу можно включить все поля нажатием кнопки " >> ", но, как правило, лучше выбрать группу полей, наиболее подходящую для нужного класса объектов конкретной БД. Для этого надо поочередно выделять щелчком эти поля в списке и нажимать кнопку " > ".
Обязательным является поле "КодПоставщика". По условиям зада-
ния надо также выбрать поля "НазваниеПоставщика", "Адрес", "НомерТе-
лефона" и "УсловияОплаты". Рекомендуется сразу переименовать некото-
рые поля, а именно "КодПоставщика" на "КодФирмы" и "НазваниеПо-
ставщика" на "НазваниеФирмы". Для этого надо выделить нужное поле и нажать кнопку "Переименовать поле…" в правом нижнем углу окна.
Следующий шаг – задание имени для создаваемой таблицы (стереть
"Поставщики" и написать "Фирмы"), а также выбрать способ определения ключа. Ключевым задается поле "КодФирмы", которому программой по умолчанию присвоен тип "Счетчик". Поэтому переключатель вариантов способа определения ключа оставляется в положении "Microsoft Access
автоматически определяет ключ".
Таблица 6
|
Структура таблицы "Фирмы" |
|
|
Имя поля |
Тип данных |
|
|
КодФирмы |
Счетчик |
|
|
НазваниеФирмы |
Текстовый |
|
|
Телефон |
Текстовый (с использованием маски ввода) |
|
|
Адрес |
Текстовый (с использованием условия на значение) |
|
|
КонтактноеЛицо |
Текстовый |
|
|
УсловияОплаты |
Мастер подстановок (фиксированный набор значений) |
|
|
Следующий шаг – задание связей с другими таблицами, – пропус-
каем (кнопка "Далее"). На последнем шагу рекомендуется поставить пере-
44
ключатель в положение "Изменить структуру таблицы" с целью ее дора-
ботки в режиме конструктора и нажать "Готово".
В Access-2007 создание таблицы по образцу выполняется иначе. На вкладке "Создание" в группе "Таблицы" выбирается кнопка "Шаблоны таблиц", а в ней – нужный шаблон. Далее структуру созданной таблицы можно изменить в режиме конструктора.
По условию работы выбирается шаблон "Контакты". В созданной таблице надо оставить следующие поля: "Код", "Организация", "Обра-
щатьсяК", "Рабочий телефон", "Адрес", добавить поле "Условия оплаты".
В режиме конструктора надо удалить лишние поля, для чего строку со све-
дениями об определенном поле надо выделить щелчком на прямоугольни-
ке слева от столбца "Имя поля" и в быстром меню дать команду "Удалить строки". Также в режиме конструктора рекомендуется переименовать поля в соответствии с табл. 6 чтобы избежать путаницы в дальнейшем.
Чтобы переименовать таблицу "Контакты" на "Фирмы" надо щелк-
нуть правой кнопкой мыши на названии таблицы в области данных и в бы-
стром меню выбрать нужную команду.
Необходимо провести доработку структуры таблицы "Фирмы". Ал-
горитм одинаков во всех версиях Access.
На примере таблицы "Фирмы" рассмотрим некоторые свойства по-
лей, которые задаются в ячейках вкладки "Общие" в области "Свойства поля" конструктора таблиц.
Маска ввода. Иногда значение поля представляется в некоторой стандартной форме. Так, семизначные номера телефонов записываются обычно следующим образом: три цифры-(дефис)две цифры-(дефис)две цифры. Номер сотового телефона состоит из 10 цифр, не считая цифры 8 в
начале. Для удобства ввода подобных значений можно использовать свой-
ство поля "Маска ввода". В окне конструктора на вкладке "Общие" надо выбрать соответствующую строчку и ввести в нее нужные символы. Про-
45
грамма интерпретирует большинство из них как константы, то есть не из-
меняемую часть маски, а некоторые – как пустое место, оставленное для ввода или любого символа, или определенной группы символов. Так, для последующего обязательного ввода цифры надо в маске ввода набрать 0 (нуль), а для необязательного ввода любого символа или пробела – англий-
скую букву С, причем обязательно большую (регистр имеет значение).
Пример. Для ввода семизначного номера телефона надо ввести
000-00-00, номер сотового телефона можно ввести в следующем формате: 8-000-000-00-00. Если приводятся телефоны в определенном городе с ука-
занием междугороднего кода, то сам код можно ввести как константу, а
вместо цифр внутригородского номера поставить нули. Например, для Нижнего Новгорода маска ввода номеров телефонов в указанном формате будет выглядеть так: 8-(831)-000-00-00.
Для кодирования маски ввода программа использует также кавыч-
ки, обозначающие часть, являющуюся текстовой константой, и косую чер-
ту \, которая показывает, что следующий за ней символ также является текстовой константой. Упомянутую кодировку программа производит са-
мостоятельно. Например, маска ввода номеров междугородних телефонов автоматически принимает в окне конструктора вид "8-(831)-"000\-00\-00.
В случае, если 0 (нуль) является константой, пользователю надо са-
мостоятельно ввести перед ним косую черту.
Задание Б. Установить маску ввода для поля "НомерТелефона"
таблицы "Фирмы". Для этого в режиме конструктора выделить указанное поле, а затем поставить курсор в окошко "Маска ввода" на вкладке "Об-
щие", расположенной в левой нижней части окна конструктора в области
"Свойства поля". Набрать с клавиатуры 8-(831)-000-00-00. Убедиться, что программа выполнила кодирование – установку кавычек и косых черт как указано выше.
46
Значение по умолчанию. С помощью названного свойства можно ввести часть характеристики, общую для всех объектов. В отличие от мас-
ки ввода значение по умолчанию может быть изменено непосредственно в режиме таблицы. Рассмотрим задание указанного свойства на примере по-
ля "Адрес" таблицы "Фирма".
Общий вид адреса: название населенного пункта – Н. Новгород (по условию работы общее для всех фирм); название улицы (бульвара, про-
спекта, переулка); номер дома, который может быть дробным, включать номер корпуса или литеры А, Б и др.; номер квартиры (комнаты, кабинета,
офиса), который может и отсутствовать. Общими для всех адресов, кроме названия города, будет сокращение "ул." – улица, которое в случаях ис-
ключений можно поменять на "пер." – переулок, "пр." – проспект и др., а
также сокращение "д." – дом.
Задание В. Установить значение по умолчанию для поля "Адрес"
таблицы "Фирмы". Для этого в режиме конструктора выделить указанное поле, а затем поставить курсор в окошко "Значение по умолчанию" на вкладке "Общие", расположенной в левой нижней части окна конструктора в области "Свойства поля". Далее набрать с клавиатуры "Н.Новгород,
ул. , д. "
Для поля "УсловияОплаты" предлагается изменить тип поля и ис-
пользовать фиксированный набор значений мастера подстановок. Вводи-
мый в поле реквизит может иметь (по условию работы) следующие значе-
ния: "Предоплата"; "Обычные"; "Кредит". Технология использования мас-
тера подстановок описана в разделе 2.3.
Задание Г. Заполнить созданную таблицу "Фирмы", используя имеющиеся в задании исходные данные, а при отсутствии некоторых из них (например, условий оплаты для конкретных фирм) ввести их произ-
вольно. После создания таблицы "Фирмы" ввести поле "НазваниеФирмы"
в таблицу "Туры" с помощью мастера подстановок в режиме конструктора
47
(технология работы в режиме конструктора описана в разделе 2.3) и далее заполнить это поле в режиме таблицы.
2.5Обеспечение целостности данных
Вразделе 1.4 говорилось о необходимости создания связей между таблицами. Связи типа "Один-ко-многим" создаются автоматически при использовании мастера подстановок. Для просмотра существующих свя-
зей, корректировки их характеристик и создания новых связей предназна-
чено окно "Схема данных". В нем отображаются таблицы, списки полей в каждой из них, а также стрелками показаны связи между полями разных таблиц.
Окно "Схема данных" открывается командой "Сервис" – " Схема данных" или соответствующей кнопкой на панели инструментов при ак-
тивном окне "Базы данных" (в Access–2007 – кнопка "Схема данных" на вкладке "Работа с базами данных" в группе "Показать или скрыть"). Если какой-либо таблицы в схеме нет, то надо вызвать быстрое меню (щелчок правой кнопкой мыши в пустом месте окна) и дать команду "Добавить таблицу". Для корректной работы БД предлагается задать в указанном ок-
не необходимые характеристики связей.
Внимание! Чтобы успешно изменить свойства связей, рекоменду-
ется перед входом в окно "Схема данных" закрыть все компоненты БД.
Для задания характеристик определенной связи надо вызвать бы-
строе меню связи (щелчок правой кнопкой мыши в пустом месте окна) и
выбрать команду "Изменить связь".
При включении флажка "Обеспечение целостности данных" фикси-
руется жесткая связь между записями исходной и связанной таблиц. При создании новой записи в связанной таблице становится обязательным вве-
дение какого-либо значения показателя из исходной таблицы. Также ста-
новятся доступными две другие опции связи.
48
После включения флажка "Каскадное обновление связанных полей"
будет происходить одновременное изменение содержимого ячеек как в ис-
ходной таблице, так и в связанных. Например, если фирма изменила на-
звание, то изменять его в таблице "Туры" во всех записях о турах данной фирмы нерационально. Достаточно редактировать название в таблице
"Фирма".
После включения флажка "Каскадное удаление связанных полей"
будет происходить одновременное удаление данных об определенном объ-
екте в исходной таблице и всех связанных записей в связаннных таблицах.
Например, при прекращении туров в какую-либо страну из-за произошед-
шего в ней переворота и начала вооруженного конфликта появилась необ-
ходимость удалить из БД все туры в эту страну. Достаточно удалить на-
звание страны из таблицы "Страны", и будут автоматически удалены все записи о местах отдыха в этой стране и все записи о турах, проходящих на таких местах отдыха. Подобное произойдет в случае, когда характеристика
"Каскадное удаление связанных полей" задано как для связи между табли-
цами "Страна" и "МестоОтдыха", так и для связи между таблицами "Ме-
стоОтдыха" и "Туры".
Для корректной работы создаваемых позже запросов стоит также установить параметры объединения связей, что можно сделать в соответ-
ствующем диалоговом окне после нажатия кнопки "Объединение…". Ре-
комендуется включить "Объединение ВСЕХ записей из "/название связан-
ной таблицы/" и только тех записей из "/название исходной таблицы/", в
которых связанные поля совпадают" (третий пункт в окне "Параметры объединения").
После установки и проверки свойств всех связей БД готова к рабо-
те. Схема данных должна принять вид, показанный на рис. 3.
49
3.ЗАПРОСЫ
3.1.Общие сведения о запросах. Создание запроса
спомощью конструктора
Запрос – это условие на выполнение СУБД определенного действия с данными.
С точки зрения задач АИС (см. раздел 1.1) запросы можно разде-
лить на несколько групп.
1. Запросы, предназначенные для поиска и выборки определенной информации из имеющейся в БД, а также для представления информации в удобном для пользователя виде. В Access это некоторые запросы из груп-
пы запросов на выборку.
2. Запросы для автоматизации изменения с последующим сохране-
нием информации в БД. В Access это запросы на добавление и на удале-
ние, в некоторых случаях – запросы на обновление.
3. Запросы для получения новой информации путем математиче-
ских расчетов. Их проведение возможно в запросах любой группы Microsoft Access.
Внешне запрос имеет вид таблицы, в которой отображены поля из одной или нескольких таблиц или ранее созданных запросов (далее – ис-
ходных компонентов). В запросе могут быть представлены или все записи из исходных компонентов, или часть записей, отобранных по заданному признаку, или новые записи, созданные на основе преобразования содер-
жания существующих записей (запросы итоговые и перекрестные).
Существует два способа создания запросов, аналогичные способам создания таблиц – с помощью мастера и с помощью конструктора. Прин-
ципиальной разницы между ними нет. В обоих случаях сначала произво-
дится выбор исходных компонентов, потом выбор нужных полей в каждом из них. Если при создании запроса используется большое количество ис-