Создание новой таблицы путем импорта из тестового файла (без ключевого поля)
Создадим в БД ПОСТАВКИ новую таблицу Клиенты путем импорта данных из текстового файла.
Пусть данные о клиентах хранятся в файле Клиенты.txt. Известно, что это текстовый файл с разделителем данных (точка с запятой). В качестве данных приводятся: название фирмы-покупателя; телефон; адрес. Процедура импорта данных из текстового файла в Access подобна импорту текста в таблицы Excel и заключается в следующем:
1. В режиме Импорта таблиц откроется диалоговое окно Импорт (стандартный файлер). Задав Тип файла -Текстовые файлы, найти папку, содержащую нужный текстовый файл и подтвердить его импорт (файл Клиенты.txt).
2. В окне мастера Импорт текста
· Шаг 1: задать параметр с разделителями
· Шаг 2: установить разделитель (точка с запятой)
· Шаг 3: данные сохранить в новой или существующей таблице (в новой)
· Шаг 4: описать каждое поле (задать имя, тип данных и если нужно, индекс)
В соответствии с раннее разработанной структурой таблицы Клиенты задаем поля: Клиент, текстовое; Телефон, текстовое; Адрес, текстовое.
· Шаг 6: выбрать параметр определения первичного ключа таблица. Можно указать автоматическое создание ключа, выбрать поле, которое будет использоваться в качестве или вообще не создавать первичный ключ.
Выбираем автоматическое создание ключа (добавляется ключевое поле Код типа Счетчик размером Длинное целое, индексированное Совпадения не допускаются)
· Шаг 7: присвоить создаваемой таблице имя (по умолчанию предлагается имя текстового файла).
Таблице присваиваем имя Клиенты.
После завершения импорта надо обязательно поправить таблицу в Конструкторе: изменить размер для полей с индексом (КодПоставки, КодПродукта и КодКлиента) на Длинное целое, т.к. ключевые поля впоследствии могут участвовать в связывании таблиц по полю, имеющему тип Счетчик.
Создание связей между таблицами, обеспечение целостности данных
Создание связей между таблицами
При установлении связи между таблицами связанные поля не обязательно должны иметь одинаковые названия. При этом у них должен быть один и тот же тип данных, если только поле, являющееся первичным ключом, не относится к типу "Счетчик". Поле типа "Счетчик" можно связать с полем типа "Числовой" только в том случае, если для свойства FieldSize (размер поля) каждого из них задано одно и то же значение. Например, можно связать столбцы типов "Счетчик" и "Числовой", если для свойства FieldSize каждого из них установлено значение "Длинное целое". Даже если оба связываемых столбца относятся к типу "Числовой", значение свойства FieldSize для обоих полей должно быть одинаковым.
Создание связей "один ко многим" или "один к одному"
Чтобы создать связь вида "один ко многим" или "один к одному", воспользуйтесь приведенной ниже последовательностью действий:
1. Закройте все открытые таблицы. Создавать или изменять связи между открытыми таблицами нельзя.
2. В Access версий 2002 или 2003 выполните указанные ниже действия.
· Нажмите клавишу F11, чтобы перейти в окно базы данных.
· В меню Сервис выберите команду Связи.
В Access 2007 нажмите кнопку Связи в группе Показать или скрыть вкладки Инструменты для баз данных.
3. Если в базе данных отсутствуют связи, то автоматически появится диалоговое окно Добавление таблицы. Если окно Добавление таблицы не появилось, но при этом нужно добавить таблицы в список связываемых, выберите команду Добавить таблицу в меню Связи.
4. Дважды щелкните названия таблиц, которые необходимо связать, после чего закройте диалоговое окно Добавление таблицы. Чтобы связать таблицу с самой собой, добавьте ее два раза.
5. Перетащите связываемое поле из одной таблицы на связываемое поле в другой. Чтобы перетащить несколько полей, нажмите клавишу CTRL, щелкните каждое поле, а затем перетащите их.
В большинстве случаев понадобится перетащить поле первичного ключа (выделенное полужирным текстом) из одной таблицы на аналогичное поле (часто с тем же самым названием), называемое внешним ключом, другой таблицы.
6. Появится окно Изменение связей. Убедитесь, что в каждом из столбцов отображаются названия нужных полей. Если нужно, их можно изменить.
При необходимости задайте параметры связи. Если требуются сведения о конкретном элементе окна Изменение связей, нажмите кнопку со знаком вопроса, а затем щелкните соответствующий элемент. Эти параметры будут подробно описаны ниже.
7. Чтобы установить связь, нажмите кнопку Создать.
8. Повторите действия с 5 по 8 для каждой пары связываемых таблиц.
При закрытии диалогового окна Изменение связей Microsoft Access спросит, нужно ли сохранить макет. Вне зависимости от ответа на этот вопрос создаваемые связи сохраняются в базе данных.
Примечание. Создавать связи можно не только в таблицах, но и в запросах. При этом, однако, не обеспечивается целостность данных.
Создание связей "многие ко многим"
Чтобы создать связь вида "многие ко многим", выполните указанные ниже действия.
1. Создайте две таблицы, которые необходимо связать отношением "многие ко многим".
2. Создайте третью таблицу, называемую соединительной, и добавьте в нее поля с теми же определениями, что и поля первичных ключей в каждой из двух других таблиц. Поля первичных ключей соединительной таблицы служат внешними ключами. В соединительную таблицу, как и в любую другую, можно добавить и другие поля.
3. Задайте первичный ключ этой таблицы таким образом, чтобы он включал в себя поля первичных ключей обеих основных таблиц. Например, первичный ключ соединительной таблицы "АвторыКниг" будет состоять из полей "ИД_заказа" и "ИД_продукта".
Примечание. Чтобы создать первичный ключ, выполните указанные ниже действия.
· Откройте таблицу в режиме конструктора.
· Выберите одно или несколько полей, которые необходимо определить в качестве первичного ключа. Чтобы выбрать одно поле, щелкните знак выбора строки для нужного поля.
Чтобы выбрать несколько полей, удерживайте нажатой клавишу CTRL и щелкните знак выбора строки для каждого из полей.
· В Access версий 2002 или 2003 нажмите кнопку Первичный ключ на панели инструментов.
В Access 2007 нажмите кнопку Первичный ключ в группе Сервис вкладки Структура.
Примечание. Чтобы порядок следования полей в первичном ключе, состоящем из нескольких полей, отличался от такового в таблице, нажмите кнопку Индексы на панели инструментов, в результате чего появится диалоговое окно Индексы, в котором можно изменить порядок следования полей индекса под названием КлючевоеПоле.
4. Установите связь вида "один ко многим" между каждой из двух главных таблиц и соединительной таблицей.
Целостность данных
Целостность данных - это система правил Microsoft Access, которая используется для проверки допустимости отношений между записями связанных таблиц и для того, чтобы не позволить случайно удалить или изменить связанные данные. Настроить проверку целостности данных можно при соблюдении всех указанных ниже условий.
· Связываемое поле из главной таблицы является первичным ключом или имеет однозначный индекс.
· Связываемые поля должны иметь одинаковый тип данных. Существует два исключения. Поле типа "Счетчик" может быть связано с числовым полем, если для свойства FieldSize у него установлено значение "Длинное целое"; кроме того, можно связать поле "Счетчик" с числовым полем, если у них обоих для свойства FieldSize задано значение "Код репликации".
· Обе таблицы принадлежат к одной и той же базе данных Microsoft Access. Если таблицы связаны, то они должны иметь формат Microsoft Access, а для настройки целостности данных необходимо открыть ту базу данных, в которой они хранятся. Обеспечить целостность данных для таблиц, находящихся в базах данных другого формата, невозможно.
При обеспечении целостности данных используются указанные ниже правила.
· Невозможно присвоить полю внешнего ключа связанной таблицы значение, отсутствующее в списке значений первичного ключа главной таблицы. При этом можно задать для внешнего ключа пустое значение (Null), указав, что записи не связаны. Например, нельзя создать заказ для несуществующего клиента, но можно создать заказ, не присвоенный ни одному из клиентов, задав для поля "Клиент" пустое значение.
· Невозможно удалить запись из главной таблицы, если в связанной таблице есть соответствующие ей записи. Например, нельзя удалить запись сотрудника из таблицы "Сотрудники", если ему назначены заказы в таблице "Заказы".
· Невозможно изменить значение первичного ключа в главной таблице, если с данной записью связаны другие записи. Например, нельзя изменить ИД сотрудника в таблице "Сотрудники", если ему назначены заказы в таблице "Заказы".