Создание полей подстановки
1. Открыть созданную ранее таблицу «Накладная1» в режиме конструктора:
- выбрать таблицу «Накладная1» в списке таблиц;
- нажать кнопку «Конструктор».
2. Удалить поле «Код контрагента» из списка полей.
Для этого необходимо выполнить следующие шаги:
- переместить курсор на поле «Код контрагента»;
- выполнить команду Правка → Удалить строки или вызвать контекстное меню щелчком правой кнопки мыши и выполнить команду «Удалить строки».
После выполнения команды в таблице уже не будет поля «Код контрагента».
Альтернативным способом создания поля подстановки на основе уже существующего поля таблицы БД является изменение типа данных поля на тип «Мастер подстановок…». При этом вызывается мастер создания полей подстановок, работа с которым рассматривается ниже.
3. Для сохранения измененной таблицы выполнить команду Файл → Сохранить.
4. Выполнить команду Вставка → Поле подстановок…
5. Выбрать пункт «Объект «столбец подстановки» будет использовать значения из таблицы или запроса» в появившемся диалоге:
Нажать кнопку «Далее».
6. В следующем диалоге выбрать таблицу «Контрагент» и нажать «Далее».
7. В следующем диалоге переместить поле «Код контрагента» и поле «Наименование» из списка «Доступные поля» в список «Выбранные поля».
- выделить поле «Код контрагента»;
- нажать кнопку ;
- выделить поле «Наименование »;
- нажать кнопку .
В результате выбора полей диалог должен выглядеть как показано на следующем рисунке:
Нажать кнопку «Далее».
8. В следующем диалоге, перетаскивая правую границу столбца установить такую ширину столбца подстановки, чтобы текст в поле подстановки был полностью виден.
Нажать кнопку «Далее».
9. Ввести в следующем диалоге подпись столбца подстановки текст «Код контрагента» как показано на следующем рисунке:
Нажать «Готово».
10. Ответить «Да» в следующем диалоге:
ПРИМЕЧАНИЕ: При создании поля подстановки Access автоматически создает связь «один ко многим» между таблицей подстановки и таблицей где устанавливается поле подстановки. Создание связей будет подробно рассмотрено ниже.
11. Сохранить таблицу: выполнить команду Файл →Сохранить.
12. Закрыть таблицу базы данных.
Рассмотрим как заполняются значения полей подстановки. Для этого выполним следующие операции:
1. Откроем таблицу «Накладная1» (двойной щелчок по наименованию таблицы в списке таблиц).
2. Переведем стрелками или мышью курсор ввода в поле «Код контрагента».
Как видно из рисунка, значение поля уже не вводится с клавиатуры, а выбирается из выпадающего списка как показано на следующем рисунке.
После выбора значения из списка на экране в табличном редакторе в поле «Код контрагента» будет отображаться уже не числовое значение – ссылка на запись в таблице «Контрагент», а подставляемое значение.
При этом важно, что в самой таблице будет храниться именно числовое значение – значение поля «Код контрагента». Подставляемое наименование контрагента, т.е. значение поля «Наименование» таблицы «Контрагент» будет отображаться в редакторе таблиц вместо числового значения «Код контрагента» значению которого осуществляется связь между таблицами.
ВНИМАНИЕ! Поля подстановки необходимо создавать на этапе создания таблиц базы данных, т.к. это существенно упрощает создание диалогов ввода вывода данных.
Создание связей между таблицами
База данных представляет собой не только совокупность таблиц, но и связей между ними. Именно благодаря наличию связей между таблицами база данных представляет собой целостное представление о части предметной области.
Само понятие «связь между таблицами» предполагает наличие между таблицами базы данных какой-либо зависимости.
Как уже известно из предыдущих занятий существует три основных типа зависимости: «один к одному», «один ко многим», «многие ко многим».
Зависимость «один к одному»(1:1)означает, что одной записи одной таблицы строго соответствует только одна запись другой таблицы. Такой тип связи применяется, когда в таблице с большим числом полей более часто используемые поля выносят в одну таблицу, менее используемые – в другую.
Зависимость «один ко многим»(1:М)означает, что одной записи таблицы соответствует много записей в другой таблице. Такой вид связи является наиболее распространенным. Пример, таблица «Контрагент» связана с таблицей «Накладная1» связью «один ко многим» по полю «Код контрагента».
Зависимость «многие ко многим» (М:М) означает, что одной записи первой таблицы соответствует много записей во второй, и одной записи во второй таблице соответствует много записей в первой. В нормализованной базе данных таблиц с такими связями быть не может, и эта связь реализуется через третью таблицу, связываемую с исходными отношением «один ко многим».
Практическое значение имеет установление связей «один к одному» и «один ко многим» в Access 2002.
В рассматриваемой в качестве примера инфологической модели (см. ER-схему) имеются следующие связи:
1. Связь «один ко многим» сущности «Контрагент» с сущностью «Накладная приход материалов» по значению поля «Код контрагента» (т.к. выше уже были созданы таблицы для этих сущностей, то это будет уже связь «один ко многим» между таблицей «Контрагент» и таблицей «Накладная1» по полю «Код контрагента».
2. Связь «один ко многим» сущности «Накладная приход материалов» с сущностью «Состав накладной приход материалов» по полю «Код накладной». Для созданных таблиц это будет связь «один ко многим» между таблицей «Накладная1» и таблицей «Накладная1Состав» по полю «Код накладной».
3. Связь «один ко многим» между таблицей «Материал» и таблицей «Накладная1Состав».
Создадим эти связи между таблицами базы данных в Access 2002.
Для этого необходимо выполнить следующую последовательность действий:
1. Перейти на вкладку Таблицы главного окна базы данных.
2. Вызвать контекстное меню и выполнить команду Схема данныхкак показано на следующем рисунке (или выполнить команду Сервис → Схема данных).
Схема данных – графический способ представления связей между таблицами базы данных.
В результате будет выведено окно конструктора схемы данных.
Такая схема была создана автоматически при создании полей подстановки в таблице «Накладная1». Для того, чтобы последовательно рассмотреть процесс создания схемы данных, удалим все таблицы и связи, созданные Access 2002автоматически.
4. Выполнить команду Правка → Очистить макет для очистки ранее созданной схемы данных.
5. Создать связь Котрагент-Накладная1.
5.1. Выполнить команду Связи → Добавить таблицуили нажать кнопку
5.2. Выбрать таблицу «Контрагенты» и нажать «Добавить» в следующем диалоге.
5.3. В этом же диалоге выбрать таблицу «Накладная1» и нажать «Добавить».
В результате в окне схемы базы данных увидим следующее:
5.4. Вызвать диалог «Изменение связей» для установки связи «один ко многим».
Для это необходимо подвести указатель мыши к линии связи и произвести двойной щелчок мышью по ней.
Как видно из рисунка, между таблицами «Контрагент» или «Накладная1» уже установлена связь «один ко многим». Однако, не установлен режим поддержки этой связи – обеспечение целостности данных.
Существует два метода поддержки целостности связи: каскадное обновление и каскадное удаление.
Каскадное обновление– механизм, при котором при изменении значения поля в родительской таблице автоматически изменяются значения во всех таких же полях связных таблиц.
Каскадное удаление– механизм, при котором при удалении записи из родительской таблицы удаляются все записи, связанные с данной, во всех других таблицах. Этот механизм необходимо включать для таблиц, данные которых составляют один документ. Например, если данные документа «Накладная» размещены в двух таблицах «НакладнаяЗаголовок» (где размещаются общие данные о документе: дата, номер, поставщик) и «НакладнаяСостав» (табличная часть документа: товар, количество, цена, сумма), необходимо, чтобы при удалении записи из таблицы «НакладнаяЗаголовок» были удалены все записи из таблицы «НакладнаяСостав». Иначе произойдет нарушение целостности базы (т.е. искажение хранимой в ней информации).
Для рассматриваемой связи режим каскадного удаления не требуется: при накладных содержат информацию о фактически произведенных операциях движения материальных ценностей, и удаление записей из этой таблицы будет означать искажение экономической информации. Если организация перестала работать с контрагентом (поставщиком, покупателем и др.), то его нужно просто исключить из списков, выводимых пользователю при выборе. Фактически удалять запись о контрагенте можно только в случае отсутствия ссылок на него в других документах, что и обеспечивается установлением флажка «обеспечение целостности данных».
5.5. Установите флажок «обеспечение целостности данных» и нажмите «OK».
Теперь пользователь не сможет удалить поставщика их базы данных, если на него были оформлены документы.
ВНИМАНИЕ! Необходимо правильно установить связи между таблицами, целостность этой связи и режим поддержки целостности. Без этого база данных не сможет нормально работать.
Окно схемы данных примет следующий вид:
Связь «один ко многим» в Access 2002 обозначается как 1:∞.
6. Создадим связи «Накладная-Накладная1Состави Материал-Накладная1Состав».
6.1. Выполнить команду Связи → Добавить таблицуили нажать кнопку .
6.2. Выбрать таблицу «Накладная1Состав» и выполнить команду «Добавить», выбрать таблицу «Материал» и выполнить команду «Добавить».
Нажать кнопку «Закрыть».
Схема базы данных примет следующий вид:
Разместив таблицы базы данных аналогично размещению на схеме ER-модели получим:
6.3. Изменим тип связи между таблицами «Материал» и «Накладная1Состав». Для этого необходимо:
- открыть диалог «Изменить связи» (двойной щелчок левой кнопкой мыши по связи между таблицами);
- установить флажок «Обеспечение целостности данных».
6.4. Добавим связь между таблицей «Накладная1» и «Накладная1Состав». Для этого необходимо:
- выделить поле «Код накладной» в таблице «Накладная1» (т.е. в родительской таблице), как показано на рисунке.
- нажать левую кнопку мыши, и, удерживая ее, переместить указатель мыши на поле «Код накладной» таблицы Накладная1Состав, после чего отпустить левую кнопку мыши;
В результате на экране появится диалог создания связи между таблицами:
- установить «Обеспечение целостности данных» и режим каскадного удаления связанных записей как показано на следующем рисунке.
- нажать «Создать».
В результате выполненной последовательности действий схема базы данных примет следующий вид:
7. Выполнить команду Файл → Сохранитьдля сохранения созданной схемы данных.
Созданная схема базы данных используется Access для обеспечения ссылочной целостности базы данных – т.е. для сохранения непротиворечивости базы данных по ссылкам:
- если будет удалена запись из родительской таблицы, то будут удалены все связные записи из дочерних таблицы. Если этого не сделать, то после удаления записи из родительской таблицы, связные записи в дочерних таблицах будут указывать на несуществующие данные;
- если будет изменено значение поля связи в родительской таблице, то оно должно быть изменено и во всех связных записях других таблиц. Иначе, связные записи других таблиц будут содержать как новое, так и старое значение, что недопустимо.
Не нашли, что искали? Воспользуйтесь поиском по сайту:
©2015 - 2024 stydopedia.ru Все материалы защищены законодательством РФ.
|