Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
26
Добавлен:
14.02.2016
Размер:
489.58 Кб
Скачать

Рис. 2.15. Окно диалога для создания структуры таблицы Поставщики

Для этого в окне базы данных выделите таблицу Клиенты и активизируйте команду Копировать меню Правка, а затем в окне БД выполните команду Вставить меню Правка. В открывшемся диалоговом окне Вставка таблицы в поле Параметры вставки установите значение переключателя только структура, а в поле Имя таблицы введите ее имя -

Поставщики (см. рис.2.15).

Как следует из предметной области и постановки задачи, исходные данные для структуры таблиц Заказы и Состав заказов можно представить в виде таблиц 2.2 и 2.3 соответственно.

Таблица 2.2. Структура и свойства полей таблицы Заказы

Имя поля

 

 

Клю-

Обязате-

 

 

Тип

Раз-

 

Фор-

 

Индекси-

 

 

чевое

льное

 

данных

мер

 

 

мат

 

рованное

 

 

 

 

 

 

 

Код клиента

 

 

 

Да

 

Да

 

Текстовый

10

 

 

 

 

 

Да

Код заказа

 

 

 

Да

 

Да

 

Текстовый

10

 

 

 

 

 

Да

Дата заказа

 

 

 

 

 

Да

 

Дата/время

 

 

краткий

 

 

 

 

 

 

 

 

 

 

 

формат

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Учтено на складе

 

 

 

 

Нет

 

Логичес-

 

 

Да/Нет

 

 

 

 

 

 

 

 

 

кий

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Дата выполнения

 

 

 

 

Нет

 

Дата/время

 

 

краткий

 

 

 

 

 

 

 

 

 

 

формат

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Примечание

 

 

 

 

 

Да

 

Текстовый

64

 

 

 

 

 

 

Таблица 2.3. Структура и свойства полей таблицы Состав заказа

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Клю-

 

Обязат

Тип

 

 

Раз-

Фор-

 

Значе-

 

Индек-

Имя поля

 

 

 

 

ние по

 

сирова-

чевое

 

е-льное

данных

 

мер

мат

 

 

 

 

 

 

умолч.

 

нное

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Код

Да

 

Да

 

Текстовый

 

10

 

 

 

 

 

 

Да

клиента

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Код заказа

Да

 

Да

 

Текстовый

 

10

 

 

 

 

 

 

Да

Код мебели

Да

 

Да

 

Текстовый

 

50

 

 

 

 

 

 

Нет

Отделка

Да

 

Да

 

Числовой

 

Целое

 

 

 

0

 

 

Нет

Заявлен-

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

 

Нет

11

ное к-во

 

 

 

 

 

 

 

Фактичес-

 

 

 

 

 

0

Нет

кое к-во

 

 

 

 

 

 

 

 

 

 

 

 

Дата

 

 

Дата/время

 

краткий

 

Нет

доставки

 

 

 

формат

 

 

 

 

 

 

 

Примечание

 

 

Текстовый

64

 

 

Нет

Используя изложенную выше методику создания таблиц в режиме конструктора, создайте таблицы Заказы и Состав заказа в соответствии с данными таблиц 2.2 и 2.3.

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

Чтобы приступить к созданию схемы данных, необходимо создать структуры еще трех таблиц: Каталог, Остаток на складе и Тип отделки.

Таблица Каталог должна включать в себя четыре поля:

