- •Часть 2. Создание подстановок и связей
- •1. Создание подстановок
- •1.1. Подстановка для внешнего ключа
- •1.2. Подстановка ранее введенных значений
- •2. Создание связей
- •2.1. Определение связи «один ко многим»
- •2.2. Параметры связи
- •2.2.1. Обеспечение целостности данных
- •2.2.2. Параметры объединения
- •2.3. Определение связи «один к одному»
- •3. Редактирование записей таблицы
- •4. Редактирование схемы базы данных
- •4.1. Редактирование полей таблицы
- •4.2. Редактирование связей
1.2. Подстановка ранее введенных значений
В таблице «Операции» (рис.11) имеется еще одна проблема – это ввод повторяющихся значений в поле «Наименование». Если мы будем наращивать количество записей, то наименования «Приобретение», «Продажа» «Обслуживание» будут повторяться, их количество может увеличиваться. Если вводить такие тексты заново, возможны ошибки (например, можно ввести слово «продажа» с прописной буквы, и оно будет отличаться от введенного ранее слова «Продажа» с заглавной буквы). Стандартным решением этой проблемы является устранение дублирования (нормализация) за счет создания отдельной таблицы-справочника «НаименованиеОперации» и замене поля «Операции.[Наименование операции]» на внешний ключ, который будет ссылаться на первичный ключ таблицы «НаименованиеОперации».
Но есть и другое (более затратное, но тоже эффективное) решение – выбирать из списка значений, ранее введенных в это поле. Для этого можно задать подстановку, как показано на рис.12.
Рисунок 12. Окно таблицы «Операции» с настройкой подстановки для поля «Наименование операции»
Обратите внимание на следующее:
В качестве источника строк на этот раз используется не запрос, а таблица «Операции». Выбрать нужную таблицу можно из выпадающего списка, нажав кнопку
(см.
рис.12).
Присоединенный столбец имеет номер 3 (это столбец «Наименование операции»), т.е. выбор делается из ранее введенных значений этого же столбца.
Число столбцов тоже равно 3, четвертый столбец «Характеристики операции» игнорируется. Если задать число столбцов менее 3, то подстановка будет делаться из первого столбца. Это означает, что на самом деле таблица, которая используется в подстановке, тоже получается как результат запроса SELECT Операции.[Код операции], Операции.[Код клиента], Операции.[Наименование операции] FROM Операции;
Ширина столбцов задана в виде 0;0;5 (Access сам подставляет единицы измерения). Это означает, что первые два столбца («Операции.[Код операции]» и «Операции.[Код клиента]») нас не интересуют. В выпадающем списке мы хотим видеть только третий столбец.
Для свойства «Ограничиться списком» задано значение «нет». Это означает, что при вводе мы хотим добавлять новые значения поля «Наименование операции», если они раннее не встречались.
Результат использования подстановки показан на рисунке 13.
Рисунок 13. Окно таблицы «Операции» с подстановкой в поле «Наименование операции»
2. Создание связей
В базе данных Access можно определить набор связей между таблицами, которые определяют логическую схему данных, и которые в дальнейшем будут учитываться в разных целях:
Для редактирования данных в таблицах и формах с учетом связей.
Для создания форм, отчетов, которые учитывают логические связи между различными частями базы данных.
Для поддержания целостности данных при их редактировании, чтобы не была нарушена логическая структура, определенная с помощью связей.
Для экономного конструирования запросов с учетом имеющихся связей.
