Сделай Сам Свою Работу на 5
 

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

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

Примером одной из таких таблиц является вложенная таблица «Приход». Почему данная таблица является вложенной. Разберемся с этим.

Главной нашей целью является ввод данных о покупке товаров в определенный день у конкретного поставщика. Поставщик один, а товаров, которых он продает нашему предприятию может быть множество. Например, поставщик «МЧП БЕЛИНДА» продает товары каша гречневая, каша с курицей, каша с грибами. При этом другой поставщик «ЧП МАКРОС» продает только кашу гречневую и с курицей. И так далее.

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

Согласно условию, данную таблицу можно разбить на 2 - главную и ей подчиненную, т.к. на одну накладную можно выписывать продажу нескольких товаров. Поэтому делим на 2 таблицы: «Приход» и «Ввод_прихода». В таблице Приход мы будем указывать дату покупки и реквизиты Поставщика, а в таблице ввод_прихода уже будут перечислены все продаваемые предприятию товары.

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

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

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

2. Данные в главную таблицу не вводить.

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

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

5. Данные в подчиненную таблицу не вводить.



6. Установить связь один-ко-многим между главной и подчиненной таблицами.

Теперь данные можно вводить в таблицы. Однако данные лучше вводить с помощью специальной формы, которую нужно будет создать. Это делается для обеспечения целостности данных. Однако мы это будем делать в следующем практическом занятии. Однако внешний вид такой формы приводим на рис. 9. А сейчас только создадим структуру этих таблиц.

Рис.9. Создание главной и подчиненной таблицы приходная накладная.

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

Поэтому для завершения работы с вложенной таблицей необходимо также:

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

8. Для улучшения ввода данных создать подчиненные поля.

Создание таблицы Приход.

1. Создайте новую таблицу в режиме конструктора.

2. В конструкторе введите поля, согласно рис.10.

Примечание !!! В таблице будут использоваться данные о поставщиках, поэтому обязательным полем будет Код_поставщика и тип его Числовой.

2. Закройте конструктор и сохраните таблицу под именем Приход.

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

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

4. Добавьте все таблицы. Чтобы вновь добавить в эту схему таблицу или таблицу, у которой связи еще не установлены, необходимо:

· Щелкнуть правой кнопкой мыши на свободном пространстве схемы данных и из контекстного меню выбрать команду Добавить таблицу(Show table).

· В диалоговом окне Добавление таблицы(Show table) раскрыть вкладку Таблицы(Tables), выбрать из списка таблицу, и нажать кнопку Добавить(Add).

· Нажать кнопку Закрыть(Close), чтобы закрыть диалоговое окно Добавление таблицы(Show table).

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

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

· Для этого устанавливают флажок Обеспечение целостности данных(Enforce Referential Integrity) и один или оба флажка: каскадное обновление связанных полей(Cascade Update Related Fields) и каскадное удаление связанных записей(Cascade Delete Related Records) (см. следующий раздел).

· При необходимости можно изменить параметры объединения, для чего требуется нажать кнопку Объединение(Join Type) и выбрать один из переключателей (рис. 13):

o 1. Объединение только тех записей, в которых связанные поля обеих таблиц совпадают;

o 2. Объединение ВСЕХ записей из <имя первой таблицы> и только тех записей из <имя второй таблицы>, в которых связанные поля совпадают;

o 3. Объединение ВСЕХ записей из <имя второй таблицы> и только тех записей из <имя первой таблицы >, в которых связанные поля совпадают.

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

· После установки всех параметров связи необходимо нажать кнопку ОК в окне Параметры объединения(Edit Relationship).

6. Установите свойства связи: обеспечение целостности данных, каскадное обновление и удаление данных.

7. Закройте схему данных и сохраните ее.

8. Откройте таблицу Приход в режиме конструктора.

9. Щелкните на поле Код_поставщика, преобразуем его в постановочное поле. Для этого:

· В свойствах поля, перейдите на вкладку Подстановка.

· Выберите – Поле со списком.

· Нажмите на троеточие в свойстве Источник строк -

· У Вас откроется окно – MS ACCESS – Инструкция SQL: построитесь запросов. Это окно, с которым мы познакомимся более подробно на следующих занятиях. Его назначение – создание запросов. В нашем случае мы хотим создать раскрывающийся список с данными о поставщике, в котором будет вместо простого его номера отображаться информация о его названии, идентификационном коде, фамилии директора.

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

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

