Elettracompany.com

Компьютерный справочник
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Связывание таблиц в access

Связывание таблиц на схеме данных

Для того чтобы было удобно просматривать, создавать, удалять и модифицировать связи между таблицами, в Microsoft Access используется схема данных (Relationships) (рис. 2.27).

Чтобы открыть схему данных, необходимо выполнить команду Сервис, Схема данных (Tools, Relationships). По умолчанию схема будет содержать все таблицы со связями. Поэтому сюда будет включена, например, наша новая таблица «Список рассылки оповещений», которая была связана с таблицей «Клиенты» (Customers) при помощи Мастера подстановок (см. разд. «Использование Мастера подстановок» выше в данной главе).

Чтобы убрать какую-либо таблицу из схемы данных, необходимо щелкнуть правой кнопкой мыши на любом месте этой таблицы и из контекстного меню выбрать команду Скрыть таблицу (Hide table). Например, на рис. 2.27 таблица «Список рассылки оповещений» скрыта.

Удаление таблицы из схемы данных не означает удаление ее из базы данных, просто она не присутствует в схеме.

Чтобы вновь добавить в эту схему свернутую таблицу («Список рассылки оповещений») или таблицу, у которой связи еще не установлены, необходимо:

  1. Щелкнуть правой кнопкой мыши на свободном пространстве схемы данных и из контекстного меню выбрать команду Добавить таблицу (Show table).
  2. В диалоговом окне Добавление таблицы (Show table) раскрыть вкладку Таблицы (Tables), выбрать из списка таблицу «Список рассылки оповещений», и нажать кнопку Добавить (Add) (рис. 2.28).

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

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

Согласованные типы данных означают следующее: если ключевое поле имеет тип данных Счетчик (AutoNumber), то соответствующее ему поле в другой таблице должно иметь тип Длинное целое (Long Integer). В остальных случаях типы данных должны просто совпадать.

Если нужная связь автоматически не создана, ее можно создать двумя путями. Первый путь — графический. Следует выбрать в главной таблице поле для связи, нажать левую кнопку мыши и перетащить поле во вторую таблицу. Отпустить левую кнопку мыши над тем полем подчиненной таблицы, с которым устанавливается связь. После этого появится диалоговое окно Изменение связей (Edit Relationships) (рис. 2.29).

Альтернативный вариант — выбрать команду Связи, Изменить связь (Relationships, Edit Relationships) из главного меню Access. Эта команда появляется в меню, когда открыто окно Схема данных (Relationships).

    В диалоговом окне Изменение связей (Edit Relationships) можно выбрать из списков названия связанных таблиц и полей для связывания. Если отношение между таблицами «один-ко-многим», то слева из списка Таблица/запрос (Table/ Query) выбирается главная таблица и поле в этой таблице, а справа из списка Связанная таблица/запрос — подчиненная и соответственно поле в ней. Если отношение «один-к-одному», то порядок таблиц значения не имеет. Если вы устанавливали связь графически, то все поля в списках уже выбраны, и нужно только определить правила ссылочной целостности.

