Павел Дубнов - Access 2002: Самоучитель
после нажатия на нее отобразится меню, содержащее те объекты базы данных (таблицы, формы, запросы), которые мы хотели бы видеть в качестве подчиненных в таблице Страны (рис. 3.34).
Рис. 3.33Рис. 3.34
Выберем в этом меню позицию Таблица. Фирмы и после обычных преобразований (режим конструктора, сохранение изменений в таблице, окно базы данных, открытие таблицы) получим первичную таблицу Страны – рис. 3.35.
Рис. 3.35Следует добавить, что кроме поля Имя подтаблицы необходимо заполнить еще два поля в указанном окне Свойства таблицы, а именно: Подчиненные поля и Основные поля. Их надо заполнить именами тех полей, которые являются связующими между таблицами. В данном случае подчиненным полем будет Код фирмы, основным полем – Код.
На первый взгляд эта таблица идентична предыдущей, приведенной на рис. 3.32. Однако обратите внимание на значки (+), стоящие возле каждого кода фирмы. Они указывают на то, что здесь в свернутом виде содержится информация. Если щелкнуть по такому значку, соответствующая строка раскроется, и вы увидите перечень фирм, относящихся к этой стране, в данном случае USA (см. рис. 3.36).
Рис. 3.36Иначе говоря, на рис. 3.36 продемонстрирована иерархическая двухуровневая структура Страны и Фирмы. Теперь для таблицы второго уровня – Фирмы – выполним такие же действия с окнами Свойства таблицы и Имя подтаблицы (см. рис. 3.34). В качестве родительской таблицы примем Фирмы, а в качестве дочерней – Менеджер. Связанными полями в обеих таблицах определим Код фирмы. Тогда таблица Фирмы, в свою очередь, будет содержать свернутую информацию о менеджерах, что также показано на рис. 3.34. Если вы раскроете эту информацию, то увидите уже трехуровневую иерархическую структуру Страны, Фирмы и Менеджер (см. рис. 3.38). Таким способом в принципе можно создать иерархическое дерево. В пределах таблицы можно вложить до восьми уровней подтаблиц. Однако каждая таблица или подтаблица, как мы видим, может иметь только одну вложенную подтаблицу. Подтаблица, относящаяся к подчиненной форме, может использовать в качестве источника данных таблицу, запрос или форму.
Рис. 3.37Рис. 3.38
Кроме того, Access 2002 автоматически создает подтаблицу в таблице, имеющей отношение «один-к-одному» или являющейся стороной «один» в отношении «один-ко-многим», если свойство таблицы Имя подтаблицы имеет значение Авто.
Но это еще не все. Подтаблицу можно создать (по мнению автора) и более простым способом. И в дополнение к этому Access 2002 позволяет создать инвертированную подтаблицу. Если подтаблица, включенная в таблицу Страны, показывает фирмы, относящиеся к данной стране (точнее, к записи, связанной с этой страной), то инвертированная подтаблица, включенная в таблицу Фирмы, отобразит страны, связанные с этой фирмой.
Покажем это построение с использованием более простого пути. Откроем таблицу Фирмы (рис. 3.38).
Теперь откроем меню Вставка и в нем позицию Подтаблица. На вкладке Таблицы выделим Страны. В этом случае таблица Фирмы будет основной, а таблица Страны – подчиненной. Поэтому в нижней части диалогового окна Вставка подтаблицы укажем с помощью стрелок прокрутки в качестве основного поля Код фирмы, а в качестве подчиненного – Код (рис. 3.39).
Рис. 3.39Открытая таблица Фирмы будет выглядеть так, как показано на рис. 3.40.
Рис. 3.40В качестве примера открыто два фрагмента. При этом в таблице Страны созданная раньше подтаблица (рис. 3.35) осталась неизменной. Если необходимо одним щелчком развернуть все записи подтаблицы или свернуть все раскрытые записи, следует выбрать позицию Подтаблица в меню Формат (при открытой таблице Фирмы). Эта же позиция позволяет удалить подтаблицу.
Следует сказать, что такой способ применим для создания любой подтаблицы, а не только для инвертированной, как могло бы показаться из данного примера. Он не изменяет уже имеющихся связей между таблицами, отображаемых на схеме данных, но требует, чтобы между основной таблицей и подтаблицей связь такого типа была установлена. Если такая связь при создании подтаблицы отсутствует, Access с вашего позволения установит ее автоматически.
Таким образом, создание подтаблиц в Access правильнее отнести не к новому типу связей, а скорее к новому типу их отображения.Резюме
1. Формирование таблиц является первым этапом создания БД, так как таблицы в Access – это те первичные, исходные файлы, на основе которых в дальнейшем строится вся база данных. Access 2002 и предыдущие версии предоставляют пользователю несколько разных вариантов построения таблиц.
2. В настоящей главе рассматривались три варианта формирования таблиц: режим таблицы или режим ввода данных, режим конструктора и мастер таблиц. Еще два варианта создания таблиц – импорт таблиц и связь с таблицами – рассматриваются в том разделе главы 7, который посвящен объединению разнородных баз данных.
3. Наиболее детальным, гибким и основательным (и, соответственно, самым трудоемким) методом формирования таблиц является режим конструктора.
4. Для надежного контроля за файлами в Access предусмотрен механизм системных первичных кодов. Этот механизм очень полезен, и если у пользователя нет каких-то серьезных причин отказываться от введения первичных кодов, рекомендуется их всегда создавать.
5. Используемые в Access типы данных очень разнообразны, и для их эффективного применения следует перед выбором типа еще раз уточнить назначение этих данных при функционировании БД.
6. В Access 2002 предусмотрены два свойства полей: Формат и Маска ввода. Обе опции позволяют задавать формат, в котором данные вводятся или, точнее, запоминаются при вводе в таблицу.
Свойство Формат рекомендуется применять при последовательном вводе данных в таблицу.
Свойство Маска ввода целесообразно при отображении литеральных (символьных) констант, а также при вводе данных в пустые графы (бланки, таблицы и т. д.). При этом пользователю рекомендуется сформировать маску ввода вручную – это значительно проще.
7. Часто поле может включать лишь определенные значения, которые иногда содержатся в заранее заданном списке, а иногда – в самом поле, вместе с произвольно вводимыми данными. В этих случаях ввод данных можно упростить и ускорить за счет использования подстановок.
8. Для создания информационных структур можно использовать аппарат связей между таблицами, либо возможность организации вложенных подтаблиц, либо и то и другое вместе. Эти средства позволяют пользователю создавать достаточно сложные структуры данных.
Глава 4 Создание форм новой базы данных
Если таблицы служат первичными, исходными элементами базы данных, то «на выходе» вы получаете формы и отчеты. Как правило, формы используются для получения ответов на запросы пользователя, записи данных в таблицы и/или изменения этих данных при их вводе либо корректировке. Отдельное направление использования представляют собой сводные таблицы и сводные диаграммы, рассматриваемые в этой главе. Для распечатки, то есть для получения копии данных на твердом носителе, применяются отчеты.
В Access формы можно создавать разными способами:
• посредством автоформы;
• с помощью разных вариантов мастера форм;
• с помощью конструктора;
• с помощью сводной таблицы;
• с помощью диаграммы;
• с помощью запросов;
• путем расширения форм за счет включения в них диаграмм, картографических данных, рисунков.
В настоящей главе будут рассмотрены три первых способа: они позволяют строить формы, в которых значения величин, хранящихся в БД, остаются неизменными. (Изменение данных – выборочное или нет – требует создания запроса и относится уже скорее к области программирования.) Кроме того, благодаря использованию гиперссылок Access 2002 позволяет включать в формы картографические данные, рисунки и фрагменты текстовых файлов.
Использование автоформы
Таким способом можно создать форму, отображающую все поля и записи базовой таблицы или запроса. Запрос после выполнения может представлять собой таблицу, структура которой аналогична любой другой таблице и содержит поля и записи. Такая структура будет жесткой и однозначной, вплоть до того, что даже если таблица имеет подтаблицу, то последняя в создаваемой форме отражена не будет. Иначе говоря, форма будет создана строго в пределах одной базовой таблицы, и изменить ее пользователь не сможет. Таким образом, автоформа – самый легкий и наименее гибкий способ построения формы. Теперь посмотрим, как это делается.