Читайте также: |
|
Для таблицы заказы мы выбрали следующие типы данных:
номер (заказа). Код клиента и Код продукта - числовой (целое число);
количество - числовой (с плавающей точкой);
дата поставки - дата/время (краткий формат даты).
Закончив создание таблицы, мы открыли ее и заполнили данными (рис. 10.9).
Точно так же мы подготовили таблицы клиенты и ПРОДУКТЫ (рис. 10.10):
Если вам не нравится ширина столбца таблицы (например, она слишком велика или, наоборот, мала и скрывает часть данных), ее можно уменьшить или увеличить, - точно так же, как вы изменяли ширину столбца в Excel (глава 8).
Перемещение по таблице. В строке состояния (рис. 10.9) указывается общее число записей в таблице и номер текущей записи (т. е. записи с фокусом - см. п. 5.6). Текущая запись отмечается стрелкой в левой части окна (в области маркировки записей). Для перемещения по таблице служат кнопки переходов в строке состояния (слева направо: переход к первой записи таблицы, к предыдущей записи, к следующей записи и к последней записи таблицы).
Чтобы переместить текстовый курсор в произвольную ячейку таблицы, можно просто щелкнуть на ячейке мышью.
Кроме того, по таблице можно перемещаться с помощьюклавиш {Tab}, {Shift+Tab}, стрелок курсора.
Примечание. Примерно так же вы можетеработать и с окномзапроса (п.10.17).
Редактирование таблицы. При вводе данных используется основной стандарт редактирования, рассмотренный нами в главе 3 (п.3.4). Закончив ввод или модификацию данных в конкретном поле, нажмите {Tab} или {Enter} (или щелкните мышью в другой ячейке таблицы).
Работу с полями объектовOLE мы фактически рассмотрели в главе 4 (п.4.15.2). Для ввода (внедрения) объектаOLE надо щелкнуть правой кнопкой на его поле и выбрать OLE-сервер из списка, показанного на рис. 4.21.
После внедрения OLE-объекта отображаемым в таблице значением его поля будет название соответствующего OLE-сервера (например, «Microsoft Word 6.0»). Чтобы просмотреть или отредактировать объект (или, скажем, чтобы воспроизвести звукозапись) надо, как всегда, дважды щелкнуть на этом названии (см. п. 4.15.2).
Фильтр. Работая с таблицей в оперативном режиме, вы можете установить фильтр, т.е. задать логическое выражение, которое позволит выдавать на экран только записи, для которых это выражение принимает значение TRUE («Истина»).
Фильтр набирается в окне фильтра, - точно так же, как и условие отбора для запроса, описанное в п. 10.17.2.
Чтобы установить (или изменить фильтр), выберите команду [Записи-Изменить фильтр...], отредактируйте фильтр и выберите
команду [Записи-Применить фильтр]. Чтобы восстановить показ всех записей, выберите команду [Записи-Показать все записи].
Операции с записями и столбцами. С помощью команд меню и кнопок панели инструментов вы можете проводить множество стандартных операций с записями и столбцами: вырезать и копировать в буфер, удалять записи, скрывать столбцы и т. д.
Форма
Итак, в п.10.15.2 нами рассмотрен универсальный способ представления в окне всех полей конкретной таблицы (рис. 10.9 и 10.10). Основные недостатки этого способа заключаются в следующем.
1. Если полей слишком много, они не умещаются на экране, и приходится прибегать к различным манипуляциям, чтобы отрегулировать («оптимизировать») представление: убирать некоторые столбцы, изменять ширину столбцов, перемещаться по таблице с помощью полосы прокрутки.
2. Если в таблице имеются какие-то коды, таблица теряет информативность: приходится иметь под рукой классификатор, чтобы понять, какому экземпляру объекта соответствует тот или иной код.
Чтобы упростить просмотр, ввод и модификацию данных в конкретной таблице, вы можете (но не обязаны) создать для нее одну или несколько форм. Форма - это документ, в окне которого отображается, как правило, одна запись таблицы, причем пользователь имеет возможность по своему усмотрению разместить поля на форме.
По структуре форма похожа на окно диалога.
В зависимости от природы поля, вы можете сохранить для него обычное представление (полем ввода, как в таблице), или исключить поле, или описать группой радиокнопок (если поле имеет несколько допустимых значений), или флажком (для логических данных), или полем ввода со списком и т. п.
Как и любой объектMS Access, вы можете создать форму вручную или воспользоваться услугами Мастера форм. Формасоздается для конкретной таблицы или конкретного запроса. Чтобы создать форму, необходимо выполнить серию стандартных шагов, описанных в п. 10.14.4.
Для ввода данных в оперативную таблицу заказы, с помощью Мастера мы создали форму-столбец с именем ВВОД заказов (рис, 10.11).
Чего мы добились? В данном случае почти ничего: по сравнению с рис. 10.9, нам удалось лишь «оптимизировать» ширину и расположение полей, но коды клиента и продукта вводить по-прежнему неудобно. Поэтому в качестве примера мы покажем, как заменить поле ввода Код клиента: полем со списком. В этом списке, кроме кода, будет отображаться и наименование клиента, и это резко упростит и просмотр, и ввод, и модификацию информации.
1. Вызовите окно формы < Ввод заказов> в режиме конструктора.
2. Установите флажки [Вид-Панель элементов] и [Вид-Мастера] (или щелкните на соответствующих кнопках в панели инструментов и панели элементов).
3. Щелкните в панели элементов на кнопке «Полесо списком».
4. Установите указатель мыши вокне формы наполе Кодклиента: (т. е. на то место, где вы хотите создатьполе со списком) и щелкните мышью.
На экране появится окно Мастера форм. Вам необходимо ответить на серию его вопросов (переход к очередному вопросу - кнопка Далее) и щелкнуть на кнопке Готово. В результатеформа<Ввод заказов> примет вид, показанный на рис. 10.12.
И теперь вам уже не надо вспоминать или искать нужный код клиента: его можно просто выбрать в стандартном списке (на рисунке он показан раскрытым). Точно так же вы можете создать поле со списком для кода продукта.
Остальные возможности Мастера форм вы можете изучить на опыте.
Таблица и форма
Таблица и форма - основные объекты в современных информационных системах. Они неотделимы друг от друга, и очень часто разработчики совмещают их в одном окне документа, на разных вкладках. Основную идею такого подхода мы проиллюстрируем фрагментом телефонного справочника, описанного, в п.10.4 и включенного в современную ИС «Вариант» (п.10.20).
Таблица - это просто список экземпляров объекта (рис. 10.13), и в нем находятся лишь «ключевые», основные столбцы, - например, фамилии лиц и их должности или номера телефонов и имена абонентов. Такой список можно просматривать, но изменять его нельзя.
Выделив какую-либо строку списка, вы можете щелкнуть на вкладке Форма и получить более подробные сведения о выделенном экземпляре объекта (рис. 10.14).
Обратите внимание на кнопку со знаком вопроса у поля Категория. Эта кнопка эквивалентна кнопке раскрывающегося списка и позволяет выдать на экран классификатор категорий (а затем выбрать из него категорию: «Родственники», «Магазины» и т. п.).
На вкладке Форма вы можете и просмотреть данные по выделенному экземпляру объекта, и модифицировать их, и ввести новый экземпляр объекта.
Вопросы и задания
1. Что такое свойства поля в MS Access?
2. Пользуясь экранными подсказками, составьте перечень свойств поля для каждого типа данных, допустимого в MS Access.
3. Пользуясь экранными подсказками, изучите свойство поля «Маска ввода». В каких случаях удобно использовать маску ввода?
4. Объясните смысл свойства «Обязательное поле».
5. Перечислите основные операции, которые можно проводить в окне таблицы (рис. 10.9).
6. Пользуясь кнопками на панели инструментов, рассортируйте таблицу заказы (рис. 10.9) по возрастанию кода клиента, а затем - по убыванию дат.
7- Что такое фильтр? Установите и примените несколько фильтров к таблице заказы (рис. 10.9). Можно ли использовать фильтр с формой?
8. Пользуясь экранными подсказками, изучите функции кнопок панели инструментов для таблицы в оперативном режиме.
9. Чем отличается форма от таблицы? В чем преимущества применения формы?
10. Пользуясь Мастером форм, вставьте в форму (рис. 10.12) поле со списком «Код продукта».
11. Как используются таблицы и формы в информационных системах?
Связь между таблицами и целостность данных
Общие положения
Между одноименными полями двух таблиц MS Access автоматически устанавливает связь. Например, между таблицами
SLOVKAT и TELEFON устанавливается связьпо полю катег.
Что это означает?
Это означает, что при формировании запроса к этой паре таблиц Access сможет объединить строки таблиц, в которых значения поля катег совпадают. Например, вы создали запрос, в котором потребовали выдать на экран список телефонов из TELEFON с указанием наименования категории абонента. Access соединит каждую запись с конкретным наименованием из SLOVKAT (например, Друзья) со всеми записями TELEFON, в которых значение поля катег совпадает со значением этого поля в записи SLOVKAT (например, ДР).
Кроме того. Access позволяет вручную установить связь между таблицами по разноименным полям, однако этой возможностью лучше не пользоваться: это запутывает и аналитиков, и пользователей.
! В общем случае допускается связь по двум, трем и более одноименным полям, но для простоты изложенияэтот случай мы не рассматриваем.
Целостность данных. Итак, если установлена связь между двумя таблицами (автоматически или вручную), данные из обеих таблиц можно объединять. Иногда этого достаточно (например, при ведении простого телефонного справочника), однако при создании серьезных баз данных нам придется позаботиться о дополнительных средствах контроля связанных данных, вводимых в разные таблицы. Например, при ведении таблицы заказы (см. п. 10.15.2) нельзя допустить случайный ввод в эту таблицу данных о несуществующих клиентах или продуктах, нельзя удалять из словарей записи о клиентах, которые заказывают продукты и т. п.
Механизм, который обеспечивает согласованность данных между двумя связанными таблицами, называется так: поддержка целостности данных. Чтобы обеспечить целостность данных, при установлении связи между двумя таблицами нужно активизировать переключатель, описанный в п. 10.16.2.
Если пользователь включил механизм поддержки целостности, он должен одновременно указать тип связи: «Один-к-Одному» или «Ояин-ко-Многим» (см. п.10.12).
Целостность данных означает;
1) в связанное поле подчиненной таблицы можно вводить только те значения, которые имеются в связанном поле главной таблицы(например, в таблицу заказы нельзя ввести записьс кодом клиента, который отсутствует в таблице клиенты);
2)из главной таблицы нельзя удалить запись, у которой значение связанного поля совпадает хотя бы с одним значением того же поля в подчиненной таблице (например, из таблицы клиенты нельзя удалить код клиента, который еще не удален из таблицы заказы).
• При попытке нарушить эти запреты, MS Access выдает сообщение об ошибке.
Каскадное обновление и удаление записей. Включив механизм поддержки целостности, вы можете (но не обязаны) потребовать, чтобы при модификации данных система запускала следующие процессы:
• каскадное обновление связанных полей',
• каскадное удаление связанных записей.
Каскадное обновление означает, что изменение значения связанного поля в главной таблице (например, кода клиента) автоматически будет отражено в связанных записях подчиненной таблицы. Например, если вы замените в таблице клиенты код клиента 80 на 85, то код клиента 80 во всех записях таблицы заказы изменится на 85.
Каскадное удаление означает, что при удалении записи из главной таблицы (например, записи с кодом клиента 20),из подчиненной таблицы будут удалены все записи, у которых значение связанного поля совпадает с удаляемым значением (например, клиенты с кодом 20).
Техника создания связей между таблицами
Установление связей между таблицами рассмотрим на конкретном примере ~ нашей базе данных.
Выберите команду [Правка-Схема данных...]. На экране появится диалоговое окно (рис. 10.15) со списком всех таблиц открытой базы данных.
Примечание. Пользуясь полями выбора. Показать,вы можете включить в этот список и запросы (или создать списоктолько из запросов).
Ваша задача - указать системе те таблицы, между которыми вы устанавливаете связи. Выделите таблицу заказы и нажмите кнопку Добавить, затем то же самое проделайте с таблицами клиенты и продукты. Нажмите кнопку Закрыть.
Примечание. Удерживая нажатой клавишу {Ctrl},вы можете выделить (и добавить) сразу несколько таблиц.
На экране появляется окно документа < Схема данных> (рис. 10.16).
Это окно содержит все таблицы базы данных, между которыми устанавливаются (или уже установлены) связи. Для установления связи между двумя таблицами можно методом «Drag-and-Drop» переместить имя поля с первичным ключом главной таблицы на одноименное поле подчиненной таблицы.
Примечание. Для экономии места на рисункемы показалиужезавершенную схему (см. ниже).
Прежде всего установим связь между таблицами клиенты и заказы. Переместите «Код клиента» из таблицы клиенты на «Код клиента» в таблице заказы и отпустите левую кнопку мыши.
На экране появится диалоговое окно <Связи> (рис. 10.17).
В этом окне установите флажок «Обеспечение целостности данных». Этим вы включаете механизм поддержки целостности данных в таблицах клиенты и заказы (п.10.16.1).
После активизации флажка «Обеспечение целостности данных» становятся доступными группа полей выбора Отношение и два флажка каскадных операций.
В группе Отношение надо обязательно выбрать один из типов связи: «Один-к-Одному» или «Один-ко-Многим». Кроме этого, вы можете (если хотите) включить любой переключатель (или оба) каскадной модификации - обновления или удаления.
Нажмите кнопку Создать.На экране вновь появится окно < Схема данных> с графическим изображением установленной связи (рис. 10.16).
Пометки у концов линии связи означают, что одна запись таблицы клиенты может иметь сколько угодно связанных записей в таблицезаказы.
Точно так же установите связь между таблицами ПРОДУКТЫ и заказы.
Если вы хотите удалить связь, щелкните мышьюна линии связи (выделите ее), а затем нажмите клавишу {Del}.
Вопросы и задания
1. Что такое целостность данных?
2. Что такое каскадные операции?
3. Чем отличается каскадное обновление от каскадного удаления?
4. Укажите типы и опишите функции окон <Схема данных> и < Связи >.
5. Исследуйте процесс установления связей между таблицами. Составьте перечень сообщений об ошибках и объяснитеих смысл.
Дата добавления: 2015-10-29; просмотров: 103 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Создание и модификация макета таблицы | | | Как создать запрос-выборку |