Код мебели (ключевое, тип данных - текстовый, размер - 50, обязательное поле - Да, индексированное - Да (Допускаются совпадения)

Отделка (ключевое, тип данных - числовой, размер - целое, обязательное поле - Да, индексированное - Да (Допускаются совпадения)

Тип изделия (тип данных - текстовый, размер - 50, обязательное поле - Да)

Рисунок (тип данных - поле объекта OLE, обязательное поле - Нет). Таблица Остаток на складе должна включать в себя четыре поля:

Код мебели (ключевое, тип данных - текстовый, размер - 50, обязательное поле - Да, индексированное - Да (Допускаются совпадения)

Отделка (ключевое, тип данных - числовой, размер - целое, обязательное поле - Да, индексированное - Да (Допускаются совпадения)

тип изделия (тип данных - текстовый, размер - 50, обязательное поле - Да)

Кол-во (тип данных - числовой, размер - целое, значение по умолчанию - 0,

условие на значение - Not Is Null, обязательное поле - Да) Таблица Тип отделки должна включать в себя два поля:

Код отделки (ключевое, тип данных - числовой, размер - целое, обязательное поле - Да, индексированное - Да (Совпадения не допускаются)

Наименование отделки (тип данных - текстовый, размер - 50, обязательное

поле - Да)

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

Правка.

12

Технология создания схемы данных

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

Установление между двумя таблицами связи типа один - к - одному или один - ко - многим и задание параметров целостности данных возможно только при выполнении следующих условий:

Связываемые поля двух таблиц должны иметь один и тот же тип данных.

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

Обе таблицы должны хранится в одной базе данных Access.

Обеспечение целостности данных означает, что при корректировке взаимосвязанных таблиц накладываются следующие ограничения:

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

В главной таблице нельзя удалить запись, если не удалены связанные с ней записи в подчиненной таблице.

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

Для определения связей между таблицами необходимо выполнить следующие действия:

В окне базы данных активизируйте команду Схема данных меню Сервис или щелкните кнопку Схема данных на панели инструментов. в результате выполнения команды появится пустое окно для создания схемы данных.

Добавьте в окно схемы данных все таблицы базы. С этой целью дайте команду Добавить таблицу меню Связи или щелкните кнопку Добавить таблицу на панели инструментов.

13

Рис. 2.16. Окно диалога для добавления таблиц базы данных

Воткрывшемся окне диалога (рис.2.16), используя клавиши [Shift] или [Ctrl], выделите все таблицы базы данных и нажмите кнопку Добавить, а затем

-Закрыть.

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

Рис. 2.17. Окно схемы данных, отображающее добавленные таблицы

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

В открывшемся окне диалога Связи (рис. 2.18) выберите флажок

Обеспечение целостности данных и затем флажки каскадное обновление связанных полей и каскадное удаление связанных полей.

14

Рис. 2.18. Окно для объявления отношения между таблицами

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

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

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

Аналогичным образом установите связь один - ко - многим между таблицами Поставщики (главная) и Поступления на склад (подчиненная).

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

Врезультате этой операции появится диалоговое окно Связи, внизу которого в поле Тип отношения автоматически установится тип один - ко - многим. В этом окне для каждого поля составного ключа таблицы Заказы нужно выбрать из раскрывающегося списка в столбце Связанная таблица/запрос (см. рис.2.19) соответствующее поле подчиненной таблицы

15

Состав заказа. После задания параметра Обеспечение целостности данных

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

Рис 2.19. Окно диалога для задания параметров связи

Если же таблицы уже содержат данные, не отвечающие требованиям целостности, связь не устанавливается и выдается сообщение о невозможности установления связи, которое может быть представлено, например, в виде

(рис.2.20).

Рис. 2. 20. Об отсутствии уникального индекса

Определив отношения (связи) между остальными таблицами базы, схема данных принимает вид, показанный на рис 2.21.

16

Рис. 2.21. Схема данных БД Товарная база

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

Технология ввода данных

При вводе данных в поля взаимосвязанных таблиц базы следует выполнять определенные требования к очередности их заполнения. Несоблюдение очередности ввода данных в таблицы базы данных может создать проблемы с созданием схемы данных и обеспечением целостности данных.

Эти требования можно сформулировать следующим образом:

Независимо, без проблем можно вводить данные в таблицы, которые не подчинены другим таблицам. Такие таблицы называют главными.

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

Для одновременного ввода данных во взаимосвязанные отношениями один - ко - многим таблицы следует использовать специальные экранные формы. Проектирование таких форм возможно только после создания схемы данных.

Вначале следует произвести загрузку таблиц Клиенты, Поставщики и

Тип отделки. Загрузка этих таблиц может производиться в любой

17

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

Самым простым способом ввода данных в таблицу является непосредственный ввод данных в режиме таблицы. Для этого следует открыть окно базы данных, выбрать вкладку Таблицы, установить курсор на имени таблицы и нажать кнопку Открыть. Затем нужно ввести данные в первое поле таблицы и нажать клавишу [Tab], чтобы перейти на следующее поле. Отменить ввод значения в поле можно путем нажатия клавиши [Esc]. Чтобы отменить ввод всей записи, дважды нажмите [Esc]. Закончив ввод данных в последнее поле записи, опять нажмите [Tab], чтобы перейти в начало следующей записи.

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

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

Для обеспечения удобства ввода и отображения введенной в эти таблицы информации служат экранные формы.

На рис. 2.22 показана разработанная автором составная многотабличная форма с двумя подчиненными формами Заказы и учет их выполнения.

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

Представленная здесь составная многотабличная форма предназначена для работы с четырьмя взаимосвязанными таблицами, а именно: Клиенты, Заказы, Состав заказа и Остаток на складе. С точки зрения схемы данных четвертая таблица Остаток на складе не состоит в каких-либо отношениях с первыми тремя. Однако связь первых трех таблиц с таблицей Остаток на складе осуществляется через специально созданный запрос действия - запрос на обновление результатов складского учета при выполнении заказа.

Показанная на рис форма позволяет вводить данные одновременно в три базовые таблицы: Клиенты, Заказы, Состав заказа и обновлять данные в таблице Остаток на складе после исполнения заказа.

18

Рис. 2.22. Многотабличная форма Клиенты, заказы и учет их выполнения

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

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

19

соответствующие поля, расположенные в разделе формы Состав заказа клиента (п.ф.).

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

20

Соседние файлы в папке ИТ_автоматизир_Access