· Необходимо давить добавить данные о поставщике (название, идентификационный код, фамилия директора). Однако, чтобы информация отображалась верно необходимо обязательно добавить ключевое поле Код_поставщика, который однозначно идентифицирует поставщика. И это поле, конечно, должно идти первым, так как именно по этому полю мы создаем связь между двумя таблицами.

· Чтобы добить поле Код_поставщика в запрос выделите его в таблице Поставщики и два раза щелкните левой клавишей мыши. При этом в нижней области конструктора отобразится поле Код_поставщика. Аналогично добавьте 3 поля –те поля, которые мы хотим увидеть в списке – название_поставщика, идентф_код, ФИО_директора. У вас должен получится запрос приведенный на рис.15.

· Закройте конструктор, подтвердите сохранение.

· Измените свойства:

· Число полей - 4

· Заглавия столбцов – Да.

· Ширина полей – 0;3;0;0. Почему мы устанавливаем нулевую ширину столбцов? Установив нулевую ширину первого столбца Код_поставщика мы скрываем ненужный для обычных пользователей сгенерированный код Поставщика. Обычному пользователю более информативно увидеть название поставщика. А почему мы скрываем информацию о коде и фамилии директора? Дело в том, что сейчас при создании таблицы Приход в подчиненном поле достаточно увидеть информацию о названии поставщика, а вот при создании в дальнейшем соответствующей формы мы воспользуемся скрытыми полями.

· Перейдите навкладку Общиеи измените свойства поля: Подпись – Поставщик, и уберите Значение по умолчанию равное 0.

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

11. Заполнять таблицу не нужно, так как не создана к ней подчиненная «Ввод_прихода».

Примечание!!! Подчиненные таблицы обычно заполняются, используя объект Форма.

Самостоятельно создайте подчиненную таблицу «Ввод_прихода».

Для этого создайте новую таблицуВвод приходав режиме конструктора.Создайте поля: Код_ввода_прихода(счетчик, ключевое поле);код_прихода(числовое);код_товара(числовое); цена(денежный, формат поля - $# ##0,00;($# ##0,00), число десятичных знаков -2, ),кол-во(числовой),сумма (денежный, формат поля - $# ##0,00;($# ##0,00), число десятичных знаков -2).

Установите межтабличные связи один-ко-многим, т.е. свяжите таблицы Ввод прихода с Приход, и с Товарами по ключевым полям.

Создайте подчиненное поле в таблице Ввод_прихода на поле Код_товара, с целью отображения списка названий товаров.

А на поле Код_прихода в таблице Ввод_прихода не создается подчиненное поле!!.

Самостоятельно создайте аналогичную таблицу Расход.

Данные в таблицах Приход и Расход и им подчиненных таблицах заполнять не будем, так как заполнение подчиненных форм необходимо выполнять вместе. И эту операцию лучше выполнять через специальный инструмент – диалоговые формы. А формы мы будем создавать на следующем практическом занятии.

В заключении, проверьте правильность всех имен полей таблиц. Для этого поочередно открывайте все таблицы в режиме конструктора и проверяйте имена и в случае их не совпадения внесите соответствующие изменения. При этом обращайте внимание на пробелы в именах, символы нижнего подчеркивания и знаки тире. И самое главное, вы должны придерживаться и порядка их следования. У вас должны быть имена полей: Таблица Товары: Код_товара, Название_товара, Цена_приходная, Цена_расходная, Примечание, Единица_измерения; Таблица Поставщики: Код_поставщика, Название_поставщика, Адрес, Город, Страна, Идентификац№_поставщика, Телефон, Признак, Дата_регистрации, ФИОдиректора, Банковский_счет; Таблица Клиенты: Код_клиента, Название_клиента, Адрес, Город, Страна, Идентификац№_клиента, Телефон, Признак, Дата_регистрации, ФИОдиректора, Банковский_счет; Таблица Приход:Код_прихода, Код_поставщика, Дата_накладной, Идентифик№поставщика, ФИОпоставщика;Таблица Ввод-приход: Код_ввода_прихода, код_прихода, код_товара, цена, кол-во, сумма;Таблица Расход:Код_расхода, Код_клиента, Дата_накладной, Идентифик№клиента, ФИОклиента;Таблица Ввод-расход: Код_ввода_расхода, код_расхода, код_товара, цена, кол-во, сумма.

 



©2015- 2022 stydopedia.ru Все материалы защищены законодательством РФ.