• выделяют столбец щелчком на его заголовке (кнопку мыши отпускают);
• еще раз щелкают на заголовке уже выделенного столбца (но кнопку не отпускают);
• перетаскивают столбец в другое место.
Управление отображением данных в результирующей таблице. В нижней части бланка запроса по образцу имеется строка Вывод на экран. По умолчанию предполагается, что все поля, включенные в запрос, должны выводиться на экран, но это не всегда целесообразно. Например, бывают случаи, когда некое поле необходимо включить в запрос только потому, что оно является полем сортировки, но, в то же время, нежелательно, чтобы пользователь базы видел его содержание. В таких случаях отображение содержимого на экране подавляют сбросом флажка Вывод на экран. Примером может быть запрос на вывод списка сотрудников предприятия, отсортированный по количеству дней, пропущенных по болезни. Он позволит каждому оценить свое положение в этом списке, но не позволит точно узнать, кто и сколько дней болел.
Использование условия отбора. Дополнительным средством, обеспечивающим отбор данных по заданному критерию, является так называемое Условие отбора. Соответствующая строка имеется в нижней части бланка запроса по образцу. Для каждого поля в этой строке можно задать индивидуальное условие. На рис. 14.13 представлен пример, в котором мы хотим отобрать из прейскуранта торговой фирмы книги, имеющие объем более 400 страниц, но при этом стоящие менее восьмидесяти рублей.
Рис. 14.13. Работа условия отбора
Другие виды запросов. Мы рассмотрели запросы на выборку. Это самые простые и, в то же время, наиболее распространенные виды запросов. Однако существуют и другие виды запросов, некоторые их которых выполняются на базе предварительно созданного запроса на выборку. К ним относятся прежде всего:
• запросы с параметром (интересны тем, что критерий отбора может задать сам пользователь, введя нужный параметр при вызове запроса);
• итоговые запросы, назначение которых отдаленно напоминает итоговые функции электронных таблиц (производят математические вычисления по заданному полю и выдают результат);
• запросы на изменение — позволяют автоматизировать заполнение полей таблиц;
• перекрестные запросы, позволяющие создавать результирующие таблицы на основе результатов расчетов, полученных при анализе группы таблиц;
• специфические запросы SQL — запросы к серверу базы данных, написанные на языке запросов SQL.
С некоторыми видами запросов мы познакомимся в упражнениях.
Работа с формами
С одной стороны, формы позволяют пользователям вводить данные в таблицы базы без непосредственного доступа к самим таблицам. С другой стороны, они позволяют выводить результаты работы запросов не в виде скупых результирующих таблиц, а в виде красиво оформленных форм. В связи с таким разделением существует два вида формирования структуры форм: на основе таблицы и на основе запроса, хотя возможен и комбинированный подход. Это вопрос творчества.
Автоформы. В отличие от таблиц и запросов, которые мы формировали вручную, формы удобнее готовить с помощью средств автоматизации. Полностью автоматическими являются средства, называемые автоформами. Существует три вида автоформ: «в столбец», ленточные и табличные (рис. 14.14).
Рис. 14.14. Три вида автоформ
Как видно из рисунков, автоформа «в столбец» отображает все поля одной записи — она удобна для ввода и редактирования данных. «Ленточная» автоформа отображает одновременно группу записей — ее удобно использовать для оформления вывода данных. Табличная автоформа по внешнему виду ничем не отличается от таблицы, на которой она основана.
Для создания автоформы следует открыть панель Формы в окне База данных и воспользоваться командной кнопкой Создать. В открывшемся диалоговом окне Новая форма выбирают тип автоформы и таблицу (или запрос), на которой она основывается. После щелчка на кнопке ОК автоформа формируется автоматически и немедленно готова к работе, то есть к вводу или отображению данных.
Обратите внимание на то, что автоформа основывается только на одном объекте. Иные средства создания форм позволяют закладывать в основу структуры формы поля нескольких таблиц или запросов. Если форма основывается только на одном объекте, она называется простой формой. Если форма основывается на полях из нескольких связанных таблиц, то она называется сложной и представляет собой композицию из нескольких форм.
Создание форм с помощью мастера. Автоматизированные средства предоставляет Мастер форм — специальное программное средство, создающее структуру формы в режиме диалога с разработчиком. Мастер форм можно запустить из окна База данных щелчком на значке Создание формы с помощью мастера на панели Формы.
1. На первом этапе работы Мастера форм выбирают таблицы и поля, которые войдут в будущую форму.
2. На втором этапе выбирается внешний вид формы.
3. На третьем этапе выбирается стиль оформления формы.
4. На последнем этапе выполняется сохранение формы под заданным именем. Здесь же можно включить переключатель Изменить макет формы, который открывает только что созданную форму в режиме Конструктора. Этим удобно воспользоваться в учебных целях, чтобы рассмотреть структуру формы на готовом примере.
Структура формы. Как видно из рисунка 14.15, форма имеет три основных раздела: область заголовка, область данных и область примечания. Линии, разделяющие разделы, перетаскиваются по вертикали с помощью мыши — это позволяет изменять размеры разделов так, как требуется.
Рис. 14.15. Структура формы, созданной мастером
Разделы заголовка и примечания имеют чисто оформительское назначение — их содержимое напрямую не связано с таблицей или запросом, на котором основана форма. Раздел данных имеет содержательное значение — в нем представлены элементы управления, с помощью которых выполняется отображение данных или их ввод. Разработчик формы может разместить здесь дополнительные элементы управления для автоматизации ввода данных (переключатели, флажки, списки и другие, типичные для приложений Windows).
Элементы управления формы. Элементы управления, которыми может пользоваться разработчик, представлены на Панели элементов. Ее открывают щелчком на соответствующей кнопке панели инструментов Microsoft Access или командой Вид → Панель элементов.
Выбор элемента управления выполняется одним щелчком на его значке в Панели элементов, после чего следующим щелчком в поле формы отмечается место, куда он должен быть поставлен. Вместе с элементом в поле формы вставляется его присоединенная надпись. По умолчанию эта надпись стандартная, например, для переключателей это Переключатель1, Переключатель2 и т. д. Редактированием свойства элемента управления (доступ к свойствам открывается через контекстное меню) можно дать элементу управления более содержательную подпись.
Основными элементами оформления формы являются текстовые надписи и рисунки. Для создания в форме текстовых надписей служат два элемента управления: Надпись и Поле. В качестве надписи можно задать произвольный текст. Элемент Поле отличается тем, что в нем отображается содержимое одного из полей таблицы, на которой основана форма, то есть при переходе от записи к записи текст может меняться.
Для создания графических элементов оформления служат элементы управления Рисунок, Свободная рамка объекта и Присоединенная рамка объекта. Рисунок выбирается из графического файла и вставляется в форму. Элемент Свободная рамка объекта отличается тем, что это не обязательно рисунок — это может быть любой другой объект OLE, например мультимедийный. Элемент Присоединенная рамка объекта тоже в какой-то степени может служить для оформления формы, но его содержимое берется не из назначенного файла, а непосредственно из таблицы базы данных (если она имеет поле объекта OLE). Естественно, что при переходе между записями содержимое этого элемента будет меняться.
Дизайн формы. В то время как таблицы базы данных глубоко скрыты от посторонних глаз, формы базы данных — это средства, с помощью которых с ней общаются люди. Поэтому к формам предъявляются повышенные требования по дизайну.
В первую очередь, все элементы управления форм должны быть аккуратно выровнены. Это обеспечивается командой Формат → Выровнять. Если нужно равномерно распределить элементы управления по полю формы, используют средства меню Формат → Интервал по горизонтали или Формат → Интервал по вертикали.
Ручное изменение размеров и положения элементов управления тоже возможно, но редко приводит к качественным результатам. При работе вручную используют перетаскивание маркеров, которые видны вокруг элемента управления в тот момент, когда он выделен. Особый статус имеет маркер левого верхнего угла. Обычно элементы управления перетаскиваются вместе с присоединенными к ним надписями. Перетаскивание с помощью этого маркера позволяет оторвать присоединенную надпись от элемента.
Существенную помощь при разработке дизайна формы оказывает вспомогательная сетка. Ее отображение включают командой Вид → Сетка. Автоматическую привязку элементов к узлам сетки включают командой Формат → Привязать к сетке.
Управление последовательностью перехода. Пользователь, для которого, собственно, и разрабатывается форма, ожидает, что ввод данных в нее должен происходить по элементам управления слева направо и сверху вниз. Однако при проектировании сложных форм, когда в процессе дизайна элементы управления многократно перемещаются с места на место, очень легко перепутать их последовательность и создать неудобный порядок ввода данных.
Физически последовательность перехода — это порядок перехода к следующему полю по окончании работы с предыдущим. Она легко проверяется с помощью клавиши TAB. Если при последовательных нажатиях этой клавиши фокус ввода «мечется» по всей форме, значит, последовательность перехода нерациональна и ее надо править.
Для управления последовательностью перехода служит диалоговое окно Последовательность перехода. В нем представлен список элементов управления формы. Порядок элементов в списке соответствует текущему порядку перехода. Изменение порядка перехода выполняется перетаскиванием в два приема:
• щелчком на кнопке маркера слева от названия выделяется элемент управления (кнопка мыши отпускается);
• после повторного щелчка с перетаскиванием элемент перемещается на новое место.
Закончив разработку макета формы, ее следует закрыть и сохранить под заданным именем. После открытия формы в окне База данных с ней можно работать: просматривать или редактировать данные из базовой таблицы. Проверку последовательности перехода выполняют клавишей TAB.
Работа со страницами доступа к данным
Страницы (страницы доступа к данным) — новый объект баз данных, вошедший в последнюю версию Microsoft Access 2000. Как и формы, этот объект служит для обеспечения доступа к данным, содержащимся в базе, но здесь речь идет об удаленном доступе, например о доступе через Интернет или через корпоративную сеть интранет.
С помощью страниц доступа к данным решается вопрос передачи данных из базы удаленному потребителю. Обычно базы данных имеют очень большие размеры, и напрямую передавать их через медленные каналы связи непрактично. В то же время, большинство современных Web-броузеров пока не имеют функций для работы с базами данных, размещенными на серверах. Таким образом, страницы доступа выполняют как бы посредническую функцию. Они имеют небольшой размер, содержат удобные элементы управления для навигации в базе данных, могут быть записаны в формате кода HTML, переданы по медленным каналам связи и воспроизведены в стандартном броузере. В связи с тем, что по формату они являются Web-документами, их нетрудно встроить в любой Web-документ, например, разместить на Web-странице.
От прочих объектов базы данных страницы доступа отличаются тем, что имеют двойную природу. Прочие объекты базы являются внутренними. Так, например, мы не можем выделить ни таблицу, ни запрос, ни форму в виде самостоятельного файла. Эти объекты размещаются где-то внутри файла базы данных, но операционная система компьютера работать с ними не может, поскольку это не файлы. С ними работает лишь сама система управления базой данных. Страница же представлена двумя объектами: внутренним объектом базы (его можно редактировать) и внешним объектом — файлом в формате HTML. Запись этого файла происходит при сохранении спроектированной страницы доступа.
Создание страницы доступа к данным. Для страниц доступа, как и для форм, важную роль играет внешний вид, поэтому создавать их удобно с помощью мастера. Мастер страниц запускается щелчком на значке Создание страницы доступа к данным с помощью мастера.
1. На первом этапе работы Мастера форм выбирают таблицы (или запросы), в их составе — поля, к которым должна обеспечить доступ страница.
2. Второй этап работы мастера предназначен для управления группировкой данных. Эта возможность предусмотрена для доступа к базам, содержащим большие объемы данных. Если значения в некотором поле часто повторяются, имеет смысл объединить соответствующие им записи в группу. Так, например, для страницы, обеспечивающей доступ к таблице Новые книги, в отдельные группы могут быть собраны записи, относящиеся к экономической и юридической литературе.
В результате группировки образуется иерархическая структура. Она может иметь несколько уровней вложения. Так, например, внутри группы Юридическая литература могут быть созданы вложенные группы: Частное право, Публичное право и т.д.
Вторая страница мастера предоставляет элементы управления для выбора полей, по которым производится группировка, и управления глубиной уровней группировки. Если просмотреть в режиме Конструктора страницу, имеющую уровни группировки, то можно убедиться, что для каждого уровня группировки в структуре объекта образуется отдельный раздел, то есть различные уровни группировки могут быть дополнены различными элементами управления экранной Web-формы.
3. На третьем этапе выбирается метод упорядочения отображаемых данных. Возможно задание до четырех полей сортировки, причем сортировка возможна как по возрастанию, так и по убыванию.
4. На последнем этапе выполняется сохранение страницы под заданным именем. Здесь же можно перейти в режим Конструктора, включив переключатель Изменить макет страницы. В случае изменения макета к странице можно применить одну из тем оформления, входящих в состав пакета Microsoft Office 2000. Темы оформления представляют собой совокупности стилей оформления текстов, фоновых узоров и специфических элементов оформления страницы (маркеров, линий и прочих).
Редактирование страницы доступа к данным. Редактирование созданной страницы доступа выполняется в режиме Конструктора теми же приемами, которые были описаны для форм. Основными отличиями являются:
• наличие большего количества разделов (связано с возможностью группировки);
• расширенный состав элементов управления на Панели элементов (Вид → Панель элементов);
• иной механизм перетаскивания элементов управления и присоединенных надписей (элементы управления перетаскиваются вместе с присоединенными надписями, но присоединенные надписи перетаскиваются отдельно от элементов управления).
Работа с отчетами
Отчеты во многом похожи на формы и страницы доступа к данным, но имеют иное функциональное назначение — они служат для форматированного вывода данных на печатающие устройства и, соответственно, при этом должны учитывать параметры принтера и параметры используемой бумаги.
Большая часть того, что было сказано о формах, относится и к отчетам. Здесь также существуют средства автоматического, автоматизированного и ручного проектирования. Средства автоматического проектирования реализованы автоотчетами (База данных → Создать → Новый отчет → Автоотчет в столбец). Кроме автоотчетов «в столбец» существуют «ленточные» автоотчеты. Разницу между ними нетрудно увидеть, поставив эксперимент.
Средством автоматизированного создания отчетов является Мастер отчетов. Он запускается двойным щелчком на значке Создание отчета с помощью мастера в окне База данных. Мастер отчетов работает в шесть этапов. При его работе выполняется выбор базовых таблиц или запросов, на которых отчет базируется, выбор полей, отображаемых в отчете, выбор полей группировки, выбор полей и методов сортировки, выбор формы печатного макета и стиля оформления.
Структура готового отчета отличается от структуры формы только увеличенным количеством разделов. Кроме разделов заголовка, примечания и данных, отчет может содержать разделы верхнего и нижнего колонтитулов. Если отчет занимает более одной страницы, эти разделы необходимы для печати служебной информации, например номеров страниц. Чем больше страниц занимает отчет, тем важнее, роль данных, выводимых на печать через эти разделы. Если для каких-то полей отчета применена группировка, количество разделов отчета увеличивается, поскольку оформление заголовков групп выполняется в отдельных разделах.
Редактирование структуры отчета выполняют в режиме Конструктора (режим запускается кнопкой Конструктор в окне База данных). Приемы редактирования те же, что и для форм. Элементы управления в данном случае выполняют функции элементов оформления, поскольку печатный отчет не интерактивный объект, в отличие от электронных форм и Web-страниц. Размещение элементов управления выполняют с помощью Панели элементов (Вид → Панель элементов), которая по составу практически не отличается от Панели элементов формы. Важной особенностью отчетов является наличие средства для вставки в область верхнего или нижнего колонтитула текущего номера страницы и полного количества страниц. Эту операцию выполняют с помощью диалогового окна Номера страниц (Вставка → Номера страниц).
Практическое занятие
Упражнение 14.1. Создание базовых таблиц
Мин
Руководитель торгового предприятия, реализующего научную литературу, заказал разработку базы данных, основанной на двух таблицах. Одна таблица содержит данные, которые могут отображаться для клиентов при оформлении закупки, — в ней указаны розничные цены на книги. Вторая таблица предназначена для анализа результатов деятельности предприятия — в ней содержатся закупочные оптовые цены и краткая информация о поставщиках (покупатели не имеют доступа к данным этой таблицы).
1. Запустите программу Microsoft Access 2000 (Пуск → Программы → Microsoft Access).
2. В окне Microsoft Access включите переключатель Новая база данных и щелкните на кнопке ОК.
3. В окне Файл новой базы данных выберите папку \Мои документы и дайте файлу имя: Книготорговля. Убедитесь, что в качестве типа файла выбрано Базы данных Microsoft Access, и щелкните на кнопке Создать. Откроется окно новой базы — Книготорговля.
4. Откройте панель Таблицы.
5. Дважды щелкните на значке Создание таблицы в режиме конструктора — откроется бланк создания структуры таблицы.
6. Для первой таблицы введите следующие поля:
Имя поля Тип поля
Наименование Текстовый
Автор Текстовый
Объем Числовой
Цена Денежный
Примечание MEMO
7. Щелкните на поле Объем. В нижней части бланка задайте свойство Число десятичных знаков равным 0.
8. Для связи с будущей таблицей поставщиков надо задать ключевое поле. На уникальность может претендовать поле Наименование, но в больших базах данных возможно появление разных книг с одинаковым названием. Поэтому мы используем комбинацию полей Наименование и Автор. Выделите оба поля в верхней части бланка (при нажатой клавише SHIFT). Щелчком правой кнопки мыши откройте контекстное меню и выберите в нем пункт Ключевое поле.
9. Закройте окно Конструктора. При закрытии окна дайте таблице имя Книги в продаже.
10. Повторив действия пунктов 5-9, создайте таблицу Поставщики, в которую входят следующие поля:
Имя поля Тип поля
Наименование Текстовый
Автор Текстовый
Цена оптовая Денежный
Поставщик Текстовый
Телефон Текстовый
Адрес Текстовый
Примечание MEMO
Обратите внимание на то, что поле номера телефона является текстовым, несмотря на то что обычно номера телефонов записывают цифрами. Это связано с тем, что они не имеют числового содержания. Номера телефонов не сравнивают по величине, не вычитают из одного номера другой и т. д. Это типичное текстовое поле.
Ключевое поле можно не задавать — для текущей задачи оно не требуется.
11. В окне Книготорговля: база данных откройте по очереди созданные таблицы и наполните их экспериментальным содержанием (3-4 записи). Закончив работу, закройте таблицы и завершите работу с программой.
► Мы научились создавать таблицы базы данных, задавать их структуру, выбирать типы полей и управлять их свойствами. Мы также освоили приемы наполнения таблиц конкретным содержанием.
Упражнение 14.2. Создание межтабличных связей
Мин
1. Запустите программу Microsoft Access 2000 (Пуск → Программы → Microsoft Access).
2. В окне Microsoft Access включите переключатель Открыть базу данных, выберите ранее созданную базу Книготорговля и щелкните на кнопке ОК.
3. В окне Книготорговля: база данных откройте панель Таблицы. Убедитесь, что на ней присутствуют значки ранее созданных таблиц Книги в продаже и Поставщики.
4. Разыщите на панели инструментов кнопку Схема данных. Если есть сложности, найдите команду строки меню: Сервис → Схема данных. Воспользуйтесь любым из этих средств, чтобы открыть окно Схема данных. Одновременно с открытием этого окна открывается диалоговое окно Добавление таблицы, на вкладке Таблицы которого можно выбрать таблицы, между которыми создаются связи.
5. Щелчком на кнопке Добавить выберите таблицы Книги в продаже и Поставщики — в окне Схема данных откроются списки полей этих таблиц.
6. При нажатой клавише SHIFT выделите в таблице Книги в продаже два поля: Наименование и Автор.
7. Перетащите эти поля на список полей таблицы Поставщики. При отпускании кнопки мыши автоматически откроется диалоговое окно Изменение связей.
8. На правой панели окна Изменение связей выберите поля Наименование и Автор таблицы Книги в продаже, включаемые в связь. Не устанавливайте флажок Обеспечение целостности данных — в данном упражнении это не требуется, но может препятствовать постановке учебных опытов с таблицами.
9. Закройте диалоговое окно Изменение связей и в окне Схема данных рассмотрите образовавшуюся связь. Убедитесь в том, что линию связи можно выделить щелчком левой кнопки мыши, а щелчком правой кнопки мыши открывается контекстное меню, позволяющее разорвать связь или отредактировать ее.
10. Закройте окно Схема данных. Закройте программу Microsoft Access.
► Мы изучили условия, необходимые для создания взаимосвязанных таблиц, и приемы их создания. Мы познакомились с основными типами связей, образующихся между таблицами, и научились редактировать параметры связи.
Упражнение 14.3. Создание запроса на выборку
Мин
В этом упражнении мы создадим запрос на выборку книг, имеющих объем не менее 400 страниц при цене менее 80 рублей.
1. Запустите программу Microsoft Access 2000 (Пуск → Программы → Microsoft Access).
2. В окне Microsoft Access включите переключатель Открыть базу данных, выберите ранее созданную базу Книги в продаже и щелкните на кнопке ОК.
3. В окне Книготорговля: база данных откройте панель Запросы. Дважды щелкните на значке Создание запроса в режиме Конструктора — откроется бланк запроса по образцу. Одновременно с ним откроется диалоговое окно Добавление таблицы.
4. В окне Добавление таблицы выберите таблицу Книги в продаже и щелкните на кнопке Добавить. Закройте окно Добавление таблицы.
5. В списке полей таблицы Книги в продаже выберите поля, включаемые в результирующую таблицу: Наименование, Автор, Объем, Цена. Выбор производите двойными щелчками на именах полей.
6. Задайте условие отбора для поля Объем. В соответствующую строку введите: > 400. Из таблицы будут выбираться не все издания, а только те, объем которых превышает 400 страниц.
7. Задайте условие отбора для поля Цена. В соответствующую строку введите: < 80. Теперь из таблицы будут выбираться только издания, имеющие цену менее 80 рублей.
8. Закройте бланк запроса по образцу. При закрытии запроса введите его имя — Выбор изданий.
9. В окне Книготорговля: база данных откройте только что созданный запрос и рассмотрите результирующую таблицу. Ее содержательность зависит от того, что было введено в таблицу Книги в продаже при ее наполнении в упражнении 14.1. Если ни одно издание не соответствует условию отбора и получившаяся результирующая таблица не имеет данных, откройте базовые таблицы и наполните их модельными данными, позволяющими проверить работу запроса.
10. По окончании исследований закройте все открытые объекты и завершите работу с программой Microsoft Access.
► Мы научились создавать запрос на выборку, основанный на таблице. Мы научились формировать структуру запроса путем выбора базовой таблицы и полей, а также формулировать условие отбора.
Упражнение 14.4. Создание запросов «с параметром»
Мин
Выше мы рассмотрели, как действует условие отбора, но должны отметить его существенный недостаток. Пользователь базы данных работает с запросами, которые ему подготовил разработчик. Если, например, разработчик предусмотрел запрос, отбирающий издания, имеющие цену менее 80 рублей, то пользователь базы уже не в состоянии отобрать книги, цена которых менее 150 рублей, поскольку у него нет соответствующего запроса.
Специальный тип запросов, называемый запросами «с параметром», позволяет пользователю самому ввести критерий отбора данных на этапе запуска запроса. Этим приемом обеспечивается гибкость работы с базой.
Создадим простой запрос, позволяющий отбирать издания, предельную цену которых пользователь может задать сам при запуске запроса.
1. Запустите программу Microsoft Access 2000 (Пуск → Программы → Microsoft Access).
2. В окне Microsoft Access включите переключатель Открыть базу данных, выберите ранее созданную базу Книготорговля и щелкните на кнопке ОК.
3. В окне Книготорговля: база данных откройте панель Запросы. Дважды щелкните на значке Создание запроса в режиме Конструктора — откроется бланк запроса по образцу.
4. Согласно упражнению 14.3 создайте запрос на выборку, основанный на таблице Книги в продаже, в который войдут следующие поля:
• Наименование;
• Автор;
• Цена;
• Поставщик.
5. Строку Условие отбора для поля Цена надо заполнить таким образом, чтобы при запуске запроса пользователь получал предложение ввести нужное значение.
Текст, обращенный к пользователю, должен быть заключен в квадратные скобки. Если бы мы хотели отобрать книги, цена которых больше 100 рублей, мы бы написали: >100. Если бы нам были нужны книги дешевле 80 рублей, мы бы написали <80. Но если мы хотим дать пользователю возможность выбора, мы должны написать: < [Введите максимальную цену].
6. Закройте запрос. При закрытии сохраните его под именем Выбор книг.
7. В окне Книготорговля: база данных откройте панель Запросы и запустите запрос Выбор книг — на экране появится диалоговое окно Введите значение параметра (рис. 14.16).