По умолчанию устанавливается первый переключатель. Нажать кнопку ОК.

  • Когда создается новая связь, можно также воспользоваться кнопкой Новое (Create New) и в окне Создание (Create New) ввести имена связываемых таблиц и имена полей, используемых для связи. Нажать кнопку ОК.
  • После установки всех параметров связи необходимо нажать кнопку ОК в окне Параметры объединения (Edit Relationship) и закрыть окно Схема данных (Relationship), нажав на кнопку Закрыть в правом верхнем углу окна.
  • Установка связей между таблицами БД Access 2007

    Учебная дисциплина
    Информатика и компьютерная техника
    Модуль 2. Офисные прикладные программы Microsoft Office 2007

    2.4. Microsoft Access 2007

    2.4.3. Установка логических связей в БД Access 2007

    Логические связи устанавливаются между одноименными полями таблиц базы данных Access 2007. Связь данных в одной таблице с данными в других таблицах осуществляется через уникальные идентификаторы (ключи) или ключевые поля. В нашем случае мы должны установить логические связи между таблицами: Группы студентов, Студенты, Дисциплины и Успеваемость.

    Для установления связей используем ключевые поля: КодГруппы, КодСтудентов и КодДисциплины. Например, между первичным ключом (КодГруппы) tables Группы студентов и вторичным ключом (КодГруппы) tables Студенты устанавливаем связь один — ко — многим.

    Прежде чем приступить к созданию логических связей надо в Окне редактирования закрыть все tables и перейти на вкладку Работа с базами данных. Затем щелкнуть на пиктограмме Схема данных, в окне редактирования появится активное диалоговое окно «Добавление таблицы» на фоне неактивного окна Схема данных (рис. 1).

    В окне Добавление таблиц необходимо выделить имена таблиц и нажать кнопку Добавить, при этом в окне «Схема данных» появятся все tables (рис. 2). После этого необходимо закрыть окно диалога.

    Далее необходимо установить связи между табл. в окне Схема данных. Для этого в окне Схема данных необходимо отбуксировать (переместить) поле КодГруппы из таблицы Группы студентов на соответствующее поле tables Студенты, в результате этой операции появится окно «Изменение связей» (рис. 3) .

    В появившемся окне диалога «Изменение связей» (рис. 3) необходимо установить флажки: «Обеспечить целостность данных», «каскадное обновление связанных полей» и «каскадное удаление связанных записей», убедиться в том, что установлен тип отношений один-ко-многим и нажать кнопку Создать.

    В окне Схема данных появится связь один-ко-многим между таблицами Группы студентов и Студенты. Аналогичным образом надо связать поля КодСтудента в таблицах Студенты и Успеваемость, а затем поля КодДисциплины в таблицах Успеваемость и Дисциплины. В итоге получим Схему данных, представленную на рисунке 4.

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

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

    Copyright

    © Обучение в интернет, .
    Обратная связь

    Связывание таблиц и удаление связей в Microsoft Access

    Работа с базами данных — процесс, требующий определённых навыков и понимания некоторых нюансов. Разработанная компанией Microsoft программа Access даёт пользователям возможность быстро создавать и редактировать БД. Один из важнейших моментов, с которым обязательно нужно разобраться, при создании БД — связывание её элементов. В этой статье разберёмся с тем, как создать или удалить связи между таблицами в Access. Давайте же начнём. Поехали!

    Прежде чем мы перейдём к связыванию, необходимо создать так называемые ключевые поля. Что это такое? Ключевое поле — это поле, определяющее каждую запись. Теперь перейдём непосредственно к его созданию. Открыв нужную таблицу, щёлкните правой кнопкой мыши по вкладке и выберите пункт «Конструктор». Затем добавьте новое поле. Например, если у вас есть список сотрудников, то ключевым стоит сделать «код сотрудника», указав тип данных «счётчик» либо «числовой». Чтобы сделать его ключевым, нажмите кнопку «Ключевое поле», расположенную на панели инструментов Microsoft Access. Далее, необходимо проделать то же самое для всех остальных таблиц.

    Теперь уже можно связывать наши таблицы. Чтобы сделать это, откройте вкладку «Работа с базами данных» и в разделе «Отношения» ленты инструментов выберите пункт «Схема данных». Перед вами откроется окно, в котором понадобится выбрать все таблицы. Поочерёдно кликните по каждой из них. Закончив, выйдите из этого окна. Теперь нужно определиться с тем, как именно связывать. Например, есть две таблицы: «Бренд» и «Одежда», между которыми необходимо связать между собой. Поле «Код бренда» должно быть и там, и там. Если оно отсутствует — создайте его. При этом для записей категории «Бренд» оно будет ключевым (так называемый первичный ключ), а для «Одежда» — обычным (внешний ключ). Первичный ключ «Код бренда» перетащите на внешний ключ «Код бренда». После этого появится диалоговое окно, в котором нужно отметить галочками пункты: «Обеспечение целостности…», «Каскадное обновление связанных полей» и «Каскадное удаление связанных записей». Отметив все пункты, нажмите кнопку «Создать». Появится чёрная линия, соединяющая указанные строки. Созданная связь имеет название «один ко многим». То есть в приведённом примере это будет означать, что один бренд может выпускать много разной одежды.

    Далее, аналогичным образом свяжите все остальные, не забывая добавлять поля. Имея минимум три таблицы (среди которых две основных и одна промежуточная), вы можете создать тип связи «многие ко многим». Для заполнения полей, являющихся внешними ключами, можно использовать «Мастер подстановок». Чтобы сделать это, перейдите в режим конструктора и в разделе «Тип данных» выберите пункт «Мастер подстановок». В открывшемся окне выберите откуда будет взята информация для заполнения. Затем укажите нужные поля и нажмите кнопку «Далее». Следующие два окна можно пропустить. В конце кликните по кнопку «Готово». Прежде чем начать заполнение, программа предложит вам сохраниться, щёлкните «Да». Обратите внимание, что заполнение таким способом возможно только в случае, если связь ещё не установлена. Если у вас так не получилось, то вы можете удалить её и заполнить ячейки. После этого она автоматически появится, однако, вам понадобится кликнуть по ней два раза и отметить галочками пункты: «Обеспечение целостности…», «Каскадное обновление связанных полей» и «Каскадное удаление связанных записей».

    Чтобы удалить связь, кликните по кнопке «Схема данных» на панели инструментов, затем щёлкните по линии, показывающей её, и нажмите на клавиатуре клавишу delete.

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

    Связывание таблиц в access

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

    После того, как созданы таблицы БД, можно установить связи между ними, обратившись к схеме данных. Запуск схемы данных выполняется через значок «Схема данных» на панели инструментов Access.

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

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

    Типы связей

    Тип отношения в создаваемой Microsoft Access связи зависит от способа определения связываемых полей.

    Отношение «один-ко-многим» является наиболее часто используемым типом связи между таблицами. В отношении «один-ко-многим» каждой записи в таблице A могут соответствовать несколько записей в таблице B, но запись в таблице B не может иметь более одной соответствующей ей записи в таблице A.

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

    При отношении «многие-ко-многим» одной записи в таблице A могут соответствовать несколько записей в таблице B, а одной записи в таблице B несколько записей в таблице A. Этот тип связи возможен только с помощью третьей (связующей) таблицы, первичный ключ которой состоит из двух полей, которые являются внешними ключами таблиц A и B. Отношение «многие-ко-многим» по сути дела представляет собой два отношения «один-ко-многим» с третьей таблицей.

    Определение связей между таблицами

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

    Предположим, что требуется установить связь между таблицами «Кафедра» и «Преподаватель» через поле ККАФ (код кафедры). В таблице «Кафедра» это поле является уникальным ключом, а в таблице «Преподаватель» — внешним ключом. Если схема данных создается заново, то при нажатии на кнопку «Схема данных» поверх окна схемы данных появится окно «Добавление таблицы» . В этом окне следует выделить требуемые таблицы и нажать «Добавить» .

    В результате в окно схемы данных будут добавлены графические образы двух таблиц:

    Необходимо перетащить мышью поле ККАФ таблица «Кафедра» на поле ККАФ таблицы «Преподаватель» . В открывшемся окне «Изменение связей» следует установить флажок «Обеспечение целостности данных» . В этом случае Access будет выдавать предупреждающие сообщения о неправильном вводе данных, если, например, в поле ККАФ подчиненной таблицы «Преподаватель» будет введено значение, отсутствующее в поле ККАФ базовой таблицы «Кафедра» .

    Обратите внимание, что Access автоматически определил тип связи как «один-ко-многим».

    Можно также установить флажки «каскадное обновление связей» и «каскадное удаление связей» . В этом случае Access автоматически скорректирует (удалит) записи в подчиненных таблицах, если будут изменены записи в базовой таблице.

    После нажатия на кнопку » Создать «, образы таблиц будут соединены связями как показано на рисунке. Ключевые в базовых таблицах выделяются жирным шрифтом.

    Для установления связей по составному ключу необходимо в окне «Изменение связей» в полях «Таблица/Запрос» и «Связанная таблица/запрос» вручную выбрать из списков пары связываемых полей. На рисунке показан пример связи по составному ключу.

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

    Связанные таблицы

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

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

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

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

    Основная таблица и источники записей полей

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

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

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

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

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

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

    Далее выбираем выпадающий список (Combo box), после чего появляются дополнительные опции. В источнике строк выбираем нужную нам таблицу (Countries), потом в верхнем левом углу программы «Аксес» переключаемся в режим таблицы (программа попросит сохранить таблицу, говорим — ОК).

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

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

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

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

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

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

    Читать еще:  Openoffice изменить кодировку
    Ссылка на основную публикацию
    Adblock
    detector