Как связать две базы

Закрыть ... [X]

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

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

Поле Тип размещения в отеле я разбил на два и создал не одну, а две таблицы. Собственно размещение (DBL, SNGL, DBL + CHLD, TRPL, ...) - таблица Arrangements, на каком питании (BB, HB, FB, ALL, No meal) - таблица Meals. Для обеих табличек по два поля: ключевое и значение. Для полей Страна и Отель таблицы имеют всего лишь больше полей.
Создание новых таблиц (поля)


Для дальнейшей работы и тестирования необходимо занести некоторые данные, например, страны, отели:
Внесение тестовых данных в таблицы

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

Ниже даются комментарии по созданию связей между таблицами в access, но, возможно, Вам их будет легче понять, если Вы сперва посмотрите видео с примером создания связанной таблицы (использование внешнего ключа): table-lookup (файл в формате .mp4; пример на русской версии Access).

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

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

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

Открываем таблицу Reservations (бронирование отелей) в режиме редактирования (кликаем правой мышкой по таблице, выбираем в меню Design View). Находим тип поля для reservationCountry - Text, меняем на числовое - Number. После этого смотрим в нижний левый угол программы "Аксес" и находим две закладки: General и Lookup, выбираем Lookup.
Редактирование таблицы: создание связи с другой таблицей

Далее выбираем выпадающий список (Combo box), после чего появляются дополнительные опции. В источнике строк выбираем нужную нам таблицу (Countries), потом в верхнем левом углу программы "Аксес" переключаемся в режим таблицы (программа попросит сохранить таблицу, говорим - ОК).
Создание связи в таблице: Combo Box (выпадающий список)   Просмотр таблицы


Смотрим, что получилось в поле reservationCountry. Во-первых, подставляется некоторое значение по умолчанию (0), во-вторых, мы имеем выпадающий список, но в котором видим пока только числа. Эти числа - значения первого столбца из связанной таблицы (поскольку именно первый столбец и именно он один берется по умолчанию при создании связи).
Просмотр выпадающего списка (Combo Box) в таблице

Наша задача - вывести названия стран. Для этого установим параметры выпадающего списка стран (Combo box для reservationCountry). Возвращаемся в режим редактирования таблицы Редактирование таблицы; помещаем курсор в поле reservationCountry и открываем внизу закладку Lookup. После выбора нами источника строк (Countries) по умолчанию программа Аксесс "привязала" первый столбец из связанной таблицы (Bound Column), в том смысле, что значением поля reservationCountry будет выбранное нами значение. Всего столбцов из связанной таблицы по умолчанию выбирается 1 (Column count). Изменим это значение на 2, оставим пока поле Column Heads без изменений, а в поле Column Widths нам надо указать ширину отображения каждого столбца: достаточно набрать 1;1 и выйти из поля, программа сама подставит единицу измерения, т.е. станет 1cm;1cm. Теперь мы можем сохранить изменения и посмотреть результат в таблице (остальные параметры оставим пока без изменений).
Редактирование выпадающего списка (Combo Box) в связанной таблице

Если мы выберем значение из отображающегося теперь в основной таблице выпадающего списка, то будем удивлены, что по прежнему подставляется числовое значение, а не название страны (например, число 2 вместо Турции).
Редактирование ширины выпадающего списка (combo box)

Для того, чтобы вывести только название страны, в поле Column Widths изменим значение 1cm;1cm на 0cm;1cm, т.е. мы "спрячем" первый столбец из связанной таблицы (важно: в таблицу в конечном счете все равно подставляется числовое значение, просто оно теперь не отображается).

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

Соответственно вашим заданием будет: связать таблицы Hotels, Arrangements, Meals (для последней еще надо будет создать поле, поскольку логичнее будет разбить поле reservationArrangement на два: reservationArrangement и reservationMeal; для этого поставьте курсор в режиме редактирования таблицы в следующее после поля reservationArrangement и кликните на значок, как обведено жирным на рисунке ниже; вы получите пустую строчку в нужном месте и можете добавить поле и сразу связать с нужной таблицей (не забудьте про тип создаваемого поля)).
Вставка поля со связанной таблицей (insert field)

Предыдущий урок Создаем таблицу в "Аксес" | Следующий урок Типы полей и свойства полей таблицы


Источник: http://access.my-study.info/lesson02.php


Поделись с друзьями



Рекомендуем посмотреть ещё:



Похожие новости


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


Как связать две базы
Как связать две базы


Объединить две базы SQL в одну ( или как без потери данных)
Как связать две таблицы? - Microsoft SQL Server - Киберфорум



ШОКИРУЮЩИЕ НОВОСТИ