Ирина Харитонова
САМОУЧИТЕЛЬ
OFFICE ACCESS 2003 Прочитав эту книгу, вы научитесь: 4- разрабатывать собственные базы данных; + эффективно работать с запросами, формами и отчетами; + создавать веб-интерфейс к базе данных Access.
Ирина Харитонова
OFFICE ACCESS
2003
Москва • Санкт-Петербург • Нижний Новгород • Воронеж Новосибирск • Ростов-на-Дону • Екатеринбург • Самара Киев - Харьков • Минск
2004
Харитонова Ирина Александровна Самоучитель Office Access 2003 Главный редактор Заведующий редакцией Руководитель проекта Литературный редактор Художник Корректоры Верстка
Е. Строганова И. Корнеев В. Рынков В. Рынков Л. Адуевская Д. Стукали», А. Моносов Л. Харитонов
ББК 32.973.233-018Я7 УДК 681.324.016(075) Харитонова И. А. Х20
Самоучитель: Office Access 2003. — СПб.: Питер, 2004. — 464 с.: ил.
ISBN 5-94723-854-3 Самоучитель знакомит читателя с основными функциями популярной настольной СУБД Microsoft Office Access 2003. Основное содержание самоучителя составляют упражнения и •задания, которые необходимо проделать, чтобы освоить эти функции. В процессе работы с книгой читатель сможет создать целостное приложение, включающее как таблицы данных, так и все необходимые формы пользовательского интерфейса, в том числе современный веб-интерфейс в виде страниц доступа к данным, в максимальной степени используя средства Access. К книге ирилагается демонстрационный пример, вспомогательные файлы и приложение в виде файла базы данных Access и страниц доступа к данным, которые должны получиться после выполнения всех предлагаемых упражнений.
© ЗАО Издательский дом «Питер», 2004 Все права защищены. Никакая часть данной книги не может быть воспроизведена в какой бы то ни было форме без письменного разрешения владельцев авторских прав. Информация, содержащаяся в данной книге, получена из источников, рассматриваемых издательством как надежные. Тем не менее, имея в виду возможные человеческие или технические ошибки, издательство не может гарантировать абсолютную точность и полноту приводимых сведений и не несет ответственность за возможные ошибки, связанные с использованием книги.
ISBN 5-94723-854-3 ООО «Питер Принт», 196105, Сани-Петербург, ул. Благодатная, д. 67в. Лицензия ИД № 05784 от 07.09.01. Налоговая льгота — общероиси некий классификатор продукции ОК 005-93, том 2; 95 3005 — литература учебная. Подписано к печати 20.04.04. Формат 70x100/16. Усл. п. л. 37,41. Тираж 4000. Заказ 680 Отпечатано с готовых диапозитивов в ОАО «Техническая книга» 190005, Санкт-Петербург. Измайловский пр., 29
Краткое содержание Предисловие
12
Часть I. Знакомство с Microsoft Office Access 2003 Занятие 1. Установка и первые шаги Занятие 2. Создание базы данных .
20 . 50
Часть II. Работа с таблицами Занятие 3. Создание таблиц Занятие 4. Ввод и редактирование данных Занятие 5. Поиск и сортировка данных
66 9.5 121
Часть III. Запросы Занятие 6. Создание и выполнение запросов на выборку 144 Занятие 7. Анализ и изменение данных с помошью запросов . . . . 180
Часть IV. Формы Занятие 8. Знакомство с формами и элементами управления 218 Занятие 9. Составные и связанные формы 262 Занятие 10. Оформление формы и ввод данных через форму . . . . 289
Часть V. Отчеты и страницы Занятие 11. Создание и печать отчетов Занятие 12. Страницы доступа к данным
316 352
Часть VI. Настройка приложений Занятие 13. Макросы Занятие 14. Сборка приложения
390 427
Глоссарий
454
Алфавитный указатель
459
Содержание Предисловие О чем эта книга Для кого эта книга Как построена эта книга Обозначения, использованные в книге Содержание демонстрационного примера От издательства
12
'.
12 13 13 16 17 18
Часть I. Знакомство с Microsoft Office Access 2003 Занятие 1. Установка и первые шаги Установка Запуск Access и открытие учебной базы данных Рабочая среда Access 2003 Меню и панели инструментов Окно базы данных Справочная система Завершение работы Подведение итогов
20 21 24 28 28 30 ' . . . . 43 48 49
Занятие 2. Создание базы данных
50
Базы данных — основные понятия Реляционная модель данных Различия между базами данных Access и таблицами Excel Создание базы данных с использованием шаблона Создание базы данных без применения шаблона Создание проектов Access 2003 Подведение итогов
51 51 54 54 61 62 64
Часть II. Работа с таблицами Занятие 3. Создание таблиц
66
Создание таблиц путем ввода данных Создание таблиц с помощью мастера Создание таблиц в режиме конструктора
67 70 72
Содержание
Определение нолей таблицы
Ключевые поля и индексы Редактирование структуры таблицы и режиме конструктора Добавление полей таблицы Создание столбца подстановок Контроль вводимых данных Связывание таблиц Обеспечение целостности данных Подведение итогов
>
7,4
76 78 78 79 85 88 90 • . 94
Занятие 4. Ввод и редактирование данных
95
Ввод данных в режиме таблицы Добавление записи Редактирование записи Удаление записи Ввод данных с помощью копирования Импорт данных Импорт данных из таблицы Excel Импорт таблицы Access Присоединение внешних таблиц Установка условия на значения записи Отображение подчиненных таблиц Настройка внешнего вида таблиц Подведение итогов
96 97 99 9!) 100 10-1 104 107 109 110 112 114 120
Занятие 5. Поиск и сортировка данных
121
Сортировка данных в таблицах Поиск записи в таблицах Использование фильтров для поиска группы записей Печать, экспорт и рассылка таблиц Подведение итогов
122 126 129 134 141
Часть III. Запросы Занятие 6. Создание и выполнение запросов на выборку Запросы и фильтры Создание простого запроса с помощью мастера Использование конструктора для создания запроса Выполнение запроса
144 145 146 (50 153
О
Содержание
Редактирование запроса Добавление таблицы в запрос Добавление полей в бланк запроса Перемещение столбцов в бланке запроса Отбор записей по нескольким условиям Окно SQL Исключение столбцов из запроса Использование выражений в запросах Способы объединения таблиц в запросах Использование вычисляемых полей Создание запросов с параметрами Подведение итогов
154 154 155 156 157 159 161 161 165 169 175 178
Занятие 7. Анализ и изменение данных с помошью запросов . . . 180 Расчет итоговых значений Анализ данных с помощью сводной таблицы Создание сводной таблицы
181 186 186
Сортировка и фильтрация данных в сводной таблице Изменение структуры сводной таблицы Изменение уровня детализации данных Сводные диаграммы Создание сводной диаграммы Изменение вида диаграммы Изменение данных с помощью запросов
190 192 194 199 200 202 203
Изменение данных в результирующем множестве запроса Запрос обновления данных Запрос создания новой таблицы Запрос удаления записей Запрос добавления записей Подведение итогов
203 204 208 211 214 216
Часть IV. Формы Занятие 8. Знакомство с формами и элементами управления . . . 218 Формы как средство ввода, просмотра и изменения данных Режимы работы с формами Режим конструктора форм Структура формы Панели инструментов
219 220 222 223 , 225
Содержание
9
Элементы управления формы Создание первой формы Перемещение и изменение размеров элементов управления Сохранение формы Печать формы Подведение итогов
227 254 2;>6 258 259 2(50
Занятие 9. Составные и связанные формы
262
Создание подчиненной формы Создание запроса для подчиненной формы Создание формы с помощью мастера Изменение свойств формы Вкладка Данные Вкладка Макет Вкладка Другие Вкладка События Установка свойств подчиненной формы Создание связанных форм Изменение цвета раздела формы Блокирование элементов управления Изменение макета формы ленточного типа Изменение надписей в заголовке формы Настройка свойств формы Формуляры Синхронизация связанных форм Добавление кнопки, открывающей форму Подведение итогов
263 263 254 268 268 270 274 274 275 277 279 230 281 282 283 284 285 288
Занятие 10. Оформление формы и ввод данных через форму . . . 289 Создание формы Издания Создание элементов управления из списка полей таблицы Форматирование элементов управления Выравнивание элементов управления Изменение последовательности перехода между элементами управления Создание подчиненной формы • Оформление формы Изменение фонового рисунка формы Стили оформления формы Параметры, влияющие на оформление формы Работа с данными с помощью формы Перемещение по записям
290 291 292 293 295 295 297 297 'ЮО 302 304 304
10
Содержание
Изменение данных в текущей записи Добавление новой записи Удаленно записи Кнопки панели инструментов Подведение итогов
304 306 310 311 314
Часть V. Отчеты и странииы Занятие 11. Создание и печать отчетов
316
Отчеты как средство создания документов Режимы работы с отчетами Создание отчета с помощью мастера Изменение свойств отчета и его элементов в конструкторе отчетов Создание отчета с несколькими уровнями группировки и вычисляемыми итогами Создание базового запроса Создание макета отчета Настройка отчета Суммы покупок Вычисляемые поля в отчете Сортировка и группировка данных Внедрение рисунка Отображение в отчете значений параметров Использование подчиненных отчетов Просмотр и печать отчета Публикация отчетов ' , Подведение итогов
317 317 318 323
Занятие 12, Странииы доступа к данным
352
Что такое страницы доступа к данным Подключение существующей странииы к базе данных Использование страниц доступа к данным Создание автостраницы Создание страницы с помощью мастера Создание и изменение страниц доступа к данным в режиме конструктора . Создание элементов управления Раскрывающийся список Изменение свойств элементов управления Изменение страницы Тематический каталог Создание обособленной страницы доступа к данным Подведение итогов . .
324 324 326 328 331 333 336 337 339 344 346 351
353 354 357 36] 363 368 372 373 376 384 388
Содержание
Часть VI. Настройка приложений Занятие 13. Макросы
зэо
Что такое макросы Создание макроса, открывающего форму Обновление данных с помощью макроса Отладка макросов и поиск ошибок Использование макросов в форме ВзятьКнигу Создание поля со списком Создание элемента управления Поле Копирование элементов управления Как спрятать элементы управления Создание базового запроса для формы Не выданные Книги Размещение кнопок на формах Создание макроса ВыбратьКнигу Создание макроса ВзятьКнигу Как превратить форму ВзятьКнигу в форму СдатьКнигу, а форму НевыданныеКниги в форму ВыданныеКниги Создание новых запросов Создание группы макросов Создание макроса, открывающего форму СдатьКнигу Подведение итогов
391 394 398 402 405 405 406 407 407 408 410 413 415
Занятие 14. Сборка приложения
419 419 421 424 426
427
Какие существуют возможности Создание панелей команд Создание меню _ Создание контекстных меню Связывание меню, контекстных меню и панелей инструментов с формами и отчетами Создание и изменение панелей инструментов Управление отображением панелей команд Создание главной кнопочной формы Настройка параметров запуска Подведение итогов
^38 440 443 444 451 453
Глоссарий
454
Алфавитный указатель
428 'i28 429 436
459
Предисловие Предлагаемая вниманию читателя книга называется самоучителем, так как ее цель — последовательно, шаг за шагом научить вас пользоваться богатейшими возможностями системы управления базами данных (СУБД) Microsoft Office Access 2003. Вы начнете процесс обучения с проектирования структуры базы данных — самой важной части любого приложения, связанного с обработкой данных. Выполняя предложенные упражнения и задания для самостоятельной работы, вы в конце цикла занятий создадите вполне законченное приложение. работающее с базой данных Access. Чтение этой книги — непростое занятие. Оно потребует от вас внимания, терпения и времени. Разбирая примеры, при неденные в книге, вы получите опыт, необходимый для самостоятельного решения стоящих перед вами задач.
О чем эта книга На сегодняшний день Microsoft Office Access 2003 — один из компонентов семейства офисных приложений Microsoft Office 2003 — является одной из самых популярных настольных (desktop) СУБД. Это связано с тем, что СУБД Access предоставляет пользователю очень широкие возможности ввода, обработки и представления данных. Эти средства не только удобны, но и высокопродуктивны, что обеспечивает высокую скорость разработки приложений. Изначально система управления базами данных Access обладала рядом уникальных возможностей: • объединение информации из самых разных источников (электронных таблиц, текстовых файлов, других баз данных); • представление данных в удобном для пользователя виде с помощью таблиц, диаграмм, отчетов; • интеграция с другими компонентами Microsoft Office. Эти возможности совершенствуются от версии к версии, и сейчас СУБД Access стала инструментом, который может удовлетворить самые разные категории пользователей: от новичка, которому правится дружественный интерфейс, позволяющий ему справиться с его задачами, до профессионального разработчика,
Как построена эта книга
13
имеющего весь необходимый инструментарий для уникального решения конкретной задачи. Однако эта книга не является полным руководством по СУБД Access 2003, поэтому в ней показаны только самые основные и важные функции и операции. Мы совсем не будем касаться вопросов программирования на языке Visual Basic для приложений (VBA), но зато достаточно полно рассмотрим возможности различных вспомогательных средств разработки — мастеров (wizards) и построителей (builders), которые помогают новичку быстро освоить работу в новой для него среде, а опытному пользователю — не тратить время на рутинные действия. Книга должна показать базовые технологии разработки приложений в среде Access.
Для кого эта книга Эта книга предназначена для того, кто впервые начинает работать с этой СУБД и хочет узнать, что и как он может сделать с ее помощью. Именно для него приготовлены все упражнения и задания. Пользователю, который уже знакам с предыдущими версиями Access, видимо, будет интересно узнать, что нового есть в данной версии. В таком случае ему нужно ориентироваться на предметный указатель и выполнять только те упражнения, которые касаются новых возможностей системы, используя в качестве основы файлы демонстрационного примера. Предполагается, что пользователь, даже будучи новичком в Access, имеет опыт работы в среде Microsoft Windows, умеет пользоваться мышью и клавиатурой, кнопками панелей инструментов и контекстными меню. Поэтому здесь не описываются подробно простейшие операции типа перемещения окна или перетаскивания объекта с помощью мыши.
Как построена эта книга Книга структурирована так, чтобы постепенно познакомить читателя со всеми основными возможностями Access, начиная с того, как установить эту СУБД на свой компьютер, и кончая тем, как связать все компоненты, созданные пользователем, в единое приложение со стандартным интерфейсом и удобным доступом к каждому из компонентов. Книга состоит из шести частей, части состоят из занятий, нумерация занятий сквозная. Часть I «Знакомство с Microsoft Office Access 2003» состоит из двух занятий, Занятие 1 посвящено начальным этапам работы с Access 2003: установке, открытию файла базы данных, описанию рабочей среды Access. На нем вы познакомитесь с основными объектами Access и операциями над ними. При этом постоянно делаются ссылки на последующие занятия, в которых будет осущест-
14
Предисловие
вляться детальное знакомство с данными объектами. Наконец, вы узнаете, как пользоваться справочной системой Microsoft Access. На Занятии 2 вы познакомитесь с основными понятиями баз данных, в том числе реляционных, узнаете, как их проектировать и как создать файл базы данных Access 2003, пользуясь готовыми шаблонами. На этом занятии вы создадите пустой файл базы данных, который будет затем наполняться по мере выполнения упражнений следующих занятий, Остальные части построены так, чтобы подробнее познакомить вас со всеми объектами Access. Каждая часть посвящена одному или двум объектам. Часть II «Работа с таблицами» состоит из трех занятий. Занятие 3 посвящено созданию таблиц базы данных и связей между этими таблицами. На этом занятии вы создадите все таблицы приложения Библиотека, которое мы должны разработать к концу курса. На Занятии 4 вы узнаете о различных способах ввода данных в таблицы базы данных. Вы познакомитесь с основным режимом работы с таблицами, научитесь копировать данные через буфер обмена, к том числе из разных приложений Access и даже Excel. Вы выполните импорт данных в базу данных из готовых таблиц демонстрационного примера. Вы познакомитесь с таким специфическим объектом базы данных, как связанные таблицы. На Занятии 5 вы научитесь сортировать данные в таблицах, выполнять поиск нужной записи и устанавливать разные виды фильтров для отбора нужных записей. Часть III «Запросы» посвящена сердцу любой СУБД — запросам, и состоит из двух занятий. На Занятии 6 вы будете создавать много разных запросов на выборку данных из базы данных, Вы узнаете, как задаются условия отбора записей и какие средства предоставляет Access для упрощения процесса создания выражений в условиях отбора. На Занятии 7 вы научитесь создавать запросы, позволяющие изменять данные в таблицах, использовать статистические функции для анализа результатов запроса, создавать запросы с параметрами, которые позволяют динамически изменять условия отбора записей. Вы узнаете, когда в результирующем множестве запроса можно выполнять изменение данных. Часть IV «Формы» посвящена основному объекту, обеспечивающему взаимодействие пользователя с данными, и состоит из трех занятий. Занятие 8 знакомит вас с основными понятиями, связанными с формами. Вы познакомитесь со структурой формы, узнаете, что такое элементы управления и какие элементы управления могут быть помещены в форме. Вы создадите первую форму приложения Библиотека, используя Мастер форм. На Занятии.9 вы создадите формы, имеющие более сложную структуру. Это составные формы, которые включают в себя подчиненную форму. Кроме того, вы узнаете, как можно обеспечить синхронное функционирование двух разных форм, какие свойства имеет форма и как, изменяя значения этих свойств, изменить способ работы и внешний вид формы.
Как построена эта книга
На Занятии 10 вы, уже получив навыки работы с элементами управления формы, ближе познакомитесь с основным средстном создания форм — конструктором, а также узнаете нюансы взаимодействия с данными в таблицах с использованием форм. Часть V -«Отчеты и страницы» знакомит вас сразу с двумя объектами Access и состоит из двух занятий. Занятие 11 полностью посвящено отчетам. Бы создадите несколько отчетов для приложения Библиотека, как простых, так и сложных, включающих подчиненные отчеты. Вы научитесь красиво оформлять отчеты и выводить их па печать. Вы познакомитесь со специальным средством публикации отчетов — снимками (snapshots). Снимки могут рассылаться по электронной почте и просматриваться на компьютерах, на которых не установлен Access 2003. Занятие 12 знакомит вас со страницами доступа к данным, обеспечивающими веб-интерфейс к данным. Страницы, как и снимки, можно просматривать па компьютере, на котором не установлена СУБД Access, для этого нужна только программа просмотра веб-страниц — Microsoft Internet Explorer. В отличие от статических снимков, отображающих только определенный временной срез данных, страницы могут показывать текущие данные таблиц и позволяют изменять эти данные. Вы узнаете о возможностях этих страниц, об их подключении к базе данных и сами создадите несколько страниц для доступа к базе данных Библиотека. Часть VI «Настройка приложений» состоит из двух занятий. Занятие 13 посвящено созданию и использованию макросов — языка макрокоманд, который используется, чтобы усовершенствовать приложение. Вы узнаете о событиях и обработке событий, с помощью макросов сделаете более удобной работу с некоторыми формами, созданными ранее. Наконец, вы создадите очень гибкую форму, и внешний вид, и назначение которой могут динамически изменяться с помощью макросов. Занятие 14 показывает, как из множества созданных вами разнообразных объектов собрать единое приложение, как обеспечить удобный доступ к этим объектам и как настроить параметры, определяющие внешний вид приложения при запуске. Вы создадите собственное меню и панель инструментов, контекстное меню и кнопочную форму. Вы узнаете, как защитить созданное вами приложение от случайных (или неслучайных) некорректных действий со стороны пользователя. Каждое занятие, помимо знакомства с основными понятиями и другими необходимыми сведениями, содержит несколько упражнений. Все упражнения разбиты на последовательности шагов и сопровождаются большим количеством рисунков, которые помогут контролировать результаты выполнения этих шагов. Часть действий, которые нужно сделать для создания приложения, вам предложено выполнить самостоятельно. Эти действия сформулированы в виде заданий и встречаются в разной форме в тексте книги. В1 начале каждого занятия в краткой форме дается обзор тех знаний и навыков, которые вам предстоит приобрести. В конце занятия в разделе «Подведение итогов» перечислено то, чему вы научились в процессе выполнения упражнений этого занятия.
16
Предисловие
В конце книги — глоссарий и алфавитный указатель. Дополнением к книге является демонстрационный пример, который вы можете найти на сайте издательства www.pi4er.com на странице, посвященной этой книге. Вы будете работать с этими файлами в процессе выполнения упражнений в соответствии с указаниями книги. Кроме того, вы всегда можете открыть готовый файл с приложением, которое должны создать, и проверить, как реализованы те или иные его функции.
Обозначения, использованные в книге Некоторые слова и фразы в тексте выделяются специальным шрифтом. Поскольку книга написана по локализованной версии Microsoft Office Access 2003, экранные (интерфейсные) термины русскоязычные; они приводятся в тексте в точности так, как видны на экране, и определенным образом выделяются. К экранным терминам относятся названия команд, диалоговых окон, элементов диалогов (полей ввода, флажков, кнопок, списков, переключателей и т. д.), панелей инструментов и кнопок, значения раскрывающихся списков. Для удобства пользователей англоязычной версии Access 2003 рядом в скобках приводится английский вариант термина. Исключение из этого правила — Занятие 12, где при описании свойств элементов управления страницы доступа к данным основным является англоязычный термин. Рядом дается авторский перевод термина или объяснение его назначения. Это вызвано тем, что названия свойств этих'объектов Access 2003 не локализованы. Новые понятия выделяются курсивом. Иногда мы применяем курсив и для выделения слов или выражений, на которые хотим обратить внимание читателя. Специальным стилем выделяются и названия функций, макрокоманд, инструкций языка SQL (языка структурированных запросов). Кроме шрифтовых выделений, используется четыре специальных типа представления информации. Прежде чем выполнять эту операцию, мы рекомендуем вам сделать резервную копию файла Библиотека.mdb.
Советы содержат рекомендацию, как выполнить действие или функцию быстрее или удобнее. При описании пошаговых процедур мы обычно описывали самый быстрый способ выполнения операции, в большинстве случаев этого же результата можно достичь, используя соответствующую команду меню,
Примечания содержат дополнительную информацию, которая может быть полезна или интересна читателю.
Содержание демонстрационного примера
'^ Для выполнения этого упражнения у вас на компьютере должна быть установлена программа просмотра Internet Explorer. Абзац NB (Внимание) обращает внимание читателя на важный момент в процессе выполнения упражнения или на обязательное выполнение какого-либо условия. ЗАДАНИЕ Выполните запрос, который позволит отобрать все книги, выданные читателям за последнюю неделю. Задания позволят проверить, насколько хорошо вы усвоили материал, представленный в предыдущих упражнениях.
Содержание демонстрационного примера Для иллюстрации излагаемого материала используется один сквозной пример — база данных домашней библиотеки. Файлы этой базы данных и представлены в демонстрационном примере на сайте. Файл Библиотека2003.тс1Ь представляет собой законченное приложение, то самое, которое вы должны получить после выполнения упражнений последнего занятия. Вы всегда можете воспользоваться этим файлом для справки, если что-то в предложенных упражнениях и заданиях вызовет у вас затруднение. Папка DataAccessPages содержит файлы страниц доступа к данным. Часть этих страниц вы будете использовать только для знакомства с этим объектом Access, а часть создадите сами на Занятии 12. Файл БиблиотекаДанные-mdb содержит только таблицы базы данных. Вы будете использовать этот файл для выполнения упражнений Занятий 6 и 7, когда нужно будет строить запросы и фильтры, так как созданная вами база данных еще не будет иметь для этого достаточно данных. Несколько файлов формата Excel (расширение .xls) вы будете использовать для импорта данных в созданные вами таблицы. Чтобы работать с файлами демонстрационного примера, создайте на вашем жестком диске отдельную папку и скопируйте туда архивный файл Library.exe с сайта издательства www.piter.com. Чтобы распаковать этот файл, дважды щелкните на нем. При запуске файла Библиотека2003.тс1Ь появляется главная кнопочная форма. Для доступа к объектам приложения нажмите клавишу F11. Итак, успехов вам в изучении СУБД Access 2003. Автору хотелось сделать книгу полезной и и н т е р е с н о й . Насколько это у д а л о с ь , с у д и т ь вам. Буду рада получить ваши вопросы и замечания по электронной почте
[email protected].
1о
Предисловие
От издательства Ваши замечания, предложения, вопросы отправляйте по адресу электронной почты
[email protected] (издательство «Питер*,'компьютерная редакция). Мы будем рады узнать ваше мнение! Все исходные тексты, приведенные в книге, вы можете найти по адресу http://www. piter.com/download. На веб-сайте издательства http://www.piter.com вы найдете подробную информацию о наших книгах.
Часть I Знакомство с Microsoft Office Access 2003
ЗАНЯТИЕ 1
Установка и первые шаги ТЕМА ЗАНЯТИЯ В процессе этого занятия вы узнаете: • как установить Microsoft Office Access 2003; • как начать работу и открыть существующую базу данных; • какие средства предоставляет Access пользователю для работы с базами данных; • из чего состоит база данных Access; • как быстро получить необходимую справку по работе с Access; • как правильно завершить работу с Access.
Установка
21
Для выполнения упражнений данного занятия вам потребуются: • компакт-диск Microsoft Office System 2003, содержащий Access; • компьютер с операционной системой Windows 2000 SP 3, Windows XP или Windows Server 2003. Перед началом занятия скопируйте файл демонстрационного примера на ваш жесткий диск и распакуйте его, как описано в Предисловии1.
Установка Если программа Microsoft Office Access 2003 уже установлена на вашем компьютере, можете пропустить этот раздел. Если же нет, вставьте компакт-диск в дисковод и начните установку приложения. На диске должна присутствовать программа автозагрузки, которая запустит сначала специальную программу Windows Installer, а затем мастер, который поможет выполнить установку. Сначала мастер предложит несколько видов установки (рис. 1.1). Если на компьютере уже установлена какая-то версия Microsoft Office, рекомендуется выполнить обновление этой версии на основе уже имеющихся конфигураций. При
Microsoft Office - профессиональный выпуск версии 2003 Вид установки Рекомендуемый вид установки: :
0
'. "
i-ll-b .*'.^!**]
" •"•
Другие виды установки:
Описание Установка Microsoft Office на основ» нфигурации Office и " компыотеоа,
Полная установка Минимальная установка
Г
Примечание: д требуется fScrosoft Interne^ версии/бф «ли бодав поздней, Дня ppfiyHBHHfl дотогиитепьных сведений Йажэфтге кнопку "Справка". •; '• " :
Рис. 1.1. Выбор вида установки Microsoft Office 2003 к книге вы можете найти на сайте издательства www.piter.com на странице, посвященной этой книге.
22
Занятие 1. Установка и первые шаги 1
этом предыдущая версия будет удалена . Если Microsoft Office на компьютере отсутствует, можно выбрать один из четырех других вариантов установки. Если вы выберете один из первых трех видов (полная, минимальная и обычная установки) мастер сам установит необходимые компоненты в выбранной конфигурации. Если вы хотите посмотреть, какие компоненты будут установлены, и повлиять на этот процесс, проведите выборочную установку. По умолчанию мастер предлагает поместить все компоненты Office в папку C:\Program Files\ Microsoft Office, однако можно выбрать и другое расположение (см. рис. 1.1). Выбрав желаемый вид установки и папку, в которую будут установлены приложения Office, нажмите кнопку Далее (Next). На следующем шаге мастер предлагает указать, какие из приложений Microsoft Office 2003 нужно установить (рис. 1.2). Обратите внимание на флажок Расшир е н н а я настройка п р и л о ж е н и й (Extended Application Setup). Только когда этот флажок установлен, можно будет выбирать устанавливаемые компоненты для каждого из приложений. Установите флажок и нажмите кнопку Далее (Next).
Ill Щ)
Установка Microsoft «Все 2803: Microsoft Office - профессиональный выпуск версии 2003 Выборочная установка Выберите устанавливаемые приложения Microsoft Office 2003:
\W\ HI
•' R 1*0*1
[й| V? EowerPoini:
. H I? Access
'
[/j] № JnfoF'ath
:
"
. '
g;; F outlook Дяя работы InfoPath требуется Merosoft Internet Explorer версии 6,& или более Поздней.
!"
:
Доступно на днс«е С: 25 ГЁ
Рис. 1.2. Выбор приложений Microsoft Office 2003
В следующем диалоговом окне вы увидите иерархическую структуру приложений и средств Microsoft Access и их компонентов (рис. 1.З.). Это окно позволяет сделать выборочную установку компонентов приложений на локальный 1 тт
При желании плавно перейти от одной версии к другой можно сохранить оос «рядом* (в одной и той же панке!). — Примеч. ред.
Установка
23
компьютер пользователя или сетевой диск. Кроме того, можно задать установку компонента при первом обращении к нему из приложения, то есть но требованию.
Dn
Microsoft Office - профессиональный выпуск версии 2003
|~jtaj]
Расширенная настройка Выберите параметры установки приложений и средств.
ф -fe $• ..Х.т.
Microsoft Office Access Microsoft Office Excel Microsoft Office Outlook Microsoft Office PowerPoint Microsoft Office Publisher Microsoft Office Word Microsoft Office Inf oPath Общие средства Office
'-^
Описание Программы Office, дсшлнительн1зе" содержимое и средства. Требуется на диске С: 3QS МБ Доступно на диске С: 25 Г6
: Цазад
: Отмена.
Рис. 1.3. Приложения и средства Microsoft Office 2003
Щелкните на плюсике слева от строки Microsoft Office Access — раскроется список компонентов Access 2003. Если на жестком диске вашего компьютера достаточно места, рекомендую установить все компоненты на свой компьютер. Для этого щелкните на стрелке в строке Microsoft Office Access и в раскрывшемся списке (рис. 1.4) выберите второй вариант — Запускать все с моего компьютера ( R u n AIL from My Computer).
Запускать с моего компьютера. -.^3% Запускать все с моего компьютера 0_Э
Устанавливать при первой вьшйе
"X
Компонент недоступен
Рис. 1.4. Контекстное меню программы установки Microsoft Office
24
Занятие 1. Установка и первые шаги
Если же места на жестком диске недостаточно, укажите те компоненты, которые должны быть установлены обязательно, чтобы в процессе выполнения занятий не приходилось снова вставлять в дисковод компакт-диск с дистрибутивом для установки недостающего компонента. Если вы не хотите устанавливать какой-то компонент, который мастер предлагает по умолчанию установить, раскройте список, щелкнув на стрелке в строке данного компонента, и выберите пункт Компонент недоступен (Not Available) или Устанавливать при первом вызове (Installed on First Use). Итак, обязательно следует установить компоненты: • Справка (Help); • Обязательные мастера (Typical Wizards); • Дополнительные мастера (Additional Wizards); • Примеры баз данных/База данных Борей (Sample Database/Northwind Database); • Средство просмотра снимков (MicrosoftOffice Access Snapshort Viewer). Кроме этого, раскройте список Общие средства Office (Office Shared Features) и найдите в нем элемент Помощник (Office Assistant). Щелкните на стрелке и выберите Запускать все с моего компьютера ( R u n All from My Computer). Выбрав все необходимые компоненты, нажмите кнопку Далее (Next) и следуйте указаниям мастера, пока не получите сообщение о том, что установка успешно завершена.
Запуск Access и открытие учебной базы данных Для запуска Access будем использовать стандартный способ — с помощью главного меню, вызываемого нажатием кнопки Пуск (Start) на Панели задач. Существуют и другие способы запуска программы; некоторыми из них мы воспользуемся позже. Итак, чтобы запустить Access, необходимо: 1. Нажать кнопку Пуск (Start) на Панели задач в нижней части рабочего стола. 2. Щелкнуть в главном меню на пункте Все программы (Programs) или (в старых операционных системах) Программы (Programs). 3. Выбрать программу Microsoft Office 2003/Microsoft Office Access 2003. После этого появляется главное окно Access 2003 (рис. 1.5), Область задач в правой части окна используется для часто выполняемых действий, при запуске программы это область Приступая к работе (Getting Started). Она
Запуск Access и открытие учебной базы данных
ставка Сервис '•'
Окно Щ
"
25
Справка ? •> *.. «.'!
Приступай к работе
Office в Интернете - - = * По дкпючи т ься к веб -узлу Micr osof t Office Online * Последние сведения об использовании Access * Автоматически обновлять этот список из Вебэ
Пример: Печать нескогъких копим"
Отрыть
- 1 ?t t
J Открыть.,, Л Создатьфайл...
Рис. 1.5. Окно Microsoft Office Access
содержит задачи, которые обычно используются сразу после запуска Access: открыть файл, создать новый файл, найти файл. Всего различных областей задач — семь. Их легко просмотреть, если вы пощелкаете кнопками со стрелками, которые находятся в верхней части области задач. Если область задач не появляется, значит, этот режим отключен. Чтобы его включить, выполните команду Вид > Область задач (View * Task Pane). Кроме того, можно настроить программу Access таким образом, что она по умолчанию при запуске будет либо всегда показывать эту область, либо, наоборот, не показывать. Для этого выполните команду Сервис » Параметры (Tools >• Options) и в диалоговом окне Параметры (Options) на вкладке Вид (View) установите или сбросьте флажок Отображать область задач при запусне (Startup Task Pane).
Нажмите на строчке Открыть (Open). Появится стандартное диалоговое окно Windows для открытия файла (рис. 1.6). В этом окне для поиска нужного файла можно использовать ярлыки, находящиеся на панели адресов (слева), а также раскрывающийся список Папки (Look in), в котором можно выбрать нужную папку. В списке Тип файлов (Files of type)
26
Занятие 1. Установка и первые шаги
в нижней части окна выбирается тип файла. По умолчанию в этом поле выбран тип Файлы базы данных Access (Microsoft Office Access) с перечнем возможных расширений этих файлов. Обычно файлы базы данных Access имеют расширение .mdb. Когда нужный файл .mdb появится в поле окна, выделите этот файл и нажмите кнопку Открыть (Open). Открытие файла базы данных
1 ll* Р
Йжи rdeiErrtni1.mdb .:, : gap •
I
"... -•
, Панели инструментов » Настройка (View ^Toolbars > Customize) и в диалоговом окне Настройка (Customize) на вкладке Параметры (Options) установите флажок Отображать подсказки для кнопок (ShowScreentips on Toolbars).
Меню и панели инструментов обычно отображают только часто используемые команды и кнопки. В этом случае у нижнего края раскрытого меню вы увидите двойную стрелку. Щелкните на ней или просто подведите к ней указатель, и меню раскроется полностью — или просто дважды щелкните на команде меню, оно тоже сразу раскроется полностью. Если выбрать команду меню, которая по умолчанию не отображалась, например Крупные значки (Large Icons) в меню Вид (View), то в дальнейшем она будет показываться в сокращенном списке. Если такое меню для вас неудобно, в том же диалоговом окне Настройка (Customize) на вкладке Параметры (Options) можно установить флажок всегда показывать полные меню (Always show full menus). Когда в одной строке помещается несколько панелей инструментов, на каждой из них обычно присутствуют отнюдь не все кнопки. Двойная стрелка появляется у правого края панели, и если щелкнуть на ней, недостающие кнопки покажутся. Меню и панели инструментов являются настраиваемыми, то есть можно менять состав кнопок, отображать дополнительные панели, но этому мы научимся на Занятии 14.
Занятие 1. Установка и первые шаги
Окно базы данных Окно базы данных позволяет получить доступ ко всем объектам базы данных и выбрать режим работы с объектом. Панель объектов находится в левой части окна. Она содержит ярлыки для каждого из объектов Access — Таблицы (Tables), Запросы (Queries), Формы (Forms), Отчеты (Reports), Страницы (Pages), Макросы (Macros) и Модули (Modules) (см. рис. 1.7). Щелкнув па ярлыке, вы получите в правой части окна список соответствующих объектов. По умолчанию он действительно выглядит как список: для каждого объекта видно его имя и значок слева (см. рис. 1.5). Однако если вы выберете команду Вид > Крупные значки (View > Large Icons), список будет выглядеть как на рис. 1.8. аанныи (Форма* Accest ZQOOj
Создание таблицы..
Создание таблицы гут..
Доставка
Заказано
Клиекты|
Поставщики
Сотрудники
Типы
Рис. 1.8. Окно базы данных в режиме крупных значков
Для изменения представления объектов можно также воспользоваться кнопками (четыре правых) панели инструментов в верхней части окна базы данных. Щелкните, например, на кнопке Мелкие з н а ч к и КО. Вы увидите представление списка в виде мелких значков (рис. 1.9). Объекты, представленные в виде значков (крупных или мелких), можно перетаскивать мышью и свободно располагать внутри окна базы данных. Если вы хотите, чтобы они располагались аккуратно друг под другом, как па рис. 1.8: 1. Щелкните правой кнопкой мыши на любом свободном участке окна базы данных. 2. Выберите в контекстном меню команду Выстроить з н а ч к и (Line Up Icons). Существует еще одно представление списка объектов — и виде таблицы. Оно позволяет увидеть не только имя объекта, но и его описание — столбец Описание (Description), дату и время последнего изменения — столбец Дата и з м е н е н и я (Modified), дату и время создания — столбец Дата создания (Created), а также
Рабочая среда Access 2003
31
I Борей: база данных (формат Лесе» 2000}
Ж!
[Создание таблицы Б режиме конструктора:
Ш
-Заказы
j
Товары
iM]
Создг
Поставщики
Клиенты
Ссгтрданнки
'
Доставка
1 l.ljlir!'.
Рис. 1.9. Окно базы данных в режиме мелких значков
... . •;[ =.3
. ., • 1
i Огадсзние | \
Таблицы • - -
ffl
; j ^jjj
'5i '- '• л '•"•
Из > .. . BJ
: т,г
Создание табл... Создание табл..
: : - - : . . . . ) ^ Создание табл...
Н f6*^" ] ' Ш J Д'ст^а
Названия и телефоны компаний, обеспеч...
23 G7 30Q3 .
100Э.1ЭЭ5..
Таблица
• - *У" Отчеты-
Заказано
Товарь!. количество и цены для каждого
23.07.2003...
10.0Э.1ЭЭ5..
Таблица
3
Заказы
Название клиента, дата заказа и стоимо
23.07.2003...
1 303.1 ЭЭ5. .
Таблица
3
Клиенты
Названия, адреса и телефоны клиентов.
23.07.2003...
10.0Э.1ЭЭ5..
Таблица
Поставщики
Названия организаций, адреса ителеФо...
23.07.2003...
10.09.1995..
Таблица
Фамилии, должности и сведения о сотрч..
23.07.2003...
16.12.1396..
Таблица
Типы товаров в базе даннык "Борей"
23.07.2003...
10.09.1995..
Таблица
Марки товаров, поставщики, иены и запа..
23.07.2003..
19.091935..
Таблица
;;.; ^3
|:; <j Ьрани^ы I j. f'j
Ш О
3 .^ rrii
!i
LJ
- jj- 1*5бв^нве^;| ^
;ТиПЫ i Това
Ры
JLL
i
>
Рис. 1.10. Окно базы данных в режиме Таблииа тип объекта — столбец Тип (Туре). Чтобы перейти к этому представлению, нажмите последнюю кнопку на панели инструментов окна базы данных (рис. 1.10) [Ж]. В н и ж н е й части окна вы увидите полосу прокрутки. Переместите движок вправо, чтобы увидеть все столбцы таблицы. При этом можно легко менять ширину столбцов, перемещая их границы мышью (как в таблицах Excel). 41
f
IfDfil
Если вы не видите в таблице столбца Дата создания (Created), подведите указатель мыши к границе между столбцами Дата изменения (Modified) и Тип (Туре) в заголовке столбцов так, чтобы он принял форму двои ной двунаправленной стрелки, и перемещайте мышь вправо.
32
Занятие 1. Установка и первые шаги
Представление в виде таблицы удобно, когда нужно найти в списке объекты с определенными характеристиками, например, последние измененные. Независимо от представления, список объектов в окне базы данных можно упорядочить по имени, типу, дате создания и дате изменения. Для этого нужно: 1. Щелкнуть правой кнопкой мыши на любом свободном участке окна базы данных. 2. В контекстном меню выбрать команду Упорядочить значки (Arrange Icons). 3. В раскрывшемся меню выбрать способ упорядочения: по и м е н и (By Name), no типу (By Type), по дате создания (By Created), по дате изменения (By Modified). Проще всего, однако, щелкнуть на заголовке соответствующего столбца. При первом щелчке на кнопке сортировка выполняется в одном направлении, при втором — в обратном. ЗАДАНИЕ Попробуйте упорядочить список таблицы (по умолчанию должен быть открыт именно этот список) по одному из указанных критериев, например, по имени. Для списка, представленного в виде значков, можно включить автоматический режим упорядочения. Для этого в контекстном меню Упорядочить значки (Arrange Icons), о котором уже шла речь, нужно выбрать команду «автоматически» (Auto Arrange). Объекты Access разных типов можно группировать и помещать в папки, которые отображаются в разделе Группы (Groups) панели объектов окна базы данных. По умолчанию там расположена пустая папка Избранное (Favorites). В эту папку можно поместить те объекты, которые используются чаще всего1. С каждым объектом базы данных можно работать в двух режимах. Первый режим назовем режимом выполнения, он несколько отличается для разных объектов. • Для таблиц, запросов, форм и страниц этот режим означает открытие объекта и называется соответственно режимом таблицы (для таблиц и запросов), режимом формы, режимом страницы. • Для отчета — это режим предварительного просмотра. • Для макроса — это режим выполнения. • Для модуля этот режим отключен. Второй режим — режим Конструктора. Этот режим применим ко всем типам объектов и предназначен для создания и изменения объектов. Выбрать нужный режим можно с помощью команд меню Вид (View) или с помощью первых трех кнопок панели инструментов окна базы данных. В папки помещаются не сами объекты, а их ярлыки — объекты остаются доступными в соответствующих списках. Ярлыки в папку Избранные (Favorites) не помещаются автоматически. Их нужно добавлять туда вручную.
Рабочая среда Access 2003
33
Название первой кнопки меняется в зависимости от того, какой тип объекта выбран. Если выбрана таблица, запрос, форма или страница, то кнопка называется Открыть (Open). Если выбран отчет -- название кнопки Просмотр (Preview), если макрос — Запуск ( R u n ) . При этом значок рядом с кнопкой также меняется, наглядно отображая ее назначение. Вторая кнопка, Конструктор (Design), не зависит от типа объекта и предназначена для его изменения. Третья кнопка, Создать (New), позволяет создавать новые объекты; название се не меняется, но меняется значок слева, отображая выбранный тип объекта. Для создания новых объектов можно использовать также специальные ярлыки, которые включены в список объектов каждого типа и помещаются в верхней части списка. ЗАДАНИЕ Выбирайте разные типы объектов на панели объектов и следите, как меняются названия и значки кнопок на панели инструментов. Закончите, выбрав тип Таблииы (Tables).
Объекты можно открыть, чтобы увидеть их содержимое, или выполнить, например, макрос. Открыть объекты можно разными способами, но обычно это делается просто двойным щелчком на имени объекта1. 1. Дважды щелкните на таблице Клиенты (Customers). Таблица откроется в режиме таблицы. На следующих занятиях мы подробно познакомимся с тем, как работать с таблицей в этом режиме, а пока можете, просто перемещая движки на полосах прокрутки справа и внизу, увидеть содержимое этой таблицы. 2. Щелкните на плюсе с левой стороны в любой строчке таблицы. Таблица, оказывается, не простая. Теперь вы видите не только данные о клиенте в выбранной строчке таблицы, но и все заказы, которые сделал этот клиент (рис. 1.11). 3. Закройте окно таблицы, щелкнув на кнопке с плюсиком в правом верхнем углу окна. Таблица Клиенты (Customers) осталась выделенной в списке таблиц. 4. Щелкните на кнопке Конструктор (Design), и вы увидите структуру этой таблицы, то есть ее описание и свойства всех столбцов (рис. 1.12). Этот режим используется для изменения структуры или для создания новой таблицы. Подробно с этим режимом мы познакомимся на Занятии 3. Аналогично в режиме конструктора можно открывать и другие типы объектов. 5. Закройте окно Конструктора таблиц (так же, как и окно таблицы). Можно открывать объекты и просто одним щелчком мыт», как на веб-страницах. Для этого нужно изменить параметры приложения, но с настройками Access мы познакомимся позже. 2 Зак. 680
34
Занятие 1. Установка и первые шаги
л^нрсть
К.' .Ajfreds Futterkiste ANATR
L^^.Anders
: An a Truj i 11 о E mp a r e 1a d p s
jAna TVujillo
10308 Кралев, Петр.
18:09:199б;
:
T0625 Бабкина, Ольга
;BERGs BLAUS ;
BLONP"
. BOLID E?P^A^ BOTTM l.BSBEV CACTU CENTC
1
Q
.
:|
''- 8- 997"PocTpaH',
12-12-1997 Иное ""
26-12-997
1ЖШЩ
10926; Воронова. Дарья
. Avdaii
24-09-1996^ Почта
16-10-1996
1Ш)ЕИ997;
]рЖШбкина'.'Ольга^'
ANTON
. . . . . . . . . . . : Совладелец
1Ш-1998 иное ......
р4:ОЭ:1956;
: Antonio М °1 . 1 . .Aroundthe Horn
^ 9 .' l^ ^. ? iThomas Hardy
;Совладелец ; Представитель
1201
• Berglunds snabbkop
: Chrislina Berglund
: Координатор
Виге
Нэппа Moos
i Представитель
Frj's
огеп
а с
и епа
г1
:
Blauer See Delikatessen Blondel pere et
fils
;Boltdo Comicfaspreparadas n
l^9 . ?PP' ; Bottom-Doliar Markets ;B's Beverages u s
35
а га
е
а|
: Q?f-! . Р^ГР'.^. . . Р . . !! У ! i Centre comercial Moctezuma.
г
0
0
11
: Frederique Cneaux
;Mats
^з.бный менеджер
M?^.!! ^ . .. .
iСовладелец
'^М^.ПР^ !r?l!!.h?n. : Eliiabeth Lincoln
'• Совлад елец
iyictoria Ashworth
Представитель
1
orn rn
er
s
n
• P?'.r.'l-'9 ^!^R. 9 ; Francisco Chanq
1
M F С/АI2,i 23 Т:
; Бухгалтер
Faur
;Продавец
:
•Главный менеджер,
Cerri Sierr
>Г
Рис. 1.11. Табдииа, открытая в режиме таблииы
.1-:.1I»-J«!
. 1- КодКпиента
Название ОбращатьсяК Должность Адрес Город Область №|Декс : ,,-,.--«:• ячянш)
--I .!
!
-';?д клиента^
. . ,
йекь1роеаивт
. Да (Со&пвдения не допускаются)__ Нет контроля ri-1
•
Рис, 1.12. Таблица, открытая в режиме конструктора 6. Раскройте список экранных форм приложения, щелкнув на ярлыке Ф о р м ы (Forms). 7. Выделите в этом списке форму Клиенты (Customers) и щелкните на кнопке Отк р ы т ь (Open).
Рабочая среда Access 2003
35
Появится экранная форма, с помощью которой можно вводить данные в таблицу Клиенты (Customers) или изменять отдельные записи этой таблицы (рис. 1.13). Вы научитесь создавать такие формы на Занятиях 8, 9 и 10.
Клиенты
*зав а н н е Г||:[Д Ki sd ? FшеTkjt>e 1
Обращаться к:||- Maria Andeis Е^Д**?'*^" !**.!.!:! Представите ль г
Т Адрес |1!оЬ^ё'55Г§7"
.. i- i
Рис. 1.13. Форма Клиенты
8. Щелкните на ярлыке Запросы (Queries) на панели объектов и попробуйте открыть любой объект из списка запросов (форму Клиенты (Customers) можно при этом не закрывать). Вы видите таблицу, которая по форме не отличается от тех таблиц, которые мы открывали из списка Таблицы (Tables). Действительно, запросы в Access в некотором смысле очень близки к таблицам и могут использоваться в создаваемом приложении точно так же, как и таблицы. Поэтому и отображаются они как таблицы. На самом деле вы видите в табличном виде результат выполнения запроса к базе данных Access (рис. 1.14), и обычно это некоторое подмножество строк из одной или нескольких таблиц Access, отобранных определенным образом. Подробнее о том, как создавать и выполнять различные типы запросов вы узнаете на Занятиях 6 и 7. Одновременно может быть открыто несколько объектов (несколько окон'), в том числе и разных типов. Однако только одно окно будет активным. Заголовок активного окна выделяется цветом, выбранным при установке параметров рабочего стола Windows (по умолчанию это синий цвет). 9. Попробуйте, не закрывая формы Клиенты (Customers), вернуться в окно базы данных и открыть другую форму, например, Сотрудники (Employees). 10. Все окна открытых объектов размещаются в пределах главного окна Access. На рис. 1.15 открыто несколько объектов, причем некоторые из них в режиме В терминологии Windows эти окна являются окнами документов. Исключением являются программные модули, для представления которых используется специальная среда программирования.
36
Занятие 1. Установка и первые шаги
; т i ipftjjjffi Chartreuse verte
S.
„.
10248 NuNuCa Nuss-Nougat-Creme 10248; Mishi Kobe Niku 10248 Jack's New England Clam Chowder 10248: Camembert Pierrot 1Q249;Valkoinen suklaa 10249; Sir Rodney's Marmalade 10250; Chang 10250 Boston Crab Meat 10250 Uncle Bob's Organic Dried Pears 10251 :Gnocchi di nonna Alice 10251; Chang 10251. Scottish Longbreads 10252. Mascarpone Fabioli 10252. Louisiana Hot Spiced Okra 10252 Raclette Courdavault '10253 Chocolate. 10253 Original Frankfurter grime Sosse
!, ;
•
Ц~ Марка г. : .:•: I" "йен* Chartreuse verte Зб.ЗОр.'^ NuNuCa Nuss-Nougat-Creme : 140,00р.".." Mishi Kobe Niku 348,00р. * : Jack's New England Clam Chowder 98,QQp.:.; Camembert Pierrot 345,00p Valkoinen suklaa 424,00р. '] Sir Rodney's Marmalade 185,00р. Chang 168,00р. Boston Crab Meat 77.00р. Uncle Bob's Organic Dried Pears 135.00р. . \ Gnocchi dl nonna Alice "i56,00p. Chang 168,00р.? :• Scottish Loncjbreads 168,00р. Mascarpone Fabioli 20.00р.: Louisiana Hot Spiced Okra Б48,00р. Raclette Cqurdavault_ 272,00р. Chocolade "legjdop. Original Frankfurter grune Sosse iog oop м :
Рис. 1.14. Запрос, открытый в режиме таблицы
10248 Chartte. J024S NuNuC;
Номер, однозначно опредепя'ош.и
' | I - 10252;Louisiana Hot Spice 10252-Raclette Courdavaut 10253^Cnoco|ade i0253rpriginal Frankfurter i 10253!Cote de Blaye 10264, Outback Lager 10254 Queso Cabrales
.»••:.
'
:
.. ]
. дефекты •
Создание rafij Создание тай Создание тай' Заказано
•i .- :,-•
|
Заказы Клиенты Поставщики Сотрудники Типы
> . ..
Товары
Запись, H
Рис. 1.16. Окна открытых объектов в режиме «слева направо ЗАДАНИЕ Попробуйте открыть список отчетов и перетащить таким образом какой-нибудь отчет, например, Список товаров (Product List). Вы увидите в режиме просмотра страницу документа, отформатированного заранее определенным образом и содержащего алфавитный список товаров, 1
Названия у них, как вы уже, наверное, заметили, могут совпадать.
38
Занятие 1. Установка и первые шаги
продаваемых фирмой Борей. Кнопки со стрелками в нижней части окна (рис. 1.17) позволяют пролистать остальные страницы документа. ®Micifisoli Access - [Список товаров : отчет!
- _ № х
Списоктоваров по алфавиту
E дш!«м тмервння:
Марка: Ah seed Syrup
Припув вы
12 Вутыпокпо 550 глп
23
Марка: Bcelon Crab Meal
Едипча и)м«1>«н1я:
1Ллргл:
15 упаковок по 300 г
С em em taert Pierrot
Молочные продукты
Camarwn Tigers
P ьбопродукты
Cha.
Напитвл
10 коровок по 20 л т.
Напитки
24 Бу1ъгп1мпс1 355 мл
^iIjp"1'Miy JLJ
Рис. 1.17. Отчет, открытый в режиме просмотра
Если окно, а котором отображаются страницы документа, очень маленькое, потяните мышью за один из углов окна1, чтобы увеличить его размер, или откройте его на весь экран, щелкнув на кнопке Развернуть в правом верхнем углу заголовка окна.
Еще одним видом объектов Access являются страницы доступа к данным Data Access Pages. Страницы доступа к данным — это веб-страницы, обеспечивающие функциональность стандартных форм и отчетов Access: ввод, изменение и отображение данных. 11. Откройте список страниц базы данных Борей. mdb и затем откройте тем способом, который показался наиболее удобным (вы уже познакомились с тремя), одну из страниц, скажем, А н а л и з продаж (Analyze Sales). В окне, аналогичном представленному на рис. 1.18, показана сводная таблица заказов каждого сотрудника фирмы Борей. В верхней части окна содержится Можно также перемещать нижнюю или правую границу, изменяя только вертикальный или горизонтальный размеры окна.
Рабочая среда Access 2003
39
Сервис .Дкно
1! Анализ продаж В сводном списке нажмите индикатор развертывания (+) около имени НаэваниеПопучателя, чтобы просмотреть заказы для данного клиента. Нажмите индикатор развертывания около имени сотрудника, чтобы просмотреть заказы данного сотрудника. Чтобы вьввать справу по изменению макета и прочим способам анализа данных в списке, нажмите кнопку "Справка" на панели инструментов сводного списка,
" 10759: ... v 1 0365} 10682! 10356;
"
3 200,00р I
4032,Шр: З"755.0бр! "5'бШ,оЬр.!
"
л] Рис. 1.18. Странииа доступа к данным
i -,. •
'• ••' ,
'..;•
г;. .. .
• .. Копировать (Edit > Copy).
Рабочая среда Access 2003
41
Борей : база данных (формат Лесе»
Создание табпицы в режиме конструкте Создание таблицы с помощью мастера Создание таблицы путем ввода данных
' . . т .--• L-. ' I i
Печать
'••г.-.ч. ;,ы
П редвар иге льнь и п ро смотр
Нак^осы
Дырезать Копировать :; Сохранить как... s Экспорт... .-.
Отправить Добавить в группу
I X";
Создзтьярлык... Удалить
- '| Пере(1мемовать ^•1 Свойства I Зависимости ой^ектов
Рис. 1.20. Контекстное меню объектов базы данных
Способы вставить таблицу из буфера обмена: • нажмите кнопку Вставить (Insert) на панели инструментов База данных (Database); • щелкните правой кнопкой мыши на свободном поле окна базы данных и в контекстном меню выберите команду Вставить (Insert); • нажмите одну из комбинаций клавиш — Shift+Ins или Ctrl+V; • выполните команду Правка * Вставить (Edit > Insert). При вставке таблицы из буфера появится диалоговое окно Вставка таблицы (Paste Table As). В поле Имя таблицы (Table N a m e ) нужно ввести имя новой таблицы и в группе Параметры вставки (Paste Options) выбрать вариант вставки: только структура (Structure Only), структура и данные (Structure and Data), добавление данных в таблицу (Append Data to Existing Table) (рис. 1.21). Режим только структура (Structure Only) используется, сели нужно скопировать только структуру таблицы, сами данные при этом не копируются. В режиме структура и данные (Structure and Data) таблица копируется целиком, а в режиме добавление д а н н ы х в таблицу (Append Data to Existing Table) в качестве имени таблицы нужно указать имя уже существующей таблицы, после чего в нее будут добавлены данные из таблицы, которая находится в буфере обмена. Но при этом структуры обеих таблиц должны совпадать.
42
Занятие 1. Установка и первые шаги
ii.il
:
'*' ОТУКТУРЙ Н Д.!Г"1ЬН
г
Рис. 1,21. Диалоговое окно вставки таблииы ЗАДАНИЕ Создайте таблицу Новые товары, которая будет и меть такую же структуру, как и таблица Товары, но не копируйте в нее содержимое таблицы Товары. Откройте новую таблицу и убедитесь, что она пуста. Затем создайте полную копию таблицы Поставщики. Назовите ее Поставщики_копия, раскройте и убедитесь, что в ней присутствуют все строки и столбцы таблицы Поставщики. Удалите созданные копии таблиц. При копировании других объектов альтернатив нет — объекты копируются целиком со всеми их свойствами и содержимым. К сожалению, нет возможности выполнять операции копирования и удаления сразу над группой объектов.
Главными объектами базы данных Access являются таблицы. Все остальные объекты строятся на базе таблиц или их производных — запросов. Поэтому объекты Access связаны между собой зависимостями. В Access 2003 появилась возможность просмотреть связи между объектами Access. 1. Выделите в списке таблиц таблицу Клиенты (Customers). 2. Выберите в контекстном меню команду Зависимости объектов (Object Dependences). В правой части главного окна Access появится область задач Зависимости объектов (Object Dependences). В ней по умолчанию показываются все объекты (сгруппированные по типам), которые зависят от выбранного объекта, то есть от таблицы Клиенты (Customers). Как видите, от нее зависит много объектов — и запросы, и отчеты, и формы (рис. 1.22). Наименования всех объектов выделены синим цветом. Подведите указатель к любому из них. Указатель изменит форму, и наименование объекта будет подчеркнуто. Такой объект в любом документе Microsoft Office называется гиперссылкой. Если щелкнуть на такой гиперссылке, объект в режиме конструктора откроется в левой части окна Access. Последнее, что нам осталось рассмотреть — добавление объектов в группу и создание новых групп. Проще всего добавить объект в группу, раскрыв список объектов требуемого типа, выделив в нем объект и перетащив его мышью в соответствующую папку на панели объектов. Щелкнув на папке, в правой части окна базы данных можно увидеть список объектов, входящих в группу.
Справочная система
.]
J
-.,
4.J
"
Издать I i|y
Сознание таблицы в режиме конструкторе Создание таблицы с помощью мастера Создание таблицы путем ввода папньк
•3
Доставка
[3
Заказано
^j
Заказы
jh:! Запросы Звпр!К Заказы обороты '•-. Формы
3
Поставщики
3
Сотривм«ии
Закагы клиентов
.3
Типы
Клиенти
Товары
Наклейки для клиентов
3
Заказы
Телефоны клиентов
Рис. 1.22. Просмотр зависимостей между объектами Access ЗАДАНИЕ Попробуйте перетащить в папку Избранное (Favorites) разные объекты: таблицы, запросы, формы, отчеты. Убедитесь, что в группу включаются только ярлыки обьектов, сами же объекты видны в своих списках. Чтобы создать новую группу (папку): 1. Щелкните правой кнопкой мыши на свободном поле в области Группы (Groups) на панели объектов и выберите в контекстном меню команду Новая г р у п п а (New Group); 2. В диалоговом окне Новая г р у п п а (New Group) введите имя создаваемой группы и нажмите кнопку ОК. Папки и ярлыки в этих папках, так же как и объекты базы данных, могут копироваться, удаляться и переименовываться.
Справочная система При работе с Microsoft Office Access 2003 вы наверняка будете пользоваться справочной системой, которая является очень насыщенной и содержит огромное количество информации о том, как работать с Access. Однако для этого нужно научиться находить ответы на свои вопросы.
44
Занятие 1. Установка и первые шаги
1. Если вы не отключили помощника, щелкните на нем дважды. Появится диалоговое окно с полем для ввода вопроса. 2. Попробуйте ввести в это поле Помощник (Assistant) (ключевое слово по интересующей теме). Нажмите кнопку Найти (Search). Появится новая область задач Поиск (Search Results) (рис. 1.23). В этой области отображается список тем из 11 элементов, в которых присутствует ключевое слово «Помощник».
Дано пните льмое н обновленное ;• содержимое можно найти на реб-узпе • • Microsoft Office Online. ф Дол о пни тельные сведения Результат (К) .| $> Скрыть или отобразить | помощника го Office
•; *-•«>' г.Разрешение зопросов, связанных ;-'. J со справкой :-; %! Выбор другого помощника по Office Вкл>очение и откпкэчение звукового сопровождения помощника по Office О совета.; и сообщениях помощника по Of fee Отобр;
Поиск ;Автономная справка [Помощник *,#'• Не удавтсз найти?
Рис. 1.23. Область задач с результатами поиска
3. Выберите одну из тем, щелкнув на строке. Если вы найдете в списке что-то подходящее, выберите эту тему. Например, Включение и отключение звукового сопровождения помощника по Office (Turn the Office Assistant sound on or off). Будет выведено окно Справка Microsoft Office Access (Microsoft Office Access Help), в котором отображается соответствующий раздел справки (рис. 1.24). 4. Если помощник отключен, выполните команду Справка > Справка: Microsoft Office Access (Help > Microsoft Office Access Help). Появится область задач Справка Access (Microsoft Office Access Help) (рис. 1.25). В этой области есть поле Искать (Search). Сюда можно вводить слова по интересующей теме, так же, как вы это делали в диалоговом окне помощника. 5. Введите в это поле слова создать таблицу и нажмите кнопку со стрелкой справа от поля. Снова появится область задач Поиск (Search Results) со списком тем, в которых объясняется, как создавать таблицы в Access. Изменить кри-
Справочная система
45
©Справно Microsoft Office Acces*
Включение и отключение звукового сопровождения помощника по Office Некоторые сведения в этом разделе могут быть неприменимы к отдельные языкам. Для прослушивания звукового сопровождения помощника по Office на компьютере должна быть установлена звуковая плата. 1.
Щелкните изображение помощника. Если помощник по Office не отображается, выберите команду Показать помощника Б МЕНЮ С правка.
2.
Б выноске помощника no Office нажмите кнопку Параметры, Если выноска помощника no Office не отображается, щелкните изображение помощника.
3.
На вкладке Параметры установите или снимите флажок Звуковое сопровождение.
I
Рис. 1.24. Окно справки Microsoft Office Access 2003
6. 7.
8.
9.
10.
11.
терии поиска можно в этой же области задач. Для этого в ее нижней части есть еще одно поле поиска (см. рис. 1.23). Введите в поле поиска слово связь и нажмите стрелку справа. Появится новый список тем. Чтобы вернуться в область Справка Access (Microsoft Office Access Help), щелкните на стрелке в заголовке области и выберите в раскрывающемся списке слово Справка (Help) — в списке показываются наименования всех задач, которые могут отображаться в области задач. Выберите гиперссылку Table of Content (Оглавление), которая находится прямо под полем Искать (Search). В этой же области появится оглавление справки (рис. 1.26). Это оглавление представляет собой иерархическую систему разделов и тем справки. Оглавление может содержать разделы справки, которые находятся на сайте Microsoft в Интернете, но если такой связи у вашего компьютера нет, отобразятся разделы справки локального компьютера Чтобы открыть интересующую тему, щелкните на соответствующей строке (гиперссылке). На нижнем уровне иерархии размещаются разделы справки, которые помечаются значком с вопросительным знаком (все остальные уровни помечаются значком книги). Щелкните на заголовке раздела, в отдельном окне появится текст этого раздела (см. рис. 1.24). Слова или фразы, выделенные в этом тексте синим цветом, также представляют собой гиперссылку. Эта ссылка либо отправляет вас к другим разделам справки, либо просто вставляет скрытый за ней текст прямо в исходный текст. Если щелкнуть на такой гиперссылкс еще раз, текст вновь будет скрыт. Текст любого раздела можно легко напечатать, если нажать кнопку Печать (Pri nt) на панели инструментов окна справки [Д.
46
Занятие 1. Установка и первые шаги ; Справка До се»
Помощь Искать:
j Оглавление
Office в Интернете ; *
Подключиться к веб-узлу Microsoft Of fee ON in e
'« Последние сведения об использовании Access * Д втамат иче ски об нов л ят ь STOT список из Веба
i всгва STf Загрузка
См, также * Новые возможности * Свяжитесь с нами * Справка по специальным возможностям * Параметры содержимого в
Рис. 1.25. Область задач справки Microsoft Office Access Перемещаться по уже просмотренным разделам справки удобно с помощью кнопок со стрелками на панели инструментов. Кнопка Назад (Back) позволяет вернуться в предыдущий раздел справки, а кнопка Вперед (Forward) — перейти в следующий.
12. Вернитесь в область задач Справка Access. Бы видите, что в ней размещаются еще несколько групп задач, которые позволяют получить различные виды помощи в Интернете. По умолчанию в области выводятся именно эти задачи, а при вызове оглавления справки поиск автоматически ведется сначала тоже в Интернете. Если выхода в Интернет нет, это действие можно отключить. 13. Для этого щелкните на ссылке Параметры содержимого в сети (Online Content Settings). В появившемся диалоговом окне Параметры служб (Service options) снимите флажок Показать содержимое и ссылки с веб-узла Microsoft Office Online (Show content and links from Microsoft Office Online).
Если вы любите работать с помощником, например, привыкли к нему, работая в других приложениях Microsoft Office, воспользуйтесь им — помощник работает одинаково во всех приложениях Office. В отличие от разделов справки, которые вы открываете сами по мере необходимости, помощник ведет себя активно,
Справочная система
47
. Справка Access
Просмотрите интерактивное оглавление. ;|$! Дополнительные сведения
Оглавление 1
"Л:-Ми;-
•
•'.'.;..
В ,..|! ••
' • ' • г :•;.,.
'- " •'' •• i 'rf" khi ' :
Рис. 1.28. Диалоговое; окно параметров помощника
Последнее, что необходимо сделать, прежде чем мы закончим наше первое занятие, это обратить внимание на текстовое поле в правой части строки меню. Вы и сами, наверное, обратили на него внимание, тем более что по умолчанию текст в этом поле — Введите вопрос (Type a question for help). В это.поле тоже можно ввести слово или словосочетание и нажать клавишу Enter. И опять вы получите в области задач список разделов справки, касающихся этого слова. Впоследствии в раскрывающемся списке этого поля будут показаны все слова, которые вы вводили.
Завершение работы Если вы хотите закончить работу и закрыть базу данных, нужно сначала аккуратно закрыть все открытые окна объектов, а затем выполнить команду Файл * Закрыть (File > Close) или просто закрыть окно базы данных, щелкнув на кнопке закрытия в правом верхнем углу.
Подведение итогов
49
Если вы хотите вообще завершить работу с Access, закройте аналогичным образом главное окно Microsoft Office Access или выполните команду Файл > Выход (File > Exit).
Подведение итогов Итак, на данном занятии вы научились: • устанавливать Microsoft Office Access 2003 с компакт-диска; • запускать Access и открывать и нем уже существующую базу данных; •
открывать и просматривать основные объекты базы данных Access: таблицы, запросы, формы, отчеты, страницы доступа к данным;
• выполнять основные операции с этими объектами и группами объектов: создавать 1 , удалять, переименовывать и копировать; • пользоваться меню и панелями инструментов, как общими, которые находятся в главном окне Microsoft Office Access, так и локальными, расположенными в других окнах, в данном случае — в окне базы данных; • вызывать окно справки Microsoft Office Access и справляться с помощником;
• закрывать базу данных и завершать работу в Access.
1
По крайней мере, знаете, как начать создавать. Создавать т>ти объекты мы будем учиться позже.
ЗАНЯТИЕ 2
Создание базы данных
ТЕМА ЗАНЯТИЯ В процессе этого занятия вы узнаете: • что такое база данных и чем таблицы Access отличаются от таблиц Excel; • как быстро создать новую базу данных с помощью мастера; • как создать новую базу данных, не пользуясь мастером (база данных пока будет пустой — наполнять ее, то есть создавать объекты этой базы данных, мы будем на следующих занятиях); • немного о проектах Access.
Базы данных — основные понятия
5 I
Для выполнения большинства упражнений данного занятия не потребуется ничего, кроме установленной версии Microsoft, Office Access 2003. Но если вы хотите выполнить упражнения последнего раздела и создать проект Access, понадобится Microsoft SQL Server 2000.
Базы данных — основные понятия Чтобы начать создавать собственные базы данных, нужно иметь представление о них несколько большее, чем просто как о наборе таблиц. Поэтому в начале этого занятия мы познакомимся с основными понятиями баз данных, которые понадобятся, чтобы грамотно с самого начала создавать свои приложения.
Реляционная модель данных Microsoft Access относится к реляционным системам управления базами данных, СУБД — от английского relation (отношение). Действительно, реляционная база данных (relational database) представляет собой совокупность таблиц, связанных между собой определенными отношениями и предназначенных для хранения данных. Отношения между таблицами являются существенной частью этой модели данных. Однако когда говорят об Access, под базой данных подразумевают более широкое понятие — приложение, которое основано на реляционной базе данных и имеет интерфейс, позволяющий работать с хранящимися в ней данными. Основу реляционной модели данных составляют таблицы, которые содержат данные об однотипных объектах. В этом предложении очень важно слово «однотипных». Таблица реляционной базы данных состоит из множества строк и столбцов. Каждая строка таблицы содержит данные об одном объекте и называется записью (record). Все записи имеют одинаковую структуру — они состоят из полей (field), в которых хранятся атрибуты (свойства) объекта. Каждое поле записи содержит некоторое свойство представляемого объекта. Все записи имеют одни и те же поля, поэтому каждый столбец таблицы содержит значения одного и того же свойства объектов, представляемых таблицей. А это значит, что данные в ячейках одного столбца должны быть одного типа, и в этом коренное отличие таблиц реляционной базы данных от таблиц Excel. Допустим, таблица хранит данные о людях — сотрудниках предприятия, студентах или пациентах поликлиники. Один из столбцов таблицы может содержать дату рождения каждого человека. В этом случае столбец будет иметь тип данных «дата». Это означает, что в нем не может быть никакой другой информации, кроме дат. Другой столбец, содержащий, например, вес человека, будет иметь числовой тип данных и не может хранить ничего, кроме чисел. Можно сказать, что в таблице реляционной базы данных количество полей в каждой строке одинаковое, в каждом столбце хранится однотипная информация, в каждой строке хранится информация только об одном объекте, причем в других строках сведений об этом объекте быть не может.
52
Занятие 2. Создание базы данных
Каждая таблица должна иметь один или несколько столбцов (атрибутов), которые однозначно идентифицируют каждый объект в таблице, то есть позволяют четко отличить один объект от другого. Такие столбцы образуют первичный ключ (primary key), и если столбцов несколько, то говорят, что первичный ключ является составным (compound key). Поле, представляющее первичный ключ или являющееся частью первичного ключа, называется ключевым полем (key field}, Например, на рис. 2.1 приведена таблица Товары (Products). Первый столбец этой таблицы Код товара (Product ID) является ключевым, так как код товара уникален для каждого товара, то есть для каждой записи. Это означает, что в таблице Товары не может содержаться двух записей с одним кодом товара.
P;Genen Shouyu 2 Pavlova 3:Alice Mutton 4 Carnarvon Tigers SlTeatime Chocojrte .Biscyits 6; Sir Rodney's Marmalade 7; Sir Rodney's Scones BiGustafs Knackebrad 9;Tunnbrqtl 10 Guarana Fantastica 11 ;NuNuCa Nuss-Nougat-Creme 12;Gumbar Gumrnibarchen 13iSchogqi Schokolade !,' и;
iMayumi's ; Pavlova. Ltd. ! Pavlova, Ltd. [Pavioya, Ltd.
2; 24 бутылки по 250 мл 3|32 коробки по 500 г 6120 банок по 1 кг 8:1 Б кг упаковка ок по 12 шт.
I Specialty Biscuits, Ltd.
...?J.??..!?.9PPA9!?.
: Specialty Biscuits, Ltd. IPB Knackebrod AB ;PB Knackebrod AB IRefrescos Americanas LTI ^AO Германия-Россия АО Германия-Россия АО Германия-Росс и я
3j24 упаковки по 4 шт. 5J24упакоеки по 500 г 5И2 упаковок no 250 г 1M2 банок по 355 мл 3;20 банок по 450 г 3j100 пакетов по 250 г ЭМОО штук по "ОС г
Л :
;
Рис. 2.1. Табдииа товаров
Б реляционной базе данных очень важным является понятие связи между таблицами. Связь (relationship) — это логическое отношение между объектами, представленными таблицами. Связь между записями двух таблиц основана обычно на совпадении значений атрибутов, по которым эта связь устанавливается. Чтобы было понятно, о чем идет речь, рассмотрим еще одну таблицу — Типы (Categories) (рис. 2.2). Ш Типы : таблица Спп-сания J Напитки 2 Приправы 3 Кондитерские изделия
Алкогольные и безалкогольные напитки, кофе, чай, пиво и пр. Сладкие и острые соусы, пряности, пасты и другие приправы Десерты, конфеты, джемы, муссы, сладкая выпечка
4^Молочные продукты Сыры, творог, сметана и пр. 5 Хлебобулочные изделия Хлеб, крекеры, оопья и пр. 6 Мясо/птица 7 Фрукты 8 Рыбопродукты^ (Счетчик);
.Мясные полуфабрикаты и готовые изделия Сушеные и свежие фрукты Водоросли, крабы, устрицы, рыбы
Рис. 2.2. Таблииа категории
Базы данных — основные понятия
53
Эта таблица также имеет ключевое поле — Код т и п а (Category ID). А теперь сравните таблицы Продукты и Типы. Несомненно, эти объекты связаны между собоа. В таблице Продукты есть столбец Тип (Category). Товар с кодом 1 имеет тип 2 Приправы. Товар с кодом 3 имеет тип 6 — Мясо/птица. Итак, первая запись таблицы Товары связана со второй записью таблицы Типы, третья запись таблицы Товары связана с шестой записью таблицы Типы и т. д. Столбец Тип может содержать только такие значения, которые совпадают со значениями кодов типов таблицы Типы, и никакие другие. Таким образом, связь между таблицами устанавливается по полям Тип и Код типа. Обратите внимание, что значение 2 содержится в столбце Тип несколько раз, то есть несколько товаров имеют категорию 3 (относятся к кондитерским изделиям), несколько раз встречается значение 5 — хлебобулочные изделия, и т. д. Значит, одной записи в таблице Типы соответствует несколько записей в таблице Товары. Такая связь называется «одип-ко-миошм>>. На стороне «один» находится таблица Типы, а на стороне «многие» — таблица Товары. При этом таблицу Типы принято называть главной, а таблицу Товары — подчиненной. Отношение «один-ко-многим» — только один из видов отношений между таблицами. Рассмотрим, как связаны таблицы Товары и Заказы (Orders), если предположить, что таблица Заказы содержит записи о товарах, заказанных клиентами. Очевидно, один и тот же товар может содержаться в разных заказах, и в то же время один заказ может содержать много товаров. Такой тип отношения между таблицами называется «многие-ко-многим-». Если каждой записи в одной таблице соответствует только одна запись в другой таблице, то это отношение ..,,--Y.nr.! .1
Рис. 3.17. Определение списка фиксированных значении
14. В последнем окне нажмите кнопку Готово (Finish). Посмотрите значения свойств на складке Подстановка (Lookup) (рис. 3.18). Свойство Тип источника строк (Row Source Type) имеет значение Список значен и й (Value List), а Источник строк (Row Source) содержит сами значения. тип этвментй упраеФеж! |поле со списком^ || 'SCnHCOK значений I ""(!:ннга";'У);рнап"^"гаэета •Ц
:
•2,^м
Ш 1. i i 1, .;,.-- ;ц-.:-.:,. .
Рис. 3.18. Список подстановок из фиксированных значений
Редактирование структуры таблицы в режиме конструктора
85
Контроль вводимых данных Access может осуществлять проверку данных, вводимых в поле таблицы. Чтобь: это происходило, нужно на этапе определения структуры таблицы установить соответствующие свойства поля. Существует два способа выполнения проверки: • задать логическое условие, которое будет проверяться всякий раз, когда в это поле будут вводиться данные, а также сообщение, выдаваемое при нарушении этого условия; • установить маску ввода. Например, в нашей таблице Издания есть числовое поле ГодИздания. Логично проверять, правильно ли вводятся данные в это поле. Можно проверить, что вводятся четыре цифры года и что этот год не больше текущего. 1. Выделите поле ГодИздания и найдите на вкладке Общие (General) свойств поля свойство Условие на значение (Validation Rule). Условие должно выглядеть следующим образом: 1еп(Тпгп(5ШГодИздания)))=4 And ГодИздания Внешние данные » Импорт (File » Get External Data > Import). Появится диалоговое окно Импорт (Import) (см. рис. 4.8). В нем теперь отображается папка, содержащая файлы демонстрационного примера. 2. В списке Тип файла (Files of type) выберите Microsoft Access (*.mdb,*.adp,*.mdw, *.mda, *.mde, *.ade).
3. Выберите в списке файл БиблиотекаДанные.тоЪ и нажмите кнопку Импорт (Import). Появится диалоговое окно Импорт объектов (Import Objects). 4. Нажмите кнопку Параметры (Options), чтобы расширить окно (рис. 4.12). Диалоговое окно Импорт объектов используется для импорта любого объекта Access. В нем несколько вкладок. По умолчанию открыта вкладка Таблицы (Tables). В нижней части окна открылись переключатели и флажки, которые позволяют определить параметры импорта. При импорте таблиц есть возможность импортировать только структуру таблицы или структуру вместе с данными (только данные импортировать нельзя). По умолчанию импортируется таблица вместе с данными. 5. Выделите в списке таблицу МестаХраненил и нажмите кнопку ОК. В списке таблиц базы данных появится новая таблица МестаХранения!. Импорт объектов Таблицы 1 Запросы Формы Отчеты Страницы i Макросы j Моду. АвторИздэние Авторы Города Издания Издательства МестаХранения Разделы Формуляры Читатели
QK
"Отмена •§Мчделить всё. Очистить see
-Импорт а данных I. Г~:§мёню и панели
-.Импорт таблиц ~:-
Импорт запросов
**•*. Ешуктурэ и данные
.** как загрбсрв
С только структура
.f как таблиц
Рис. 4.12. Импорт таблиц, из файла Access
6. Откройте.новую таблицу в режиме таблицы и щелкните на маленьком сером прямоугольнике в левом верхнем углу, где сходятся строка заголовков столбцов и столбец выделения записей. Будут выделены сразу все записи таблицы. 7. Скопируйте выделенные записи в буфер, откройте таблицу* М е с т а Х р а н е н и я и вставьте в нее записи из буфера. 8. Теперь таблицу МестаХранения! можно удалить.
Присоединение внешних таблии
1 09
Присоединение внешних таблиц Помимо импорта данных, Access обладает возможностью устанавливать связи с внешними таблицами, в том числе и с таблицами, отличных от Access форматов. Это дает возможность работать с данными, расположенными в других базах данных или таблицах так, как если бы они находились в вашей базе данных. Попробуем установить связь со списком новых поступлений, который содержится в файле Н о в ы е поступления.xls. 1. Щелкните правой кнопкой мыши на свободном поле окна базы данных и выберите в контекстном меню команду Связь с т а б л и ц а м и (Link Tables). Появится диалоговое окно Связь (Link), аналогичное окну Импорт (Import). 2. Выберите в этом окне папку с файлами демонстрационного примера и тип файла Microsoft Excel (*.xls). Затем выделите файл Новые поступлениями и нажмите кнопку Связь (Link). 3. Запускается мастер связывания электронной таблицы (Link Spreadsheet Wizard). Первые шаги мастера аналогичны шагам мастера импорта-электронных таблиц. Нужно указать лист Excel, с которым будет устанавливаться связь. Выберите в списке лист Октябрь и нажмите кнопку Далее (Next). 4. Оставьте установленный по умолчанию флажок Первая строка содержит заголовки столбцов (First Row Contains Column Headings) и нажмите кнопку Далее (Next). 5. На последнем шаге в поле Имя связанной таблицы (Linked Table Name) введите имя таблицы Новые поступления и нажмите кнопку Готово (Finish). В списке таблиц появится новая таблица Новые п о с т у п л е н и я . Значок этой таблицы отличается от всех остальных значков — он указывает на формат таблицы. Стрелочка указывает на то, что это внешняя таблица, то есть находится не в файле базы данных (рис. 4.13). Ш Библиотека : йаза данных {чюрмат
Создание таблицы в режиме конструктора Таблицы •
ijj|j 1Щ
" :•
Ш :-(• !, (•
Создание таблицы с помощью мастера Создание таблицы путем ввода данным
[П
Авто рИ здание
3
Авторы
'3
Городе
цЗ
Издания
L3
Издательства
3
МестаХранений
>j|jj у i™|
Ошибки вставки
СЗ
Разделы
1
Формуляры
Рис. 4.13. Связывание с табдииеи Excel
Читатели
11 0
Занятие 4. Ввод и редактирование данных
Если в базе данных уже существует таблица, имя которой совпадает с именем файла ExceL выдается вопрос: Перезаписать существующую таблицу? При отрицательном ответе связь установлена не будет.
Основным отличием связанных таблиц от импортированных является то, что они находятся вне файла базы данных Access, поэтому изменить их структуру невозможно. При попытке открыть такую таблицу в режиме конструктора будет выдано сообщение об этом. В остальном работа с ними ничем не отличается от работы с таблицами, которые хранятся в текущем файле базы данных. Можно изменять структуру только локальных таблиц, то есть тех, которые размещены в данном файле. Если вы изменили структуру таблицы в файле базы данных, например, изменили длину или тип поля, то, чтобы эти изменения отразились в базе данных, в которой эта таблица является внешней, необходимо обновить связь с этой таблицей. Для этого можно использовать Диспетчер связанных таблиц, который вызывается командой Сервис > Служебные программы ¥ Диспетчер связанных таблиц (Tools > Database Utilities > Linked Table Manager), либо просто удалить ее и присоединить еще раз. При этом не беспокойтесь — удаляя связанную таблицу из окна базы данных, вы просто удаляете связь с этой таблицей, сама же таблица не удаляется.
Второе, о чем нужно помнить, если вы установили связь с внешними таблицами: при перемещении этих таблиц в другую папку связь нарушается, так как при установке связи сохраняется путь к таблице. Поэтому необходимо установить связь заново. Если это одна таблица, можно просто удалить ее из окна базы данных и вновь присоединить. А если переместили файл . mdb, в котором находится много внешних таблиц, то лучше также воспользоваться Диспетчером связанных таблиц. 0 работе с Диспетчером связанных таблиц см. раздел справки Microsoft Office Access 2003 «Просмотр, обновление и изменение имени файла и пути к связанной таблице в базе данных Microsoft Access» в папке Работа с данными » Внешние данные > Импорт и связывание данных и объектов (Working with Data > External Data >• Importing and Linking Data or Objects).
Установка условия на значения записи Мы уже устанавливали условия на значение поля в таблице и проверяли, как Access реагирует на эти условия. Однако Access позволяет устанавливать условия не только на значения одного поля, но и на значение записи. Условие на значение записи проверяется при сохранении записи и обычно используется для проверки соотношений полей. Например, при вводе записи в таблицу Авторы можно проверять, что дата рождения не превышает дату смерти.
Установка условия на значения записи
1. Откройте таблицу Авторы в режиме конструктора. 2. Щелкните правой кнопкой мыши на заголовке окна конструктора. Появится контекстное меню, в котором нужно выбрать команду Свойства (Properties) (рис. 4.14). Режим хабл Счетчик Текстовый Текстовый Дата/время Текстовый Текстовый
Месторождения Образование ДагаСмерти Фотография Заметки
Сводная таблица Сводная диаграмма Схемаданных... Еырезать
Поле объекта Поле MEMO"
Копировать
npACfeHQBKa Д чинное целое >?• -i ':' '?• 'Последовательные -' . . ./ ; | Кол автора ' - : Индвшфован'ибй-Лйпе; •/';Да (Совпадения не л опускаются)
;
Дг;я ";
Рис. 4.14. Контекстное меню в режиме конструктора таблии 3. Появится диалоговое окно Свойства таблицы (Table Properties) (рис. 4.15).
«ил^тр. ;>, .... [Двто]
йысота подт
|0ем _ ;Нет"^ {С лева направо
Рис. 4.15. Диалоговое окно свойств таблииы
112
Занятие 4. Ввод и редактирование данных
Первое поле в свойствах таблицы - Описание (Description). Следующие два поля, Условие на значение (Validation Rule) и Сообщение об ошибке (Validation Text), позволяют ввести выражение и текст сообщения аналогично соответствующим свойствам поля таблицы. 4. Введите в качестве логического условия на значение следующее выражение: [ГодСмерти]>[ГодРождения], а в качестве сообщения об ошибке: Введите правильно годы рождения и смерти писателя. 5. Закройте диалоговое окно Свойства таблицы (Table Properties) и переключите таблицу в режим ввода данных, для чего нажмите первую кнопку на панели инструментов. Эта кнопка Вид (View) |J|fM позволяет быстро переключать два режима работы с таблицей. 6. Введите запись в таблицу и проверьте, как работает установленное условие. Помните, что в данном случае проверка условия выполняется при сохранении записи. 7. Закройте базу данных Библиотека.mdb. Для остальных упражнений этого занятия вам понадобится база данных из демонстрационного примера БиблиотекаДанные.[ЫЬ 1 .
Отображение подчиненных таблиц 1. Откройте базу данных БиблиотекаДанные.тЬЬ. Этот файл содержит все таблицы, которые вы создавали на предыдущих занятиях, но уже заполненные данными. Если таблица имеет подчиненные таблицы, то между областью выделения записи и первым столбцом таблицы существует узкий столбец, в котором для каждой записи отображается значок «плюс» (-»-). При наличии одной подчиненной таблицы щелчок на значке открывает часть подчиненной таблицы, содержащей только записи, связанные с записью в главной таблице. Значок «плюс» при этом меняется на «минус». При наличии нескольких подчиненных таблиц щелчок на значке «плюс» открывает диалоговое окно Вставка подтаблицы (Insert Subdatasheet) со списком подчиненных таблиц для указания имени таблицы. 2. Откройте таблицу Авторы и убедитесь, что в ней существует такой столбец. Щелкните на значке «плюс» у любой строки таблицы. Появляется вложенная таблица, в которой отображаются значения связанного поля, в данном случае — названия книг этого автора, имеющихся в библиотеке. Таким способом можно открыть подчиненные записи для любого автора (рис. 4.16). 3. Откройте таблицу Издания и щелкните на значке «плюс». Появилось диалоговое окно Вставка подтаблицы (Insert Subdatasheet) (рис. 4.17). Примеры вы можете найти на сайте издательства www.piter.com на странице, посвященной этой книге.
Отображение подчиненных таблиц
!Боэций Максим Испов :Соловьев
580; 1820.
525 Рим 662/Палестина 1879 Москва
• Школа it |Хрисрп Отобразить столбцы (Format t Unhide Columns). Появляется диалоговое окно Отображение столбцов (Unhide Columns) (рис. 4.25). Отображение стоябоОВ
ЩвЙЯШГ"* D Раздел
и Название lyii Год издания Wi Издательство [5S Место публикации ИЗ Том
f?i Издание I?! Место хранения 3?!Цена (?) Тип обложки и? Дата покупки
Рис. 4.25. Диалоговое окно отображения столбиов
8. В этом окне флажки установлены против всех столбцов, которые отображаются на экране. Установите флажок у строки Издательство и нажмите кнопку Закрыть (Close), Скрытый столбец Издательство вновь появляется на экране. 9. Закройте таблицу Издания. При этом появится диалоговое окно с вопросом, хотите ли вы сохранить изменения макета. Ответьте Нет (No). Стоит рассмотреть еще одну полезную возможность: закрепить столбцы таблицы. 1. Откройте таблицу Авторы. 2. Скройте столбец КодАвтора, который не очень интересен и заполняется автоматически. 3. Выделите два столбца: Имя и Фамилия. 4. Выберите команду Формат * Закрепить столбцы (Format > Freeze Columns), Теперь при прокрутке таблицы вправо столбцы Имя и Фамилия будут постоянно отображаться в левой части таблицы (рис. 4.26). 5. Для освобождения закрепленных столбцов необходимо выбрать команду Формат V Освободить все столбцы (Format t Unfreeze All Columns).
6. Закройте таблицу Авторы. 7. Осталось посмотреть, как настроить одновременно вид всех таблиц базы данных.
Настройка внешнего вида таблиц
; Боэций •Максим Испов : Сергей Соловьев ; Булгаков Михаил Платон ; Александр | Пушкин Юмар !Хайям ; Софокл •Франческе= Петрарка ;0риген : Дм игр и и i Лихачев ; Эрнест :Хэмингуэй ; Франциск :.Вейс Адам Мицкевич Эмануэль | Сведенборг ^Михаил Пыляев
I '*
;
Рим Палестина Москва Киев Афины Москва Нишапур Афины Ареццо Александрия Санкт-Петербург
Школа в Равенне Хрисопольский монастырь ; Московский университет, философский ф;т ; Киевский университет, медицинский факул; ;Учился у Капликла, Элихарма. Сократа I : Царскосельский Лицей ;Учился в Нишапуре, Балхе и Самарканде' ^ Учился у Лампра и Эсхила !Болонский университет : Огласительная школа в Александрии Санкт-Петербургский университет
Иверден, Швейцария Новогрудкэ, Белоруссия ^Бильненский университет Стокгольм 'нивепситет
lil
-. ::„.,-.
Рис, 4.26. Закрепление столбиов таблицы
8. Выберите команду Сервис > Параметры (Tools > Options). Появится диалоговое окно Параметры (Options). 9. Раскройте вкладку Режим таблицы (Datasheet) (рис. 4.27). На ней вы видсте параметры форматирования таблицы, которые мы рассматривали в предыдущих упражнениях, но все установленные в этом окне параметры действуют на все таблицы базы данных. 10. Закройте окно Параметры (Options) и балу данных БиблиотекаДанные.тс1Ь.
йруг«е е>м :.,..!-
j
1
междунарадные ;. . |. .Проверки ошибок • . | .- С^фографк»" ; j
C'.iu-i" ! |
-
j
-м
' "Л
I белыИ с ер-бри Li;, i и
Офориг^ен!» ёэ|Ф;й |й ^щгйафге
1
.. 1
[обо'ЧНЬЙ
Г подзда»*1^ут1=м Г" E,ypo«
"
]
10
JJ Отображать №арт-ти'н s tawwusx
J
Car.cs!
j
Рис. 4.27. Настройка параметров форматирования таблицы
,[..„.. I
1 20
Занятие 4. Ввод и редактирование данных
Подведение итогов Итак, на данном занятии вы научились: • работать с таблицами в режиме таблиц: добавлять, изменять и удалять записи; • вводить данные с помощью копирования из одной таблицы в другую; • изменять внешний вид таблиц: шрифт и оформление, фон и линии сетки; • изменять ширину столбцов и высоту строк, прятать лишние столбцы и закреплять те, которые должны отображаться всегда при прокрутке таблицы; • импортировать данные из других баз данных Access и таблиц Excel; • устанавливать связь с таблицами, расположенными в других файлах Access и на листах Excel.
ЗАНЯТИЕ 5
Поиск и сортировка данных ТЕМА ЗАНЯТИЯ На этом занятии вы узнаете: • как отсортировать таблицу по нужному столбцу; • как выполнить поиск нужной записи; • как отобрать группу записей, удовлетворяющих заданному условию: • как создать, сохранить и повторно использовать фильтр, состоящий из нескольких логических условий; • как напечатать таблицу или группу отобранных записей; • как экспортировать отобранные записи н другие файлы; • как разослать данные из таблицы Access по электронной почте.
1 22
Занятие 5. Поиск и сортировка данных
Для выполнения упражнений данного и следующего занятии вам Потребуется 1 файл БиблиотекаДанные.тсШ . Откройте его перед началом занятия.
Сортировка данных в таблицах На предыдущем занятии вы научились вводить данные в систему. Основная цель этого занятия — научиться находить интересующие данные и выводить их в нужном формате. Таблицы могут содержать огромное число записей, и хорошая СУБД должна обеспечить возможность быстро и легко найти и отобрать среди них нужные. СУБД Access является примером того, как при выполнении этих операций обеспечивается максимальное удобство для пользователей. Найти нужную запись, просматривая таблицу гораздо удобнее, когда данные в этой таблице отсортированы по нужному полю: по алфавиту в текстовых полях, по дате, если поле содержит дату, по увеличению или уменьшению числовых значений, например, в столбце Цена. Причем при различных поисках требуется, чтобы данные в таблице можно было бы легко отсортировать по нужному столбцу. Access позволяет легко это сделать. По умолчанию, когда таблица открывается в режиме таблицы, она упорядочивается по значению ключевого поля. Если ключевое поле для таблицы не определено, записи выводятся в порядке их ввода в таблицу. При необходимости отсортировать записи по значению другого поля достаточно установить курсор на любую строку соответствующего столбца и нажать одну из кнопок на панели инструментов: Сортировка по возрастанию (Sort Ascending) или Сортировка по у б ы в а н и ю (Sort Descending). Эти кнопки легко найти на панели инструментов Таблица в режиме таблицы (Table Datasheet) по характерным значкам (рис. 5.1) I |i| и [¥П
Рис. 5.1. Панель инструментов таблицы в режиме таблицы
1. Откройте таблицу Издания (самую большую в нашей базе данных) в режиме таблицы. 2. Нажмите кнопку Развернуть в заголовке окна таблицы справа, чтобы установить максимальный размер таблиц].!. По умолчанию она отсортирована по полю КодИздания (рис. 5.2). 3. Щелкните на любой строке поля Раздел и нажмите кнопку Сортировка по возрастанию (Sort A s c e n d i n g ) на панели инструментов. Таблица будет отсортирована по разделам (рис. 5.3). Примеры вы можете найти па сайте издательства www.piter.com на странице, посвященной этой книге.
Сортировка данных в таблииах
i £чд
--
+• *.
*'•;
5[ Художественная литература 6. Философия 7; Поэзия
1*;•-. v *i :
Е
8: Художественная литература 9' Драматургия 10 Художественная литература
Si!
1 *;i 1
12; Детская литература 13-Детская литература 14: Художественная литература 15' Художественная литература 1 Б: Фантастика 17:Детективы 1 18 Фантастика 19; Детская литература 20- Психология 21 История 22 История 23 Искусство
#• '*:
t *:.
i-
'
!
I 1^ Философия 2' Религия 3! Религия 4j История
t;| "
*"l f .+:.
1
'""
. _
j "Утешение философией" и другие трактаты 'Творения преподобного Максима Исповедника 'Творения преподобного Максима Исповедника ; Чтения и рассказы по истории России : Белая гвардия, Мастер и Маргарита 1 Рубай V : Медный всадник] ; Драмы ; Африка ;0 началах ; Счастливые родители :Мы ждем ребенка ; Евгений Онегин i Прощай оружие = Понедельник начинается в субботу i Современный французский детективный роман
• 22,00р. мягкая '.',
-1
Большая ко Маленькая» 1 Большая ко
СПб СПб Москва
1 1
1 Большая ко Большая ко
15,Шр. мягкая \ 8,00р. жесткая
•Ж '+'
1 999 Амфора 1992 Terra Fantas 1990 Наука
#• ;;'• .; . :*
1391 ИЗДЭТВЛЬСТЕ 1983 Правда .1999. Правда
:Москва ; Москва [Москва
1
Большая ко 2 Большая ко Маланькая t \ I Большая КО . .. . . .-.- .-.. .-. . . . . .
7,00р. -жесткая 7.00р. -жесткая 4,00р. ; жесткий ' 3,90р. : твердая * . . . . . . . .-. .-- j_^
Ш*р
I'i
|! ~
-•
1
•
.1
1J
J
*J
Рис. 5.4. Таблица Издания, отсортированная по полю Пена
Таким образом можно упорядочить записи по любому столбцу таблицы. Ограничения существуют только на тип упорядочиваемых данных — нельзя сортировать значения полей типа OLE object (объекты OLE).
Сортировка данных в таблицах
I
При сохранении таблицы сохраняется и ее порядок сортировки. По полям типа MEMO и Гиперссылка в Access 2003 сортировать можно.
1. Закройте таблицу Издания. На вопрос, хотите ли вы сохранить изменения макета, нажмите кнопку Да. При этом последний установленный вами порядок сортировки сохранится. 2. Откройте таблицу И з д а н и я снова, чтобы убедиться в этом. 3. Переключитесь в режим конструктора, нажав на панели инструментов кнопку Вид (View) j|g-:. 4. Откройте диалоговое окно Свойства т а б л и ц ы (Table Properties), выбрав в контекстном меню команду Свойства (Properties), либо в главном меню команду Вид > Свойства (View > Properties). 5. Обратите внимание на значение свойства Порядок сортировки (Order By). В нем указывается поле, по которому выполнена сортировка (Цена) и порядок сортировки: DESC (по убыванию) (рис. 5.5). т* Свойства таблицы
• Режим таблицы
Фипьтр, , < Порядок еортцрндаси . . . . . . Нздания.Ценэ DFSC Имяподтаблицы : 1|.1Щж.|; ."Таблица,Формуляры Подчиненные поля , . - , , , - , , . -КодИздания . -КодМзданяя 'Хм , i .i Ориентация .Спева н.зпраьо
Рис. 5.5. Диалоговое окно свойств таблииы
ЗАДАНИЕ Откройте таблицу Авторы и отсортируйте ее по столбцу Фамилия. Сохраните порядок сортировки при закрытии таблицы (таблицу Издания при этом можно не закрывать).
Если при работе с таблицей нужно вернуться к порядку сортировки, определенному по умолчанию, то есть по ключевому полю, достаточно выполнить команду меню Записи * Удалить фильтр (Records > Remove Filter/Sort). Если в некоторых записях таблицы значения в полях сортировки отсутствуют, то есть эти поля пусты, то при сортировке в порядке возрастания они окажутся первыми. Если в поле есть тексты на английском и русском языках, например,
1 26
Занятие 5: Поиск и сортировка данных
названия предприятий, то сначала сортируются и отображаются все английские названия, а затем все русские. Если в текстовых полях вы храните числа, не удивляйтесь, что при сортировке они будут отсортированы как строки символов, то есть 1, 11, 111,..., 2, 22, 222 и т. д. Часто про это правило забывают и думают, что программа «ошиблась». Если их действительно нужно хранить в текстовых полях, а сортировать в нормальном порядке, то есть как числа, необходимо сделать так, чтобы все строки имели одинаковое количество символов. Для этого придется приписать в начале строки незначащие нули. Если таблица содержит много записей и по какому-то полю часто делается сортировка, рекомендуется создать для этого поля индекс, тогда сортировка будет выполняться быстрее.
Поиск записи в таблицах Средства поиска данных в таблице не менее удобны, чем средства сортировки. Предположим, надо найти книгу, зная ее название. 1. Нажмите на панели инструментов кнопку Вид (View), чтобы переключиться в режим таблицы. 2. Щелкните на любой строке столбца Название. 3. Нажмите на панели инструментов кнопку Найти (Find) [4|'. Появится диалоговое окно Поиск и замена (Find and Replace) (рис. 5.6).
•\ •>,•,-
ШШЙ в ;.-
Г '.С учетом регистра Рис. 5.6. Диалоговое окно поиска и замены
4. На вкладке Поиск (Find) в поле Образец (Find what) введите значение, которое хотите найти, например, Онегин. Остальные поля на этой вкладке позволяют определить различные типы поиска. П Раскрывающийся список Поиск в (Look in) содержит два значения (рис. 5.7). Одно из них — название выбранного столбца, второе — название таблицы. При выборе первого значения поиск введенного текста бу-
Поиск записи в таблицах
1 2.7
дет выполняться только в выбранном столбце, при втором — по всей таблице.
Рис. 5.7, Поиск по выбранному полю или по таблице
П Б поле со списком Совпадение (Match) можно задать один из трех вариантов совпадения образца со значением поля — Слюбой частью поля (Any Part of Field), Поля целиком (Whole Field), С начала поля (Start of Field). D Поле со списком Просмотр (Search) позволяет задать направление поиска: Все (АИ), Вверх (Up), Вниз (Down). D По умолчанию, как видно из примера, поиск на совпадение с образцо» выполняется без учета регистра символов: если ввести Онегин, значение Онегин в таблице будет найдено. Если нужно найти именно «онегин», то установите флажок С учетом регистра (Match Case). П Флажок С учетом формата полей (Search Fields as Formatted) позволяет выполнять поиск данных в указанном формате отображения.
14;Худо>*вственная литература J 5; Художественна я литература 16'Фантастика 17:Детеиивы 1& Фантастика 19;Детская литература 20! Психология
? итт'гймШивИм
; Евгений | • Прощай орухие Понедельник начинается в субботу
19Й'Амфора
Современный французский детективный роман ^Оправдание вечности : Разговор с матерью Нравственные основы жизни
1?ЭЭ Амфора 1992 Terra Fantar 1989^ Правда 1994;Дн:(цик 1Э91:Издате.пьст; 1Э94;Юнацтва | 2000! Эксм^Прес!
ZZft
1998-Согласие 20рд.Панораиа 3
1999; Амфора
i^;jc «сбой частью поп Во
Рис. 5.8. Поиск данных по образиу в выбранном поле
5. Выберите в списке в списке Совпадение — С любой частью поля. Затем нажмите кнопку Найти далее (Find Next). Первое найденное значение, которое совпадает
1 28
Занятие 5. Поиск и сортировка данных
с образцом, выделяется и отображается на экране (рис. 5.8). В данном случае мы искали слово Онегин в любой части поля. Диалоговое окно Поиск и замена (Find and Replace) остается на экране. Это позволяет выполнить поиск следующего совпадения. 6. Введите новый образец для поиска в поле Образец (Find What): мягкая, и измените значение в поле Поиск в: Издания : Таблица. Снова нажмите кнопку Найти далее (Find Next). Найденное значение оказывается в столбце Тип обложки (рис. 5.9). Поиск ведется вправо и вниз, но если в остальных записях значение не найдено, начнется просмотр снова с первых записей, так как мы выбрали значение Все (АИ) в поле Просмотр (Search).
" •'-•
Наука Мартас Мартис Правда Мастацкая s Прогресс Невский кур Лениэдат
.Москва : Москва {Москва ; Москва Минск Ленинград • СПБ '"
Наука Амфора + Рипол Класс + Амфора + Амфора г & Terra Fanlаз *. Правда ;* * *. + t.
ИздательСТЕ Юиацтеа Эксно-Прм Золотая алл Согласие
Рис. 5.9. Поиск значения по всей таблице Из всех видов поиска самым медленным будет поиск по совпадению с любой частью поля, так как при этом не используется индекс, даже если поле, по которому выполняется поиск, проиндексировано. Очень медленным является также поиск по всем полям таблицы, если в таблице много полей и много записей.
Это же диалоговое окно можно использовать для замены данных.
Использование фильтров для поиска группы записей
1 2у
1. Раскройте вкладку Замена (Replace). Она аналогична вкладке Поиск (Find), но на ней есть дополнительное иоле З а м е н и т ь на (Replace With). 8. Введите в поле Заменить на (Replace With) строку мягкая в суперобложке и нажмите кнопку Заменить (Replace). В результате найденное значение будет заменено (рис. 5.10) и сразу же выделяется следующее значение. При необходимости заменить все вхождения найденной строки Б записях таблицы нужно нажать кнопку Заменить все (Replace All). 9. Закройте диалоговое окно Поиск и з а м е н а (Find and Replace). ЗАДАНИЕ Выполните поиск в таблице Издания по содержанию слова «Борхес» в поле Заметки.
'••* •*
;'• • ' . •••• Москва Москва Москва
"'
''
"
'-
-
: .
J
•' '
--'
Ц&иа 7,00р
; Большая ко : Большая ко !Большзя ко
•2
Москва Минск Ленинград
: Маленькая » Большая ко •Большая ко 2; Маленькая t
СПб
!
•
-*
v
| жесткая
•--
Параметры страницы (File » Page Setup). Появляется диалоговое окно Параметры страницы (Page Setup). 4. Раскройте вкладку Страница (Раде) (рис. 5.22). Установите на ней переключатель ориентации альбомная (Landscape).
1 36
Занятие 5. Поиск и сортировка данных
Правка
Зид
t
Pop*iir
Записи
Сгреиз
Склс
^правка
Фаомуляры
21.01.2004
Творения преподобного Максима Исповедника :Больман Наталья Мнхэйлоена Творения преподобного Максима Испсеедника 'Бушманоеа Ирина Владимировна Творения преподобного Максима Исповедника Игнэченко Наталия Владимировна Аф Р"ка Вольман Наталья Михайловна Аф рикэ Файзрашэнов Айрат Фэткерахманович О началах Файзрахмансв Айрат Фаткера^^анович Понедельник на чикается в с у б б о т у .Вольыэн Наталья Сергеевна Поэзия садов Вольыэн Наталья Михайловна Поэзия садов 'Файзрахмансв Айрат Фатхерахманович
Рис. 5.20. Увеличение масштаба изображения fgMicioiolt Access - [Фоциуяяры: табяила! *осыат
.
З-тки
Сервис
Окна
.
Рис. 5.21. Двухстраничное отображение таблииы в окне предварительного просмотра
Печать, экспорт и рассылка таблиц
1 37
;
Параметры страницы 1
I -
i >i . , •
книжная • ' •:
;
подача; ;]п0дача бумаги • "
'
.';
.- •
1
IBM
I
'*' *"* -
I
, •„
Рис. 5.22. Настройка ориентации страницы 5. На вкладке Поля (Margins) уменьшите значения левого и правого полей. Уста новитс их равными 5 мм (рис. 5.23) и нажмите кнопку ОК.
йи*нее; И 25,64
Отмена
Рис. 5.23. Настройка полей страницы 6. Нажмите на панели инструментов кнопку Одна страница (One Page) ;©;. 7. Нажмите на панели инструментов кнопку Печать (Print) [Щ!. Таблица будет выведена на текущий принтер.
1 38
Занятие 5. Поиск и сортировка данных
Подготовленную к печати таблицу можно экспортировать в документ Word и в таблицу Excel. Проще всего это сделать с помощью специальной кнопки Связи с Office (OfficeLinks) на панели инструментов (рис. 5.24). Стрелка справа на этой кнопке раскрывает список из трех команд: _ ff X
£лняние В Microsoft Office Woid 3 И ; Публикация в Microsoft OlliceWord Я Ms Анализа MiciosoftOfiiceExcel
Рис. 5.24. Кнопка связи с Office
• Слияние с MS Word (Merge It With MS Word) — обеспечивает слияние данных из таблицы Access с документом Word. • Публикация в MS Word (Publish It With MS Word) — преобразует таблицу Access в документ Word. • Анализ в MS Excel (Analyze It With MS Excel) — преобразует таблицу Access в рабочий лист Excel. \. Выберите команду Публикация в MS Word (Publish It With MS Word). Таблица Access преобразуется в таблицу Word и вставляется в документ формата RTF. Документ открывается и выводится на экран (рис, 5.25).
Т10(мши«лги™ю(1й«и-»л»см«а-И«10>м>««111 ! Во лиян-Наталья (Лизйво)мао ТиНииия notrxJoSwro fc«iсим-Monomwtrin HmjutHio Ншлпя-Влмичиронис А+ряно Вольна» Напльял*«аЛ«01н1п «атвппнoi-йрЯ! »»tiера«мамо Л. '.л I ' j .,-'.' ."i,iii.u.;; - ixiOl'l '..'.nii! i;
Назад
Рис. 6,4. Второе диалоговое окно мастера простых запросов 8. В следующем диалоговом окне мастера (рис. 6.5) в поле Задайте имя запроса (What title do you want to your query?) введите имя создаваемого запроса Издания&Авторы. 9. Оставьте переключатель в состоянии но умолчанию Дальнейшие действия (Do you want to open the query or modify the query's design) и нажмите кнопку Готово (Finish).
Создание простого запроса с помошью мастера
1 4У
Задайте -и*йзапрет; -'ИэдамияйЛвторы!
'•Указаны всё сведения, неоёход"даые дня с запроса с гюмощьвэ пастера. ..
'.
:
jtgg
Рис, 6.5. Третье диалоговое окно мастера простых запросов
На экране появится таблица, в которой отображаются выбранные нами поля из таблиц Авторы и И з д а н и я (рис. 6.6). Эта таблица называется результирующим набором запроса. Обратите внимание, что в заголовке окна выводится название запроса и фраза запрос на выборку (select query). Ш ИзданияЬАвторы : запрос на выборкч
";' - ^JJSJL»
. - Название' { Год издания 1 Издзв _^ ^.^".'Ии,'.' 1ЭЭЗ;Мартие^;; Максим Испов Творения преподобного Максима Исповедника : 1993-Мэрти. . Максим Испов Творения преподобного Максима Исповедника 1394 ДИ-Д.-К : '< Борхес 'Оправдание вечности Хорхе Луис 1990. Наука f \ "Утешение философией и другие трактаты Боэций 1988.Маста['; ' Белая гвардия, Мастер и Маргарита Михаил Булгаков 1994 Юнацт Нравственные основы я ;изни Франциск Вейс 1999.РИПОЛ Мы ждем ребенка Ольга Еремеева 2000;Панор; i Избранная поэзия Мицкевич Адам 1999;Рипол Андрей Митрошенков Мы ждем ребенка 2000; Амфор 0 началах Ориген 19921 Hay ка Франческо Африка Петрарка .1989:Прогрб J: Федр Платон '1999;Амфор.Г Евгений Онегин Александр Пушкин 14R7 Прнич,13 Д ЯРУ с аи п. пк. ...... -Пуи|шч-..^ , ЬЙР Л HklU СТЯНИ'.-"!,' • - - :- , -f^ if • 1] J 1м«ъ, м] т 1 Ч»1 - 1 \ :
Имя
I
Рис. 6.6. Запрос в режиме таблииы
С результирующим набором запроса (далее будем говорить просто «с зап' юсом*) работают так же, как с обычной таблицей в режиме таблицы, то смя Фамилия j*J
КодИзда(И) О5 ^-'~'
КодРазделс •>
1
<JJ i
,,..:.,, 1
•
.
.:
' ,
Рис. 6.9. Окно конструктора запросов
6. Чтобы добавить поле в запрос, необходимо в таблице-источнике в верхней части окна конструктора найти нужное поле и дважды щелкнуть на нем. При этом в бланке запроса появится столбец, соответствующий выбранному полю. Добавьте в запрос поля Имя и Фамилия из таблицы Авторы и Название, КодМеста и Заметки из таблицы Издания (рис. 6.10).
/"*"*
I КодАетора-^
КодЛвтора КодИздания
Имя Фамилия Jjrj
ТипИздани;.^,. Замет™ :*1,
Имя
Фамилия
Авторы
Авторы
0
Название Издания
КодМеста
Заметки
Издания
Издания ""
—
•
0
В
т\ ,
И
0 S8
щ
Рис. 6.10. Определение полей запроса
7. Сформировав столбцы запроса, можно определить порядок сортировки. Для этого используется строка бланка С о р т и р о в к а (Sort). Порядок сортировки выбирается с помощью поля со списком значений: По возрастанию (Ascending), По убыванию (Descending) и отсутствует (not sorted). По умолчанию во всех полях запроса устанавливается значение отсутствует (not sorted). Щелкните
Выполнение запроса
1.53
на строке Сортировка (Sort) столбца Название и выберите в списке значение По возрастанию (Ascending). 8. В строке У с л о в и я отбора (Criteria) можно определить критерии, по которым будут отбираться записи в запросе. Например, вы хотели бы посмотреть, какие книги Дмитрия Сергеевича Лихачева есть в библиотеке. Для этого нужно ввести в строку Условия отбора (Criteria) столбца Фамилия слово Лихачев (рис. .6.11). ^ Запрос! : запрос на выборку
*
>»'
Г ?ЩнШ
> ! П'^^,*';:§^| " | ^^t^^fll
/ ДатаПокупьШ: -«-. f > X КодАвтора J— ^— ~~— КодАвтара ,; ; §..4ncnoCTpah : Имя 1 КодИздаьмя ^^ Г ! ТипИэдани;>ц 1 .* .?' .;. Фамилия j|*J _1,.1МЛИЛ J^j 1
••ч
iLJ
•1 Поле; Имя ;м i i iisiM .••' Автора COptk^Ji Виа:
В
•'..-ч, ",! На -.'V rglHJ
/словие етборз: ИЛИ!
Фамилия Авторы
название Издания по возрастанию
0
КодМеста Издания
0
Заметки ^ Издания f
Е
0
пиизчев|
^
11
'
*н
Рис. 6.11. Установка порядка сортировки и критериев выборки в запросе
Знакомство с конструктором запросов мы продолжим в разделе о редактировании запроса. А пока выполним созданный нами запрос.
Выполнение запроса Чтобы выполнить запрос и увидеть его результаты, можно воспользоваться одной из двух кнопок панели инструментов: Вид (View)
и Запуск (Run) * -j.
При выполнении запроса на выборку обе эти кнопки эквивалентны. Нажмите кнопку Запуск ( R u n ) . Результат выполнения запроса представлен па рис. 6.12. Б базе данных отобраны две записи.
[Дмитрий Дмитрий
•Лихачев ^Лихачев
Поэзия садов 'Большая комната Раздумья о России '. Большая комната
.К семантике садов>парковых спгей
Рис. 6.12. Результат выполнения запроса
1 54
Занятие 6. Создание и выполнение запросов на выборку
Убедившись в том, что запрос создан правильно, его можно сохранить. Закройте окно запроса, ответив на вопрос о сохранении макета запроса Да (Yes). После этого будет выведено стандартное диалоговое окно, в которое нужно ввести имя запроса К н и г и по авторам и нажать кнопку ОК. В списке запросов появился еще один запрос. Обратите внимание на значок справа от имени запроса: этот значок обозначает запрос на выборку. Па следующем занятии мы познакомимся с другими видами запросов. Теперь для повторения запроса достаточно дважды щелкнуть на имени этого запроса или выделить имя запроса в списке и нажать кнопку О т к р ы т ь (Open) на панели инструментов окна базы данных (рис. 6.13). рБиблиотекаДанные: база данный (формат Access 2QSOJ
:
'
'."Ч • f!
J
Таблицы • Запросы •
Сознание запроса в режиме конструктора Создание запроса с помощью мастера Изйания&Авторы
у Образец Фильтра по Форме
-
Рис. 6.13. Окно базы данных со списком запросов ЗАДАНИЕ Создайте с помощью конструктора запрос, который позволит отобрать все книги, которые были выданы читателям в сентябре 2003 г.
Редактирование запроса Режим конструктора предназначен не только для создания, но и для изменения запросов. Выделите запрос К н и г и по авторам и нажмите кнопку Конструктор (Design) на панели инструментов окна базы данных. Вы снова увидите бланк запроса, который вы составляли. Обратите внимание, что условие отбора (слово Л и х а ч е в ) заключено в кавычки. Это конструктор сам подставил необходимые для выполнения запроса кавычки вокруг символьной строки.
Добавление таблицы в запрос Добавим в запрос еще одно поле -- Раздел. Для этого нам придется добавить в запрос таблицу Разделы.
Редактирование запроса
1 ;>5
1. Нажмите па панели инструментов кнопку Отобразить таблицу (Show Table) [р|,:1 Появится диалоговое окно Добавление таблицы (Show Table). 2. Выделите в списке таблицу Разделы и нажмите кнопку Д о б а в и т ь (Add). 3. Нажмите кнопку Закрыть (Close) в окне Д о б а в л е н и е т а б л и ц ы (Show Table}В верхнем поле окна конструктора появится таблица Разделы, причем сразу показывается связь этой таблицы с таблицей И з д а н и я . Если бы вы не установили сразу все необходимые связи в окне Схема данных (Relationships), связи между таблицами Издания и Разделы пришлось бы установить е окне конструктора. Сделать это можно, однако установленная таким образом связь действует только в этом запросе, в другом запросе связь пришлось бы устанавливать заново. Поэтому рекомендую не пропускать этап установки связей между таблицам и при раз работке структуры базы данных. Тогда запросы потом строить будет легче.
Добавление полей в бланк запроса 1. Выделите поле Раздел в таблице Разделы. 2. Перетащите это поле мышью в бланк запроса на поле Н а з в а н и е . Новый столбец окажется вставленным перед столбцом Н а з в а н и е . 3. Удалите из строки У с л о в и я з а п р о с а (Criteria) ранее введенное условие Л и хачев. 4. Нажмите кнопку Вид (View) Щ!^. Появится таблица, аналогичная представленной на рис. 6.14. " •?
Р Книги по авторам : запрос на выборку
' •-•'
Щ
•
Франческо Михаил Даниил
Боэций Петрарка 'Булгаков • Гранин
Александр
Софокл Пушкин
Адам Александр Андрей Ольга Франциск
Мицкевич Пушкин ;Митрошенкое ; Еремеева : Вейс ; 0риген Сведенборг Борхес Стругацкий
Эмануэль Хорхе Луис Аркадий
| Ш ','.'!
1
'
"- :-
-: ШтШ . • ...
. '
: Философия '"/течение философией" и друг Большая комната Художественная литература ^Африка Большая комната Художественная литература | Белая гвардия, Мастер и Марг; Большая комната История ; Вечера с Петром Великим Маленькая комнат Драматургия i Драмы Ма/енькая комнат Художественная литература ;Евгений Онегин •чая комната
Поэзия Художественная литература
Избранная гоэз^.я ! Медный всадник
Детская литература Детская литература Психология
! Мы ждем ребенка ! Мы ждем ребенка 1 Нравственные основы жизни |0 началах
'Философия • Философия 'Фантастика Фантастика
i ": -'-'1 :\, . .
?? i'.'J J §'• £_ *
омнат -
-эта
Бол=шая комната ;-|. Большая комната |0 небесах, о мире духов и об ; Бшыиая комната : ;0прэвдание вечности Большая комната :: :Понедельн,1к начинается в с > с Бол=шая комната -Ш
;
Рис. 6.14. Запрос К н и г и по авторам, раскрытый в режиме таблицы 5. Нажмите кнопку Вид (View), чтобы вернуться в режим конструктора
1 56
Занятие 6. Создание и выполнение запросов на выборку
Перемещение столбцов в бланке запроса Можно выполнять сортировку в запросе не по одному полю, а по нескольким, например, сначала отсортировать книги по разделам, а в разделах по фамилии авторов. Access выполняет сортировку в порядке расположения полей слева направо. Поэтому столбец Раздел должен быть левее в бланке, чем столбец Фамил и я . Итак, нам предстоит поменять порядок полей в запросе. Первым поставим столбец Раздел, затем Ф а м и л и я , И м я , Название и т. д. 1. Подведите указатель к верхней границе столбца Раздел так, чтобы он превратился в вертикальную стрелку, и щелкните. Столбец будет выделен. 2. Установив курсор на верхнюю границу выделенного столбца, перетащите столбец к левой границе бланка запроса. Столбец станет первым (рис. 6.15), $& Книги па авторам : запрос на выборку
ч
_..J КодАвтсра —J Имя Фамилия
КодРаэдела Раздел
КодАвтора КодИздэмя
4
Заметки
11 .. • Издания по возрастанию
Фамилия
• • - -. .
.
Авторе
:•
Издания
"
•••
Рис. 6.15. Перемещение столбца Раздел 0 Книги по авторам : запрос нэ выборку
КодАвтор.1
КодАвтора
ДатаПокупьй! ЧислоСтрЭ!Тип Из дани;- =j Заметки
щ
Рис. 6.16. Перемещение столбиа Имя
КодРаздепа Раздел
т
Редактирование запроса
1 57
3. Аналогично выделите столбец Имя и перетащите его вправо за столбец Фамил и я (отпустите кнопку мыши, когда черная жирная линия окажется между столбцами Ф а м и л и я и Название) (рис. 6.1G). 4. В ячейке Сортировка (Sort) столбца Раздел выберите порядок сортировки По возрастанию (Ascending). 5. Аналогично в ячейке Сортировка (Sort) столбца Фамилия выберите порядок сортировки По в о з р а с т а н и ю (Ascending). 6. В ячейке Сортировка (Sort) столбца Н а з в а н и е выберите порядок сортировки отсутствует (not-sorted). 7. Переключитесь в режим таблицы, нажав кнопку Вид (View). Записи в результирующей таблице отсортированы по разделу, а в разделе по авторам (рис. 6.17). 0
". :-
P Аб-пматическое о^ъедирекие. - • -
• ,> i
. • •
- • llahoma
Рис. 6.23. Установка параметров режима конструктора таблии и запросов
Использование выражении в запросах
1 61
Размер шрифта изменится только после того, как вы закроете и вновь откроете запрос.
ЗАДАНИЕ Откройте еще раз запрос Книги по авторам в режиме конструктора и отберите все книги по истории, которые находятся в маленькой комнате.
Исключение столбцов из запроса Если вы хотите временно исключить какой-нибудь столбец из результата запроса, снимите флажок в строке Вывод на экран (Show) этого столбца. 1. Откройте запрос Книги по авторам в режиме конструктора и снимите флажки в столбцах Место хранения и Заметки (рис. 6.24).
1 *
?»
КодАвгора~-
ч /~ _;
Иия оамипия $
- ..-- КодАшора КидИздания
.
-^
ДатаПокуш-ЛЗ ЧиспоСтра!- . ТипИздани; .4 | Замет км j^J
— КодРаздаги
Ш
• . ^Щй KJ л-*л-*>
или;
Фамилия Авторы по возрастанию 0
Название Издания
Имя Авторы
Е
КодМеста Издания
|Эа 1етки Из анил
0
т^ ?~~
D " :Lik
Ф^стианс
^
Рис. 6.24. Исключение столбиов из результирующего набора запроса
2. Переключитесь в режим таблицы, чтобы увидеть результат выполнения запроса. 3. Вновь переключитесь в режим конструктора и установите флажки. Если вы сохраните запрос, в бланке которого у некоторых столбцов флажок Вывод на экран (Show) будет сброшен, эти поля будут автоматически удалены из запроса. Поэтому, если вы исключали их только временно, перед сохранением запроса флажки следует вновь установить.
Использование выражений в запросах При создании запроса, как, впрочем, и других объектов Access, часто используются выражения. Выражением является любая комбинация операторов, кон 6 Зак. 680
1 62
Занятие 6. Создание и выполнение запросов на выборку
стант, значений текстовых констант, имен полей, элементов управления или свойств, результатом вычисления которой может быть конкретное значение. Например, когда мы определяли условия отбора записей в запросе, мы создали выражение «История», являющееся строковой константой. В этом случае проверяется точное совпадение значения поля с указанной константой. Однако, можно было использовать оператор отрицания Not и написать Not("HcropHfl"), тогда, наоборот, были бы отобраны все записи, у которых значение поля Раздел не совпадает с «История». 1 Выражение Like "'христиане* ' содержит оператор Like — оператор сравнения с образцом. Он сравнивает значение поля, по которому ведется отбор записей, с образцом — текстовой строкой, указанной в кавычках. Символы звездочка (*) слева и справа обозначают любое количество символов слева и справа от указанной строки. Оператор Like определяет наличие указанной строки "христиане" в любом месте поля — в начале, конце или в середине, и возвращает значение Истина (True), если находит эту строку, и Ложь (False), если не находит. Значение Истина (True) приводит к включению записи в результирующий набор, а значение Л о ж ь (False) — нет. Если бы мы включили в выражение строку "христиане*", то эта строка искалась бы только в начале поля, а строка "*христианс" искалась бы только в конце поля. Другим часто используемым оператором сравнения с образцом является оператор Between ... And. Его обычно используют при отборе записей по полю типа Date/Time, чтобы указать диапазон отбора дат. Например, выражение
Between #01.01.031 And #01.02.03# задает диапазон дат между 1 января 2003 года и 1 февраля 2003 года. В этом выражении используются константы даты/времени, которые в Access выделяются символами #. Сама дата должна указываться в формате, определенном в региональных настройках Windows на вашем компьютере. Причем символы # при вводе выражения можно не вводить. Если дата введена правильно, Access добавит их автоматически. Даты, указанные в выражении (концы диапазона), включаются в выборку, то есть это выражение эквивалентно следующему: >= (больше или равно) #01.01.03# And Панель управления). На панели управления дважды щелкните на ярлыке Язык и региональные стандарты. В появившемся диалоговом окне Язык и региональные стандарты откройте вкладку Дата.
Еще один вид оператора сравнения In позволяет задать список значений. При отборе записей проверяется, совпадает ли значение поля с одним из элементов списка. Если совпадает, возвращается значение Истина (True), и запись включается в результирующий набор, в противном случае — не включается. Например, нужно отобрать книги нескольких авторов. Это можно сделать двумя способами. Один мы уже знаем. Все фамилии нужно перечислить в столбце Фамилия в строках Условия отбора (Criteria). В каждой строке должно быть по одной
Использование выражений в запросах
1 63
фамилии. Тогда будут отобраны записи, удовлетворяющие условию! ИЛИ условию2 ИЛИ условиюЗ и т. д. А можно написать выражение In ("Пушкин";
"Петрарка"; "Мицкевич")
1. Удалите все установленные раньше условия в запросе (клавишей Delete) и введите в столбец Фамилия это выражение (рис. 6.25). 2. Переключитесь в режим таблицы. Результат выполнения запроса представлен на рис. 6.26. 3. Закройте запрос, сохранив его. |S Книги по «авторам : запрос на выборку
м tl КодАвтара .2J — -~-...ч. -'
Имя Фамилия |Vj:
КодАвтора
щ
шншшш •
И
:i
- ..
Я!
ДатаПокупк±! ЧислоСтр» ;
,,.,
• •i
• 1 КодРаодела -. Раздел
ш
JLLJ" ГЪП&
. ср ровка
Раздел Разделы по возрастанию
.ч. .-я . ; •.' г. - .- .V •-• ' , - • • : ! г 1.I1!. ' i
Автоды по возрастанию
И Ус товие 3tD3pa ":. -
- . . . : , . , . , • .... ИМЯ
Авторы
В
Название Издания
Я
, »Ко,1^ Из,"/
Б]
;1п ("Пушкш";"Петрарна";"МицкбЕ1Ич")
- ИЛИ
"Т
Рис. 6.25. Использование оператора сравнения In (р Книги по авторам : запрос па еыборм Поэзия
Мицкееич Лдам
Избранная поэзия
Художественная литература Петрарка Художественная литература Пушкин
Франческо Африка Александр Медный всадник
Художественная литература Пушкин
Александр
Евгений Онегин
Рис. 6.26. Выборка записей по совпадению с элементом списка
В табл. 6.1 представлены некоторые другие операторы, которые могут быть использованы в условиях отбора запроса. Таблица 6.1. Примеры часто используемых операторов и функций Оператор
Пример
Описание
Is Null
Is Null позволяет выбрать записи, не имеющие значения в данном поле. Is Not Null позволяет выбрать записи, имеющие значение в данном поле (любое) — •— • • ___ продолжение
Is Not Null
1 64
Занятие 6. Создание и выполнение запросов из выборку
Таблица 6.1 (продолжение) Пример
Описание
= 10
Значение раино 10 (обычно этот оператор опускают, так как он используется по умолчанию)
15
Значение не равно 15
,«5.08.99,
Значение в моле типа дата больше 15 августа 1999 года
>=
>= 18
Значение больше или равно 18
= Date()
Функция, которая возвращает текущую дату
DateDiff()
Оасе01'гг("у";[ДатаВыда чи]; [ДатаВозврата]} >
Функция, вычисляющая промежуток между двумя датами
Trim{)
Тпт([Название])
Функция возвращает строку, которая является ее аргументом, осз начальных и заключительных пробелов
lif ([ДатаВыдачи]Date();0;l)
Функция ветвления. Имеет три аргумента. Первый аргумент — выражение, значение которого проверяется, и если это значение Истина (True), функция возвращает значение второго аргумента (в примере 0), если Л о ж ь (False), то возвращается значение третьего аргумента (и примере 1). Второй и третий аргументы функции также могут быть сложными выражениями
Оператор
= о
15
Способы объединения таблии в запросах
1 65
Квадратные скобки используются для обозначения имен полей, таблиц и других объектов Access. Обязательным употребление скобок является только для имен, состоящих из нескольких слов, то есть включающих пробелы, однако при обработке введенного вами условия Access автоматически добавляет скобки для всех имен объектов. Для получения более подробной информации об использовании выражений в запросах воспользуйтесь справочной системой Access. Для этого выберите команду Справка > Справка: Microsoft Access (Help > Microsoft Access Help). В поле Искать (Search) введите строку «выражения» и нажмите кнопку со стрелкой справа. Помните, что запрос в базе данных Access во многих случаях аналогичен самой таблице, то есть можно рассматривать результат выполнения запроса как виртуальную таблицу,, и к н е й применимы все действия, касающиеся вывода на печать, экспорта, копирования, рассылки, которые мы рассматривали применительно к обычной таблице. ЗАДАНИЕ Создайте запрос, который позволил бы отобрать всех читателей, которые записались 8 библиотеку в октябре. (Они не должны и меть записи в формуляре с датой выдачи меньше 1.10.2003.)
Способы объединения таблиц в запросах Чаще всего запросы па выборку используются, чтобы объединить в одной таблице на экране данные, которые реально размещаются в разных таблицах базы данных. Источниками данных в таких запросах являются связанные таблицы. Как связываются таблицы в базе данных, вы уже знаете (см. занятие 3). Когда запрос создается на базе нескольких таблиц, говорят, что эти таблицы объединяются в запросе. При этом можно использовать несколько видов объединений. Наиболее распространенным является внутреннее объединение. При этом в результирующий набор попадают те записи из двух связанных таблиц, у которых связанные поля совпадают. Если две таблицы связаны отношением «один-комногим», то в результат запроса включаются все записи из главной таблицы (таблицы «один»), для которых имеются соответствующие записи в подчиненной таблице (таблице «многие»). Если запись в главной таблице не имеет соответствующих записей в подчиненной таблице, эта запись в результирующее множество не включается. Такое объединение таблиц в запросе Access создает автоматически, когда выполняется одно из следующих условий; • соединение «один-ко-многим» было явно задано в окне Схема д а н н ы х (Relationships); • в таблицах имеются поля с одинаковыми именами и согласованными типами, причем одно из полей является ключевым.
1 66
Занятие 6. Создание и выполнение запросов на выборку
Согласованные типы — в большинстве случаев означают одинаковые типы. Исключением является поле типа Счетчик (AutoNumber), которое может иметь размер Длинное целое (Long Integer) и связываться должно с числовыми полями, имеющими тот же размер Long Integer. Именно такое объединение таблиц использовалось в тех запросах, которые мы создавали до сих пор. Чтобы понять, как работает внутреннее объединение, предлагается сделать такое упражнение. 1. Откройте таблицу Издания в режиме таблицы и внесите в нее книгу, которая не имеет автора, например, Русские былины. Обязательно введите раздел Художественная литература.
г=Ч/ 2. 3. 4. 5. 6.
После ввода всех полей не забудьте перейти на следующую запись, чтобы введенные да иные сохранились в таблице. Убедитесь, что значок с карандашиком исчез из области выделения введенной записи.
Закройте таблицу И з д а н и я . Откройте запрос К н и г и по авторам в режиме конструктора. Удалите все введенные ранее условия выборки. Выполните запрос, переключившись в режим таблицы. Щелкните на любой записи в столбце Название и нажмите на панели инструментов кнопку Н а й т и (Find) [0|:.
7. В диалоговом окне Поиск и замена (Find and Replace) в поле Образец (Find What) введите слово былины (рис. 6.27). 8. В поле Совпадение (Match) установите значение С любой частью поля (Any Part of Field).
i.„..
Отибна
Г с учетом 0ep*rpa.- P1
Рис. 6.27. Диалоговое окно поиска и замены 9. Нажмите кнопку Найти далее (Find Next). Вы получите сообщение о том, что запись не найдена. Действительно, новая запись в таблице И з д а н и я не имеет связанных записей в подчиненной таблице А в т о р И з д а н и е , а также записей в таблице Авторы. Поэтому
Способы объединения таблиц, в запросах
1 67
она не попадает в результат запроса. Таким образом, наш запрос построен не совсем корректно. Именно эта ошибка может во многих случаях быть причиной исчезновения записей в ваших таблицах. Чтобы устранить ошибку, нужно использовать так называемое внешнее объединение. Внешние объединения бывают левыми или правыми. Если таблицы в запросе объединяются левым внешним объединением (в инструкции SQL оно обозначается LEFT JOIN), то выводятся все записи таблицы «один» с уникальным значением первичного ключа вне зависимости от того, имеются ли соответствующие им записи в таблице «многие». В тех строках результирующей таблицы, где отсутствуют записи в подчиненной таблице, соответствующие поля будут пустыми. Если же таблицы в запросе объединены правым внешним объединением (в инструкции SQL RIGHT JOIN), то выводятся все записи таблицы «многие» вне зависимости от того, имеются ли соответствующие им записи в таблице «один». Теперь мы установим внешнее объединение между таблицами в запросе Книг/i по авторам. 1. Переключитесь в режим конструктора. 2. Выделите связь между таблицами И з д а н и я и А в т о р И з д а н и е и затем дважды щелкните на ней. 3. Появится диалоговое окно Параметры объединения (Join Properties) (рис. 6.28). Переключатель 1 задает обычное внутреннее объединение, переключатель 2 — левое внешнее объединение, а переключатель 3 — правое внешнее объединение. Параметры объединения Лееая табгаща '|из дэния ШдКодИэдания
Плавая тэбгйи& V] |ДвторИздание "j ]Г^
ЫЛ Рис. 6.29. Отображение лсаого внешнего объединения в запросе
торИздание. Только теперь нужно, чтобы в запрос были включены вес записи из таблицы АвторИздание («многие*) и только те записи из таблицы Авторы, которые имеют совпадающие значения в связанных полях. Это будет правое внешнее соединение. 5. Щелкните дважды на линии, соединяющей таблицы Авторы и АвторИздание, открывая тем самым диалоговое окно Параметры объединения (Join Properties). 6. Выберите переключатель 3 и нажмите кнопку ОК. Стрелочка теперь будет указывать в сторону таблицы на стороне «один» (Авторы).
Окончательный вид запроса должен быть таким, как представлен на рис. 6.30. 7. Выполните запрос и убедитесь, что книга «Русские былины» появилась в результирующем наборе запроса. & Книги по авторам: запрос на выборки
КпдАвтсра—J Имя Фамилия :*|
. .
Раздел Разделы по возрастанию 0
Условие собора; ч...
лП
Фа ми пия Авторы по возрастанию
0
± —f
Название Издания
Имя
Авторы 0
0
а %. „г.Г
Рис. 6.30. Отображение внешнего объединения между таблииами, связанными косвенно
Использование вычисляемых полей
1 69
Использование вычисляемых полей Кроме полей таблиц-источников данных, в запрос могут включаться поля, значения которых являются результатом вычисления выражения. Такие поля называются вычисляемыми. Как правило, эти поля отображают данные, рассчитанные на основе значений других полей этой же строки запроса. Простым примером вычисляемого ноля может быть поле Автор и запросе К н и г и по авторам. Вместо двух полей Ф а м и л и я и Имя, можно включить в запрос одно поле Автор, значение которого должно содержать и фамилию, и имя автора. Чтобы создать такое поле; 1. Переключитесь в режим конструктора. 2. Выделите столбец Ф а м и л и я , щелкнув на области выделения в верхней частя столбца (серый узкий прямоугольник). 3. Нажмите клавишу Ins. Перед столбцом Ф а м и л и я будет вставлен пустой столбец. 4. Установите курсор в первую строку нового столбца и нажмите комбинацию клавиш SMft+F2. Появится диалоговое окно Область ввода (Zoom) (рис. 6.31). Вы можете настроить шрифт и этом окне, нажав кнопку Шрифт (Font).
Автор: [Фамилия] а " " S [Имя]
••
Рис. 6.31. Диалоговое окно области ввода Окно Область ввода (Zoom) удобно использовать для ввода и просмотра длинных выражений, которые не помещаются целиком в отведенные для них поля. Поэтому рекомендую запомнить сочетание клавиш Shift4-F2. Вы можете использовать его для просмотра полей, содержащих достаточно длинный текст (таких как Заметки). 5. Введите в область ввода строку Автор: [Фамилия] & " " & [Имя]. Первая часть до двоеточия будет именем нового поля. Вторая часть - выражение, значением которого является слияние нолей Фамилия и Имя. Между ними нужно обязательно вставить пробел, иначе при выводе на экран имя
I /0
Занятие 6. Создание и выполнение запросов на выборку
и фамилия автора будут отображаться слитно. Квадратные скобки вокруг имен полей в данном случае можно и не вводить — Access автоматически добавит их позже. 6. Нажмите кнопку ОК. Строка будет вставлена в бланк запроса. Нажмите клавишу -I. При попытке завершить ввод в данную ячейку бланка запроса Access проверяет введенное выражение и добавляет квадратные скобки вокруг имен полей. Если вы ошибетесь в написании имени поля и Access не обнаружит такого поля ни водной из таблиц запроса, скобки не добавляются и выдается сообщение об ошибке. Если указанное в выражении имя поля встречается в нескольких таблицах запроса, также будет выдано сообщение об ошибке, так как Access не может определить, в какой таблице брать значение поля для вычисления выражения. Тогда нужно точно указать имя таблицы, например, Авторы.Имя.
7. Установите в столбце Автор сортировку по возрастанию. 8. Выделите столбцы Фамилия и Имя и удалите их клавишей Delete. Запрос должен выглядеть, как на рис. 6.32.
ДатаПокупкЛ КодАвтира
Имя Фамилия
j|J
КодАвтора
ЧислоСтра- .
КодИздам-ш
Тип Из дани :^> Заметки
КодРаздела Раздел
!
1 Раздел
АВТСр: [Фамилия] 8. " " & [Имя]
Разделы по возрастанию
••[ 1
КодМеста Издания
% Заметки Издания
по возраста ни >о
В
0 ИЛИ'
название Издания
|
И
• -
а
0
•" " •
*g
1
з»;
>Г~
Рис. 6.32. Вычисляемое поле в запросе
9. Переключитесь в режим таблицы. Она будет выглядеть как на рис. 6.33. 10. Сохраните запрос и закройте его. Вычисляемые поля часто используются для вычислений с датами. Создадим запрос, который покажет, сколько дней держат на руках книги наши читатели, и найдем тех, кто задерживает их больше месяца. Построим этот запрос немного иначе, чем делали до сих пор (Access позволяет делать это несколькими способами). 1. Нам потребуется только одна таблица — Ф о р м у л я р ы . Поэтому раскройте список таблиц и выделите в нем таблицу Формуляры.
Использование вычисляемых полей Sj3 Книги по автора» : запрос на выборку
|ЕЭ 'ji
Детективы Детская литература Детская литература Детская литература Детская литература Драматургия Искусство
1
СТ
ИЯ
И .°Р.. . История История Поэзия Поэзия Психология Религия Религия Фантастика Фантастика
• .Еремеееа Ольга • Митрошенков Андрей .Спок Бенджамин : Софокл Лихачев Дмитрий ан
.1ГР...и)1. Даним ;Лихачев Дмитрий -Соловьев Сергей Мицкевич Адам ям :.Хай Омар .Бейс Франциск Максим Исповедник Максим Исповедник Борхес Хорхе Луис 'Стругацкий Аркадий
;
1/1
'I
?;i,Mfr-.' I
Современный французский детективный роман Большая коми; .Счастливые родители Большая коми, Мы ждем ребенка Большая комн. Мы ждем ребенка Большая коми; Разговор с матерью Большая комм, Драмы Маленькая кол/ оэзня П садов ;Большая коми; Вечера с Петром Великим Раздумья о России
Маленькая KOW Большая коми;
Чтения и рассказы по истории России -Маленькая ком Избранная поэзия Большая коми; Рубаи Маленькая кои -Нравственные основы жизни Большая коми, Творения преподобного Максима Исповедник; большая коми: Творения преподобного Максима Исповедника Большая коми; Оправдание вечности Большая коын: Понедельник начинается в субботу Большая коми,
Рис. 6.33. Отображение вычисляемого столбиа
2. Щелкните на стрелке кнопки Новый объект (New Object) панели инструментов и выберите в списке пункт Запрос (Query). Появится диалоговое окно Новый запрос (New Query) (рис. 6.34).
Простой запрос Перекрестный 'этрис Повтостающиеся записи Записи 6в5 подчиненных -
Рис. 6.34. Диалоговое окно нового запроса
3. Выделите в списке элемент Конструктор (Design V i e w ) и нажмите кнопку ОК. Появится окно конструктора запросов, в верхнем поле которого уже находится таблица Формуляры. 4. Перенесите в бланк запроса поля КодЧитателя, ДатаПолученил, ДатаВозвратаФакт (вспомните, что для этого достаточно дважды щелкнуть на соответствующем поле таблицы). Запрос должен выглядеть как на рис. 6.35. Такой способ создания запроса удобен, когда источником данных является одна таблица.
Теперь нужно создать вычисляемое поле, в котором будет отображаться количество дней, которое читатели держали книги. Для создания выражения воспользуемся построителем выражений.
1 72
Занятие 6. Создание и выполнение запросов на выборку
5. Сначала сохраните запрос, нажав на панели инструментов кнопку Сохранить (Save) g]. В окне Сохранение (Save As) ниедите имя запроса Задерживающие книги.
щ
S§* Запрос! ; запрос на выборкц '-
;
|
L?' iiiiii»lMi.»(LMLMViiiJMjij ДатаПо лучения
!Ш
ДатаВоэврата ДатаВозвратаФакт ?•••* Примечание
КодЧмтагеля
ДатаПо лучения
ДатаВозвратаФ.
Формуляры
Фоомупяры
Формуляры
0
:
s.-ЩШШ!
£i
а
0
0
Усгшме г т fro pa;
: ":
1 !
j
¥
Рис, 6.35. Создание запроса
6. Щелкните в бланке запроса на первой строке первого свободного столбца и нажмите на панели инструментов кнопку Построить (Build) Щч! Появится окно построителя выражений (рис. 6.36).
' 1Й Запросы И Forms И Report* ЕЙ Функции Q Константы СЗ Операторы С] Общие выражения
ДатаПолужения ДатаВоэБратаОакт
Рис. 6.36. Окно построителя выражений
Поле в верхней части окна предназначено для создания выражений. Кнопки под ним представляют наиболее часто употребляемые операторы. В нижней части окна расположены списки, позволяющие выбирать константы, функции и имена объектов Access, которые должны присутствовать в выражении.
Использование вычисляемых полей
1 73
Сейчас в левом списке открыта папка текущего запроса, а второй список содержит все выбранные поля. Дважды щелкните в первом списке па папке Функции (Functions). Появятся две вложенных папки. Щелкните па папке Встроенные функции (Built-in Functions). Во втором списке будут отображены категории функций, а в третьем списке сами функции. По умолчанию список содержит все функции (рис. 6.37).
[^Задерживающие книги (И Таблицы (±1 Запросы SQ Forms ИЗ Reports
[ ^ЗЗЕИШЗЗЗ
I— СП Библиотека Данные Q Константы С] Операторы Q Общие выражения
Массивы Преобразование База данных Дэта.'время По подмножеству Обработка ошибок Финансовые Обшие Проверка Математические IQ общения Управление Стлтигтичвгкие....
CBcol CEyte CCur CDate CDbl Choose Ihr
'Inr
Abs(number)
Рис. 6.37. Список встроенных функиий в окне построителя выражений
Выделите в среднем списке категорию функций Дата/время (Date/Time). В правом списке появятся только функции работы с этим типом данных. Дважды щелкните на функции DateDiff. В верхнем поле появится шаблон для этой функции (рис. 6.38). Построитель выражений IDateWf («intervals; edalel», <dele2», «firstweekdav»; «tirstweeks)
оси вы Преобразование Ъаза дакных
tB Таблиц 01 It)Запрось S3 Forms ЙЗ Reports И Функции
т ~~ •
rI— С] БибпиотекаДанмье СЭ Константы Q Операторы С] Общие выражения
!По подмножестеу юбработка ошибок Финансовые OGuyie |проверка [Математические [Сообщения
Oateotff(interval; dabel; dateZj flretweekday; flrstweek)
Рис. 6.38. Шаблон функиий DateDiff
1 74
Занятие 6. Создание и выполнение запросов на выборку
9. Щелкните на элементе «interval», он будет выделен. Введите "d". Символ "d" в первом аргументе функции DateDiff означает, что разница между датами будет вычисляться в днях. 10. Выделите следующий аргумент функции «datel». 11. Снова откройте папку Задерживающие книги, чтобы получить на экране список полей текущего запроса. 12. Дважды щелкните на поле ДатаПолучения в среднем списке. Шаблон в верхнем поле примет следующий вид; DateDiff ("d"; «Выражение» [ДатаПолучения] «Выражение» : «date2»; «firstweekday»; «firstweek»). 13. Выражения слева и справа мы создавать не будем, поэтому их нужно удалить. Выделите первое слово « В ы р а ж е н и е » и нажмите клавишу Delete. Аналогично удалите второе слово «Выражение», 14. Выделите следующий аргумент функции «date2». 15. Дважды щелкните в среднем списке на поле ДатаВозвратаФакт. Шаблон в верхнем поле примет следующий вид: DateDiff С"й";[ДатаПолучения]; «Ехрг» [ДатаВозвратаФакт] «Ехрг»; «firstweekday»; «firstweek»), 16. Снова удалите лишние слова «Ехрг», а также два последних аргумента, функции и разделители. Окончательный вид выражения должен быть следующим:
DateDi ff("d";[ДатаПолучения];[ДатаВозвратаФакт]) 17. Нажмите кнопку ОК. Созданное вами выражение будет подставлено в ячейку Поле (Field) нового столбца. Нужно только дать этому полю название. 18. Нажмите клавишу Ноте и вставьте перед выражением имя поля Дни:. Не забудьте про разделитель «> между именем поля и выражением. Нажмите клавишу -I. Новое поле будет добавлено в запрос (установится флажок Вывод на экран (Show)). 19. Переключитесь в режим таблицы. Результат запроса представлен на рис. 6.39. 20. Переключитесь в режим конструктора. Теперь добавим в запрос условие отбора. 21. Введите в строку Условие отбора (Criteria) вычисляемого столбца Д н и выражение >= 30 (рис. 6.40). 22. Выполните запрос и убедитесь, что отобраны будут только те формуляры, в которых книги были на руках у читателей более 30 дней. 23. Сохраните и закройте запрос. ЗАДАНИЕ Создайте запрос, в котором будут показаны книги, выданные читателям и не возвращенные. В запросе должно выводиться также, сколько дней книги уже находятся на руках.
Создание запросов с параметрами
1 73
Ьушманрва Ирина Владимировна Файзрахманов Айрат Фатхерахманови1-
Рис. 6.39. Результат запроса с вычисляемым полем Дни
зща
& задерживающие книги: запрос на выборку
ДатаЛолучения ДатаВомратаФакт Примечание
jj Пеле; Д а таПо пучения Формуляры
г
ДатаОоэвратаФакФорм/лчры
Дни: Оа1:еО^("^'; .ДатаПолучения];[Дат.э&о!врат.эФ
(.Ортир -ее*,!! :
вывод *».афан: /споьпе отбораили;
'1J
•
• ™
0
0
0
л
>=30
-!
"-
' - '
^Г
Рис. 6.40. Добавление условия отбора в запрос
Создание запросов с параметрами В начале занятии мы создали запрос Издания&Авторы и отбирали книги Дмитрия Лихачева. При желании посмотреть книги любого другого автора нужно изменить условие отбора. Чтобы не менять условие отбора каждый раз, можно создать запрос, в котором фамилия автора будет параметром, запрашиваемым при выполнении. 1. Откройте запрос Иэдания&Авторы в режиме конструктора. 2. В строку У с л о в и я отбора (Criteria) для столбца Ф а м и л и я введите вместо конкретного значения приглашение к вводу параметра [Фамилия автора ].
1 /О
Занятие 6. Создание и выполнение запросов на выборку
Приглашение должно быть обязательно заключено в квадратные скобки (рис. 6.41). 3. Запустите запрос, нажав кнопку Вид (View). Появится диалоговое окно с введенным вами приглашением к вводу параметра (рис. 6.42).
1
КодИздаи»
КодАвтора ~J Имя Фамилия Л
КодАвтора
:
КодРаздел.= "
КодИздаьмя
Название |Ы
Попе: ИМЯ •' ' Авторы - - . . .. Ч • 0 1 -
Фамилия
Название
Авторы
Издания
0
0
1 [Фамилия автора:]
•
ГодИздани ч издания
кг-1 И;
0
|ji
Рис. 6.41. Ввод параметра запроса Поедите значение параметра Ш
Рис. 6.42. Диалоговое окно ввода параметра 4. Введите фамилию автора, например Пушкин, и нажмите кнопку ОК. В результирующее множество запроса попадут все книги Пушкина, которые имеются в библиотеке. 5. Закройте и сохраните запрос Издания&Авторы. Запрос может содержать не один, а несколько параметров, и все они по очереди будут запрашиваться при его выполнении. В следующем упражнении вы создадите запрос на выборку книг, приобретенных за заданный промежуток времени. Граничные даты диапазона определим в виде параметров. 1. Щелкните на ярлыке Создание запроса в режиме конструктора (Create Query in Design View) и выберите в списке три таблицы: Авторы, АвторИздание и Издания.
Первые два шага по созданию запроса аналогичны созданию запроса Книги по авторам.
Создание запросов с параметрами
2. Измените параметры объединения таблиц (внешнее объединение). 3. Сделайте первое поле запроса вычисляемым, введя в ячейку Поле {FieLd) строку:
Автор: [Фамилия] & " " & [Имя] 4. Включите в запрос все поля таблицы Издания, начиная с поля Название и кончая полем Заметки. Проще всего это сделать так. Выделите в таблице Изд а н и я в верхней области запроса поле Название. Прокрутите ее до конца и, удерживая клавишу Shift, щелкните на поле Заметки. Окажутся выделенными все нужные поля. Теперь перетащите их мышью в первый свободный столбец бланка запроса. Все поля будут вставлены одновременно. 5. Установите сортировку по возрастанию в столбце Автор. 6. В строк}' Условия отбора (Criteria) столбца ДатаПокупки введите выражение Between [Начало периода:] And [Конец периода:] (рис. 6.43). ер Запрос! : запрос на выборку
I
КодАвтсра—J Имя Фамилия »
КодАвтсра КодИздания
Цена Издания
И
ТипОбложкм Издания
0
Чис; Издг
ДатаПокупки Издания
В : Between [Начало периода:] And [Конец периода;] '-
Рис. 6.43. Параметры в поле ДатаПокупки
7.
8.
9. 10.
При вводе значений параметров типа Дата желательно контролировать правильность ввода дат, для чего нужно указать тип данных для этого параметра. Щелкните правой кнопкой мыши на свободном поле верхней панели запроса и выберите в контекстном меню команду Параметры (Parameters) или выберите команду Запрос > Параметры (Query > Parameters). Появится диалоговое окно Параметры запроса (Query Parameters), представленное на рис. 6.44. В столбец Параметр (Parameter) пнедите значение параметра точно так, как он определен в бланке запроса (легче всего это сделать путем копирования через буфер обмена), только можно не вводить ква;фатные скобки. В столбце Т и п д а н н ы х (Data Type) выберите в раскрывающемся списке тип Дата/время (Date/Time). Аналогично введите второй параметр. Затем нажмите кнопку ОК, Нажмите кнопку С о х р а н и т ь (Save) панели инструментов и сохраните запрос, введя его имя Поступления за период.
1 /О
Занятие 6. Создание и выполнение запросов на выборку
цив данных .-;..." . [Начало периода] 1ЧНЫИ
Текстоеъй Поле объекта OLE Поле MEMO Код репликации Действительное Значение
Рис. 6.44. Диалоговое окно параметров запроса
11. Нажмите на панели инструментов кнопку Запуск (Run), чтобы выполнить запрос. Поочередно будут выведены два диалоговых окна Введите з н а ч е н и я параметра (Input Parameter Value), в которые нужно ввести дату начала периода и дату конца. Если нужно, допустим, посмотреть книги, приобретенные за 1999 год, введите две даты: 01.01.1999 и 31.12.1999. Результат отбора представлен на рис. 6.45. 12, Закройте запрос. йШ 3 9
добавлять таблицы в запрос и вставлять новые поля; перемещать поля в запросе; создавать левое и правое внешние объединения таблиц в запросе; создавать запросы с параметрами; создавать вычисляемые поля в запросе.
Вы познакомились с теми операторами и функциями, которые могут использоваться при составлении выражений, являющихся условиями отбора записей или значениями вычисляемых полей. Знакомство с запросами мы продолжим на следующем занятии.
ЗАНЯТИЕ 7
Анализ и изменение данных с помощью запросов ТЕМА ЗАНЯТИЯ
На этом занятии вы узнаете: • как группировать записи в запросе и рассчитывать итоговые значения; • какие существуют статистические функции и как они могут быть использованы для обработки данных в запросах; • как анализировать данные с помощью сводных таблиц; • как построить сводную диаграмму; • в каких случаях данные в результирующем множестве записей можно изменять, а в каких нельзя; • как с помощью запроса создать новую таблицу и включить в нее данные из результата запроса; • как выполнить множественные изменения данных в таблицах; • как добавить за один прием несколько записей в таблицу; • как удалить из таблицы множество отобранных записей.
Расчет итоговых значений
1 о!
Для выполнения упражнений данного занятия вам потребуется файл БиблиотекаДанные.тсШ 1 . Откройте его перед началом занятия.
Расчет итоговых значений Рассмотрим, как с помощью запросов можно выполнять подсчет итоговых значений. Расчет итоговых значений тесно связан с применением групповых операций в запросе. Групповые операции позволяют задать группы записей, для которых выполняются вычисления. Рассмотрим примеры таких расчетов как на всем множестве записей, так и на подмножествах, отобранных условиямг в запросе. Посмотрим, сколько в библиотеке книг по каждому разделу. В качестве источника данных используем уже существующий запрос К н и г и по авторам. (Запрос, как и таблица, может быть источником данных для другого запроса.) 1. Выделите в списке запрос К н и г и по авторам. Нажмите стрелку на кнопке Новый объект (New Object) ске Запрос (Query).
и выберите в сги-
В диалоговом окне Новый запрос (New Query) выберите Конструктор (Design V i e w ) и нажмите кнопку ОК. 2. Включите в бланк запроса два поля: Раздел и Н а з в а н и е . Щелкните на панели инструментов па кнопке Групповые операции (Totals) |й__. В бланк запроса добавляется строка Групповая операция (Total), содержащая по умолчанию в каждой ячейке значение Г р у п п и р о в к а (Group By). Для поля Раздел оставьте значение Группировка (Group By),-так как мы действительно хотим сгруппировать все книги по разделам, для поля Н а з в а н и е выберите в списке функцию C o u n t (рис. 7.1), чтобы подсчитать количество записей в каждой группе. Нажмите на панели инструментов кнопку Запуск (Run) для просмотра результатов запроса. Вы получите таблицу со списком разделов, где для каждого раздела указывается количество относящихся к нему изданий (рис. 7.2). Нажмите на панели инструментов кнопку Сохранить (Save) и введите имя запроса Количество и з д а н и й по разделам. В данном примере расчеты производились над всеми имеющимися в таблр ц с? И з д а н и я записями. Однако иногда требуется выполнить вычисления только над отобранным набором записей. Для этого нужно добавить в запрос условия отбора. Изменим запрос таким образом, чтобы получить данные не по всем разделам, а только по одному, название которого введем в качестве параметра. 1
Примеры вы можете найти на сайте издательства www.piter.com на странице, посвященной этой книге.
Занятие 7. Анализ и изменение данных с помошью запросов
12 М 1C IО ! О» A i; QF Я S
Рис. 7.1. Использование в запросе статистической фуншии Count
Рис. 7.2. Запрос, подсчитывающий количество изданий в каждом разделе 1. Переключитесь снова в режим конструктора. Введите в ячейку Условия отбора (Criteria) столбца Разделы строку [Раздел; (рис. 7.3). По умолчанию Access присваивает параметрам запроса тип данных Текстовый, поэтому текстовые параметры в диалоговом окне Параметры запроса можно не перечислять, достаточно указать их в условии отбора.
Расчет итоговых значений
1 оЗ
j$S Количество изданий по разделам : запрос на выборку
•• -
КодИздания Раздел Автор Название
.
'-
' . " . - - '
. - - . - . " .
4J
'-Щ
_*j
iLJ
' . i l l
Раздел ИЩ | Книги по авторам f р'/гкючля сг'лфайия Группировка > :. Вывод на экран 0 [Раздел:] или
- ;
—
:
Название Книги по авторам Count
*
_.а
а
0
п
]
:|
иг:
Рис. 7.3. Добавление параметра в запрос с итогами Нажмите кнопку Запуск (Run). Введите в окно Введите значение параметра (Input Parameter Value) название раздела, например, история (рис. 7.4). введите значение параметре щЩЗн
[история
Рис. 7.4. Ввод значения параметра в проиессе выполнения запроса Результатом запроса будет одна строка с числом книг по истории (рис. 7.5). 2. Закройте запрос, сохранив его. Функция Count которую мы использовали в примере, называется статистической функцией. Статистические функции не обрабатывают при вычислениях записи, имеющие значение Null в том поле, к которому они применяются. Поэтому будьте осторожны при использовании функции Count. Она будет считать только записи, не содержащие пустые значения. Если требуется сосчитать все записи в результирующем наборе или группе, нужно создать в запросе новое вычисляемое поле, значение которого должно быть равно Мг(), где аргументом функции Nz() должно быть поле, по которому мы считаем записи. А сама функция Nz() преобразует пустое значение своего аргумента в 0. В данном примере условие отбора добавлялось в столбец, по которому производится группировка записей (Разделы), но так бывает не всегда. Предположим,
1 84
Занятие 7. Анализ и изменение данных с помощью запросов
требуется посчитать, сколько книг по каждому разделу находится в большой комнате (отбор ведется по полю КодМеста — Место х р а н е н и я ) . В таком случае нужно добавить это поле в бланк запроса и установить для него в строке Групповая операция (Total) значение Условие (Where). Количество изданий по разделен: запрос на
Рис. 7.5. Результат запроса, подсчитывающего число изданий в разделе ЗАДАНИЕ Создайте самостоятельно запрос, позволяющий подсчитать количество книг раздела (название вводится в качестве параметра) в каждом из мест хранения.
В табл. 7.1 перечислены статистические функции Access для применения в запросах с групповыми операциями. Вы видите их в раскрывающемся списке операций, в строке Групповая операция (Total) бланка запроса. Таблица 7.1. Статистические функиии Access Функция
Описание
AvgQ
Вычисляет арифметическое среднее набора чисел, содержащихся в указанном тюле запроса
CountQ
Вычисляет кол и честно непустых записей, возвращаемых запросом
FirstQ
Возвращает значение поля из первой записи результирующего набора
Last
'ЮОДОр.; 170,00р;
1 465,30р. 1279,30р.
3420,00р.: 1100,00р.; 4322,50р.. 1 684,00р.. 2024ДОр/
854400р. 7 433.00р! 9310.00р. 7 081,00р. 7Ь98,ЗОр.
2 iza'rjpp"'
5 i49,oop.
345,00р. 1414.50р." 10В4,ООр.: 1008,00р.' 917,30р. ""Ш.ООр. " 700Щ
'4779,оЬр.; '4968,50р.; 'Э923,50р.: 4389.00р.Г 4157,00р.: ' 420,00р.; 1 "725]Ьрр/
"В40",СОр.
1ЖЖ?Р'!
О^ЩР-1 3880 00р.
ЗЭБО'.Шр 14'850,00р.' 1046,00р.' 5376,00р, '336,00р." 75600р.! 448,00р. 1"03600р.Г " 8 6 4 . 0 0 5 ^ " 2 772 .ООр.;
8 800,00р.": 27 610 .ООр. 2624,00р/' 904800р. '•] 26000р.;" 235200р. 980,00р.:" 2464.00р. "2вК^^.'- " б 516 ООр.
i"poe",gbp.
2"i96,opp,-
i "ворлор!":
5004,gop.
Рис. 7.12. Сводная таблииа — итоговые данные
инструментов кнопку Автовычисления (AutoCalc)pPii выберите в раскрывающемся списке функцию Сумма (Sum). Появятся по одной дополнительной строке для каждого продукта, в которой будут суммироваться данные по
1 90
Занятие 7. Анализ и изменение данных с помощью запросов
всем заказам, и в итоговом столбце — итоговая сумма по всем заказам за все годы по каждому продукту. Теперь в таблице одновременно отображаются и детальные, и итоговые данные. Можно скрыть детальные данные, оставив только итоговые. 8. Для этого на панели инструментов нажмите кнопку Скрыть подробности (Hide Details) Щ. Итоговая таблица представлена на рис. 7.12. Получившаяся таблица — двухмерная, так как показывает данные в двух разрезах: продукты и время (годы). Можно добавить еще одно измерение, например, посмотреть, как продажи продуктов распределялись по странам. 9. Найдите в списке полей в окне поле Страна получателя (Country) и перенесите его в область фильтра — в самый верх таблицы, в область, которая пока не определена. Теперь вы сможете просматривать и анализировать заказы по странам, отображая в таблице данные только по выбранной стране. Для этого вы должны научиться фильтровать данные в сводной таблице.
Сортировка и фильтрация данных в сводной таблице Начнем с фильтрации данных по странам. По умолчанию в таблице отображаются данные сразу по всем странам. 1. Щелкните на стрелке справа от названия фильтра Страна получателя (Country). Появится окно со списком всех стран, в которых находятся заказчики (рис. 7.13). Слева в каждой строке стоит флажок.
•^Австрия №! Аргентина 5П Бельгия j/i Б раз ипия ^Великобритания ^Германия Ц^ЗДания ^Ирландия
425,30р
660,00р.
191,30р " 539 ",00 р
913,00р. 2487.DOp.
345,00 р 1 4/14,ЕОр.
4 779,00р. 49Б8,50р. "
"J 064Д]р; "1 ррб.СЮр.' 917 ЗОр 112.ООр 700 .ООр ' 640,00р. 1 008,ООр
3960,ООр 1 048,0рр
Шдзр.
4157.рОр 420,00р. 1 725,00р. 1 440,ООр
400,00р. 2 123,00р. "Э" 420 ,00р. ""
'
1 485,30р. 1 279,30р. 5149,00р
3 544 ,00р. '7483,00р.
1684,00р. ' '
..... 840, ООр. 'l"500',00p.
1 800 .00 р. 1 800 ,00 р.
1 372,00р. 3925 ,00р. 3 680,00р. 5 004,00р.
2 196,ООр 14850,00р.
а 800,00р.
27Б10,ООр.
""5376JJOpV 756,00р.
2624,00р. "1 260 Д]р.
' 9046,00^' " " ' " '
ДЖЛ9Р-
..... 980'Щр7
Рис. 7.13. Установка фильтра в сводной таблиие
Анализ данных с помошью сводной таблииы
191
2. Сбросьте флажок Все (АИ) в первой строке, будут сброшены все флажки. Установите их только у одной страны, например Франции, и нажмите кнопку ОК. Данные в сводной таблице изменятся, а под наименованием фильтра появилось имя выбранной страны. Окно со списком стран позволяет сделать множественный выбор, то есть выбрать сразу несколько стран. В области фильтра можно поместить несколько полей, и каждая такая операция добавляет еще одно измерение в нашу таблицу. Все эти поля будут работать как независимые фильтры. ЗАДАНИЕ Добавьте в область фильтра поле Продавец (Salesperson) и посмотрите, как будут работать эти два фильтра.
3. Чтобы сбросить все установленные фильтры, щелкните на панели инструментов на кнопке Автофильтр (AutoFilter) |^П. Вы увидите, что фильтр исчез, но его можно восстановить снова, если щелкнуть на этой кнопке еще раз. Хотя верхняя область таблицы называется областью фильтров, фильтры можно устанавливать не только описанным способом. Вы могли заметить, что стрелки рядом с названием поля находятся и в области заголовка строк, и в области заголовка столбцов. 4. Щелкните на стрелке справа от заголовка столбца Марка (Product Name). По.-iвится окно, аналогичное использовавшемуся в предыдущем примере. Сбросьте флажок у тех товаров, которые вы не хотите видеть в таблице. Пример применения фильтра по товарам приведен на рис. 7.14. Счета : запрос на выборку
235,00р.,
1 430.00р.;
1 932,00р.
Рис. 7.14. Сводная таблица с фильтром по товарам и странам
5. В область строк можно внести несколько полей, Перенесите туда поле Получатель (Company Name), и вы получите данные о продажах в разрезе не только товаров, но и клиентов (рис. 7.15). Данные сводной таблицы сортируются так же легко, как данные обычной. Сейчас они отсортированы по наименованию клиента, а затем по наименованию продукта. Но если вы выделите область данных таблицы, щелкнув на заголовке Сумма «Цена» (Sum of Extended Price), а затем нажмете знакомые кнопки панели
1 92
Занятие 7. Анализ и изменение данных с помошью запросов
инструментов — По возрастанию (Ascending) и По убыванию (Descending), таблица будет отсортирована в пределах каждого клиента по суммам продаж, а не по товарам,
\. KM -
•»•-•:: • |
•-
. . ., . :
'
,.
-
'..
' '
:
•
1 1
1-C.ith- Uif,
iHufi-jpa Nue'S'tiiuiigaf-C iW"1
,
- -
':+-..':...'.." \*,-z. | ;' г'.чзз . •-!'.•< |'|a|a ||||«i|;•••••> и «+>>. 5. Щелкните на кнопке «•+->> справа от названия любой компании-клиента. Во всех столбцах для этого клиента будут показаны суммы по всем счетам и одна итоговая строка (но всем счетам данного клиента) (рис. 7.20).
Рис. 7.20. Раскрытие детальной информации по строке
1 96
Занятие 7. Анализ и изменение данных с помошью запросов
6. Снова сверните строку (скройте детальные данные), щелкнув на кнопке «-» в той же строке. 7. Аналогично можно развернуть любой столбец. Щелкните на значке «+» в заголовке 1997 года. Будут показаны детальные данные этого столбца (все счета за 1997 год) для всех клиентов. Еще две кнопки панели инструментов позволяют манипулировать уровнем детализации данных в таблице: {Wj Показать подробности (Show Details) |Щ Скрыть подробности (Hide Details). Их можно использовать, когда требуется развернуть или свернуть данные сразу по всем строкам или столбцам. Нужно выделить соответствующий заголовок (для столбца) или столбец в области строк и щелкнуть на одной из этих кнопок. ЗАДАНИЕ Попробуйте менять уровни детализации отображаемых данных в таблице, используя все описанные выше приемы и кнопки. Мы создавали итоговые значения командой Автовычисления (AutoCalc). При этом могут быть использованы разные статистические функции. Перечень этих функций вы можете увидеть, щелкнув на стрелке этой кнопки. 1. Выделите столбец Получатель и щелкните на этой стрелке. Выберите единственную доступную функцию раскрывшегося списка — Ч и с л о (Count). Б области данных таблицы для каждого года будут отображаться два столбца (рис. 7.21): й$ Счета : запрос на выборку 1
'
'!•' 1: ~
Г
- • . .,'.-• .• Лага
168.00р. 674,00р. 2 276 flOp.
f
31Э4,Эрр 3 346,50р.
"б'эаз'.бЬр"
4 535 ДОр.
34бДОр" I ••< , . Щ - .• ; .!
-' . I
......
"2424.40р. 7273.00р.; ' Гб27",90р.; 5 231 ДОр: 2Б79ДОр: 2 ...... 294Б,Оар "
• ;. '
79а,ООр 1 424,00р.!
2713р " 569,00р; '718, ООр;
Рис. 7.21. Сводная таблица с двумя итоговыми полями
( I
'
: I :
I7 2 211 13 14 ....^..
""'9'1:1 "з^.
tl
Анализ данных с помощью сводной таблииы
1 97
П Сумма «Цена» (Sum of Extended Price) — сумма, вырученная от продажи товаров каждому клиенту; П Количество з н а ч е н и й «Получатель» (Count of Company Name) — количество счетов, выписанных клиенту. Вам не нравятся стандартные наименования итоговых столбцов в таблице? Это легко поправить. 2. Выделите нужный столбец и нажмите на панели инструментов кнопку Свойства (Properties) [Ц*1 Появится диалоговое окно свойств выделенного поля. Раскройте вкладку З а г о л о в к и (Captions) и в поле Заголовок (Caption) введите значение, которое вы хотели бы видеть в заголовке столбца (рис. 7.22).
Формат. Заголовки I Отчет
т
Ун ик ant) мое имя. итог а Имя итога Попе источника итога Тип итога
[Me asures]. [Ит or I ] Итог]
Цена.
Вычисляемый
Рис. 7,22. Диалоговое окно Свойства сводной таблииы, вкладка Заголовки
3. Раскройте вкладку Отчет (Report) с флажками различных параметров таблицы. Например, сейчас в группе Отображать итоги в (Display Total As) установлен флажок заголовках столбцов (Column Headings). 4. Установите второй флажок — заголовках строк (Row Headings). Таблица транспонируется, принимая вид, представленный на рис. 7.23. В сводной таблице можно создавать и вычисляемые поля. Суть этих полей та же, что и в запросе — значение поля рассчитывается, и требуется задать выражение для этого расчета. 5. Нажмите на панели инструментов кнопку Итоги и вычисляемые поля (Calculated Total and Fields) HI В раскрывающемся списке выберите Создание вычисляемого итога (Create Calculated Total). Снова появится окно Свойства (Properties), но раскрытой будгт вкладка Вычисление (Calculation) (рис. 7.24). 6. В поле И м я (Name) введите имя нового поля. В большое поле под ним нужно ввести выражение. Причем, если в выражение надо вставить название како-
I 98
Занятие 7. Анализ и изменение данных с помошью запросов
го-то ноля из запроса, то это поле можно выбрать в раскрывающемся списке в нижней части окна и затем нажать кнопку Добавить ссылку на (Insert Reference to). Счета : запрос на
• • •',.
•
V |h id
13153.10р.: SI
Biauar See Oelikstess
4499.40)).!
Рис. 7.23. Транспонирование таблииы
ча | | Вырученная сумма (Итог)
Рис. 7.24. Диалоговое окно Свойства сводной таблииы, вкладка Вычисление
7. Закройте окно Свойства. В таблице окажутся лишние строки, уже созданные для нового итогового поля. Их можно легко удалить, выделив (щелкнув на заголовке поля) и перетащив за пределы сводной таблицы.
Сводные диаграммы
I 99
Аналогично можно создать вычисляемое поле и и детальных данных таблицы (выбрав вторую строку списка Итоги и в ы ч и с л я е м ы е поля (Calculated Total and Fields), но если это нужно, лучше создать это поле н исходном запросе.
Сводные диаграммы Готовую сводную таблицу можно легко преобразовать и диаграмму. В нашем примере для наглядности диаграммы нужно отфильтровать клиентов, выбрав, например, только одну страну. 1. Разверните фильтр Страны (Countries) в области фильтра и выберите в списке только одну страну — Германию (Germany). 2. Щелкните на стрелке кнопки Вид (View) и выберите пункт Сводная д и а г р а м м а (PivotChart View) — получите диаграмму (рис. 7.25). • ,. -.
j$S Счета : запрос на выборку
' '- -:- -'ИОШО
:
-Страну получатели ~* П|м>дд Вец 1 е|>вдния • . ,Все . ^Зьшученная суииа[Коя-цо счетов
= о
12500,00р.-
X
_. ! и OP
U C
-к -Е2
и и сл&1
и
з "И m ~
Jt
"О
£
,
П
1 . ._• fl Л
И
^ С
ТЗ
С
61
з v
^ ш J2d
Ь
2 *
С
5
iil
П
1 Ш IПТГЖТ!
с л
с а
С
и &J
1""Д1-'
п
'
_
1 II 1 1 1
с о
.
5
иП
е
с,
Название оси ,-—.... ~.~~.~ ,_.„...,,.,_. : Цодучатель "
Рис, 7.25. Сводная диаграмма
Как и в сводной таблице, в верхней части поля диаграммы находится область фильтра, в которой размещены два поля: Страна получателя (Countries) и Продавец (Salespersons). Вы видите, что и данный момент установлен фильтр по странам. По горизонтали располагаются получатели, а по вертикали — суммы продаж. Для каждой страны отображается три столбика — каждый соответствует году (1996, 1997, 1998). Поля Получатель (Company N a m e ) и Годы (Years) стали тоже фильтрами. Область справа, где находится поле Годы, называется областью рядов, область внизу, и которой находится поле Получатель, называется.
200
Занятие 7. Анализ и изменение данных с помошью запросов
областью категорий. Раскрыв соответствующий список, можно выбрать отдельные фирмы или только один год и быстро получить требуемые данные. Как и сводную таблицу, диаграмму можно трансформировать, перемещая поля из области в область. ЗАДАНИЕ Изменяйте диаграмму, перемещая поля из области в область и устанавливая различные фильтры.
Сводная диаграмма тесно связана со сводной таблицей — это просто две формы представления одних и тех же данных. Переключитесь в режим сводной таблицы, и вы увидите, что она тоже изменила вид в соответствии с диаграммой.
Создание сводной диаграммы Сводную диаграмму можно построить сразу на основе запроса или таблицы. 1. Выберите в списке запрос Продажи по сотрудникам и странам (Employee Sales by Country) и откройте его в режиме конструктора. 2. Этот запрос имеет параметры, которые в данном случае нам не нужны. Поэтому сначала удалите условие в столбце ДатаИсполнения (ShippedDate), а затем нажмите кнопку Parameters (Параметры) на панели инструментов, откройте окно Параметры (Parameters) и удалите два параметра запроса. Закройте окно Параметры. 3. Щелкните на стрелке кнопки Вид (View) и выберите пункт Сводная диаграмма (PivotChart View). Появится окно макета сводной диаграммы (рис. 7.26). :ёр Продажи по сотрудникам и странам : запрос на выйоикч
1
о
£
0,75-
Й
O.S 0.25-
Рис. 7.26. Макет сводной диаграммы
4. Поместите в область категорий (в нижней части макета) поля Ф а м и л и я (Last Name) и Имя (First Name). Значения этих полей будут размещаться по горизонтальной оси диаграммы.
Сводные диаграммы
201
5. В область данных в центр макета поместите поле СуммаПродаж (SaleAmount). Значения этого поля будут откладываться по вертикальной оси диаграммы. Диаграмма построена. Добавим надписи осей. 6. Щелкните на надписи Н а з в а н и е оси (Axis Title) под горизонтальной осью, она будет выделена. 7. Если окно Свойства не отображается на экране, щелкните на панели инструментов на кнопке Свойства |»Si В окне Свойства раскройте вкладку Формат (Format). Введите в поле Заголовок (Caption) значение Продавцы. 8. Аналогично введите название вертикальной оси Объем продаж. 9. Если мы хотим, чтобы на одной диаграмме отображались данные в разбивке по годам, необходимо перенести поле Дата исполнения по месяцам (Shipped Date by Month) в область рядов в правой части макета. Теперь каждому продавцу компании будет соответствовать серия столбцов диаграммы — каждый столбец для одного года. У столбцов будет разная окраска: каждому году будет соответствовать свой цвет. 10. Чтобы видеть, какой цвет какому году соответствует, можно вывести легенду. Нажмите на панели инструментов кнопку Добавить легенду (Show Legend) [Ш|Пояиится табличка с легендой Годы (Years). 11. Переместите поле Страна (Country) в область фильтра, чтобы можно было фильтровать данные по странам. Диаграмма приобрела законченный вид (рис. 7.27). JP Продажи по сотрудникам и странам i запрос на выборку
1 500000.00р. 1 000000,00р. 500000.00р.
Иван
Ольга
Мария
Дарья
Петр
Андрей
Анна
Павел
Инна
' Продавцы
Рис. 7.27. Сводная диаграмма Продажи по сотрудникам и странам
12. Переключитесь в режим сводной таблицы, и вы увидите те же данные в виде сводной таблицы.
202
Занятие 7. Анализ и изменение данных с помощью запросов
Изменение вида диаграммы Получившийся тип диаграммы называется гистограммой. Его легко изменить, 1. Щелчком выделите область данных диаграммы. Нажмите на панели инструментов ставшую доступной кнопку Тип д и а г р а м м ы (Chart Type) Щ. 2. В диалоговом окне Свойства (Properties) раскрыта вкладка Т и п (Туре) с возможными типами диаграмм (рис. 7.28).
Общие ] Границы и заливка '•\$. ' - • ••'••'••'• Линейчатая Граф>к \d Гладкий графи Круговая I.-.-" Точечная ?! Пузырьковая А С областями Э Кольцевая lf Лепестковая ьС Биржевая Полярная
Рис. 7.28. Типы сводной диаграммы вр Продажи по сотрудникам и странам : запрос на выбор™ rjj гид ;
^ зоооога.оор.
та ч g_ с
2000000,00р.
i 1 оооооо,оор. j 0,00р
Рис. 7.29. Сводная диаграмма — график
Изменение данных с помошью запросов
3. Выберите любой понравившийся тип, например, График (Line), а затем подтип справа. Внешний вид диаграммы изменится (рис. 7.29). 4. Закройте запрос, сохранив все изменения. Итак, мы рассмотрели, как извлекать данные из таблиц базы данных и клк представить эти данные в удобном для анализа виде. Рассмотрим, как с помощью запроса можно изменять данные.
Изменение данных с помощью запросов Все запросы, которые мы строили до сих пор, помогали извлекать данные из таблиц и анализировать их с помощью разного рода вычислений. Однако, клк уже говорилось выше, можно создать запросы, изменяющие сами данные.
Изменение данных в результирующем множестве запроса Когда результат запроса отображается в виде таблицы, возникает желание не только просматривать, но и изменять данные в этой таблице. Поскольку так;ш таблица является виртуальной,, редактирование полей запроса на самом дс-лс означает редактирование полей и таблицах-источниках. Однако такое редактирование не всегда возможно, и при попытках изменить значение некоторого поля вы можете получить сообщение, что данные в запросе не являются обновляем ыми. Является ли запрос обновляемым, достаточно легко обнаружить: при отображении результатов запроса в конце записей должна быть пустая строка, помеченная значком «*» в области выделения записи. Тогда в эту строку можно вводить данные, которые создадут новую запись. Если такая строка отсутствует, добавлять записи в запрос и изменять поля запроса нельзя. В частности, нельзя добавлять или изменять записи, если; • в запросе применяются статистические функции; • две таблицы запроса связаны отношением «один-ко-многим», и при этом в 'i aблице «один» не задано полей первичного ключа. Условия, при выполнении которых можно обновлять и добавлять записи в запросе: • таблица является единственной в запросе; • таблицы в запросе связаны отношением «один-к-одному>>; • если таблицы связаны отношением «один-ко-многим>>, можно изменять поля только в таблице «многие». В таблице «один», связанной с другой таблицей отношением «один-ко-многим», можно изменять пол я только втом случае, если ни одно поле таблицы «многие» не включено в результат запроса, а используется для отбора записей.
204
Занятие 7. Анализ и изменение данных с помошью запросов
Кроме того, любой запрос имеет два свойства; Уникальные значения (Unique Values) и Уникальные записи (Unique Rows). Большинство запросов, свойство Уникальные з н а ч е н и я ( U n i q u e Values) которых имеет значение Нет, может использоваться для обновления данных, а запросы, свойство У н и к а л ь н ы е з н а ч е н и я которых имеет значение Да, не допускают ни обновления имеющихся в н и х записей, ни добавления новых. Чтобы открыть диалоговое окно свойств запроса, щелкните правой кнопкой мыши на свободном поле в верхней панели окна конструктора запроса и выберите в контекстном меню команду Свойства (Properties). ЗАДАНИЕ Откройте созданные вами запросы в режиме таблицы и посмотрите, какие из них являются обновляемыми, а какие нет. Попробуйте изменять поля в результирующем наборе и убедитесь в действии правил, описанных выше.
Запрос обновления данных Рассмотрим новые виды запросов, которые позволяют выполнять массовые изменения данных, то есть изменения сразу во многих записях в соответствии с определенным правилом. Перед выполнением следующих упражнений откройте базу данных БиблиотекаДанHbie.mdb и измените таблицу Издания: в нее нужно добавить еще одно поле — Списано.
... Издание "
КодМвста Цена ТипОбложки ДатаПокупки ЧислрСтраниц ТипИзданий Заметки
' тип даннь» •? :"' Числовом Числовой Двнвжшй. Текстовый Дата/время Ч меловой Текстовый ПолеМЕМО
c.-Tur-iK-t
.'
: |
J
!
V
.-*!
J
:
-:
•
-
.-
:-
Рис. 7.30. Добавление поля Списано 1. Раскройте список таблиц базы данных БиблиотекаДанные.тс1Ь. 2. Откройте в режиме конструктора таблицу И з д а н и я .
'-.
•• .
.,-
:- '.-
•:•
Изменение данных с помощью запросов
205
Добавьте в конец таблицы новое поле. Введите имя поля Списано, выберите в списке тип данных Логический (Yes/No) (рис. 7.30). Введите в ячейку свойства Значение по умолчанию (Default Value): Нет (No).
3. Переключитесь в режим таблицы и убедитесь, что логическое поле отображается в виде флажка (рис. 7.31).
Греческий м русский тексты, стать! В сборник включены 1333 четверс; Российская энциклопедия для пег жесткая, з свержу мягкая жесткая жесткая жесткая жесткая I жесткая : жесткая \
21.D9.1999 11.09.1998 21.09.1999; 23.09.2000] 15.12 1999! 15.092000: 20.091999:
550! книга 480: книга 80:*ннга 6ЭО:очиГ5 356 книга 592 книга 55В. книга
!
Швейцарский философисследует:
П О
а"
П "О" П
|К семантике садово-парковых сти: ! Библиотека славянской литератур: 'Личная Библиотека Борхеса
Рис. 7,31. Отображение поля типа Логический (Да/Нет)
4. Закройте таблицу, сохранив изменения. Допустим, нам нужно установить флажок Списано для всех книг, которые приобретены до 1 января 1997 года. Для этого можно использовать запрос обновления записей. Этот запрос можно создать за три шага: • создать запрос выборки; • преобразовать запрос выборки в запрос обновления; • выполнить запрос, обновив данные в отобранных записях. Итак, начнем с запроса выборки. 1. Выделите в списке таблиц таблицу И з д а н и я . Щелкните на панели инструментов на стрелке кнопки Новый объект (New Object) и выберите в списке значение Запрос (Query). В диалоговом окне Новый запрос (New Query) выберите в списке Конструктор (Design) Появляется окно конструктора запросов с таблицей Издания на верхней панели. 2. Перенесите в бланк запроса поля Название, ДатаПокупки, Списано. 3. Введите условие отбора записей — в столбец ДатаПокупки выражение < 01.01.1999 (рис. 7.32). 4. Выполните запрос, чтобы убедиться, что записи отбираются правильно. Изменим запрос, превратив его в запрос обновления. Для этого вернитесь в режим конструктора, щелкните на панели инструментов на стрелке кнопки Тип запроса (QueryType) [ДЯ-
Занятие 7. Анализ и изменение данных с помощью запросов
Затем выберите команду Обновление (Update). Изменяется заголовок запроса, и появляется дополнительная строка Обновление (Update То). При этом исчезают строки Сортировка (Sort) м Вывод на экран (Show).
ЧислоСтранмц ТипИздания Заметки Списано
tU Название Имя таблицы; Издания
п$яу
SfaJBD
ДатаПокупки Издания
.
а
0
. • ; : • •
:_:
Списано Издания
J^a
?„ ..;;;.,-.;„, •'^
МП.
а
0
;< #01.01. 1999*
или;
1
Ж
:1
;
ли
' ±л
Рис. 7.32. Отбор «писем для установки флажка Списано 5. Введите в строку Обновление (Update To) столбца Списано значение Да (Yes) (рис. 7.33). gj-npocljaanpoc иа ofiHOBiiefi^
ТипИздания Заметки Списано
:
'
tl|j 1
1
'fii il
.
.
- - : ;-;.; •' '! ;?
"^
"
I | | | У ' '
:tt.rt.::; ; :: 1 . •' ' Ь -
. '. : :Поле;' Название Издания Ой-юБпенмЁ1 • Услреиеотоорз: • :- *. -- • . .яда: 1 1 •; '
шшшмдишнмш
В
' -о|Щ||
•
;
•
.- - '-""v-"^-" " . .
" : ' : " ' ''
:•: ЧислоСтранмц iu
""' т ' < -.
""" ~
Н ." " - . " . . - . : :
. . " ' .--' TI. ' • : . . ; - • . - - - Xv .jT .'.;.
; " ^ = f /?-,., 4I?HWff.tf;*.
. .
:
ДатаПокупкм Издания
1
Списано Издания
'
>f~* -—**
_;
-^i
Ji... .-.!!-?
--' .-:,., «,,'Д а^
щ\
Да Сохранить как (File * Save As) сохраните запрос под именем Запрос на создание таблицы. ГАГ»
Нельзя сохранять запрос кнопкой Сохранение (Save) или закрывая запрос, как мы это делали раньше, так как тогда запрос сохранится подтем же именем, удаляя тем самым старый запрос.
Выполните следующие шаги. 1. Преобразуйте запрос выборки в запрос создания таблицы. Для этого щелкните на стрелке кнопки Тип запроса (Query Type) и выберите в списке команду
Изменение данных с помошью запросов
209
Создание таблицы (MakeTabLe) 1 . Диалоговое окно Создание таблицы (Make Table) показано на рис. 7.37.
Рис. 7.37, Диалоговое окно Создание таблииы В текстовом поле и м я таблицы (Table Name) введите имя новой таблицы Стар ы й фонд. В базе данных Access не должно быть таблицы ил и запроса с таким именем.
Новая таблица может быть создана в текущей базе данных или в другом файле. Оставьте переключатель по умолчанию (в текущей базе д а н н ы х ) и нажмите кнопку ОК. 2, Закройте запрос. Теперь в окне базы данных ему соответствует другой значок, сопровождаемый восклицательным знаком (рис. 7.38). Это означает, что запрос является запросом изменения. рБибймотекаПанные: база данных (фи ^ OWflbfTb x/^VfJ].^ I Ч»
i
Создание запроса в режиме конструктора Создание запроса с помощью мастери Задерживающие книги Запрос на обновление
ИзданияЬАвторы и по авторам Количество изданий по разделам Образец фильтра по форме .
.
;
Поступлемия за период Среямие срони наличия книг на рукак
Рис. 7.38. Запрос изменения в окне базы данных Если вы не видите этой строки меню, подождите пару секунд, удерживая указатель на меню. Появятся скрытые строки меню.
210
Занятие 7. Анализ и изменение данных с помощью запросов
Выполнение запроса приведет к созданию таблицы, в которую будут помещены все записи, отобранные первоначальным запросом выборки. Поля таблицы будут соответствовать полям, включенным в результирующее множество запроса. 3. Для выполнения запроса дважды щелкните на его имени в окне базы данных. При этом он не отображает результирующий набор записей, а выполняет нужное действие. Перед его выполнением появляется сообщение (рис. 7.39), предупреждающее о том, что в новую таблицу будут внесены изменения.
В иовую табпицу будет помещено следуннцее ч^по^иифй'З-. По.:гв нд+атя* кнсч* и "Да" отменаизмсненим станет неео^южна.
Рис. 7.39. Предупреждающее сообшение о внесении изменений
4. Нажмите кнопку Да (Yes). Поскольку запрос запускается впервые, будет создана новая таблица Старый фонд. Раскройте список Таблицы (Tables) в окне базы данных; в списке появилась новая таблица (рис. 7.40). Ьиб л потека Данные : база данным {формат Access 2
:r".""" S
" i of .HUM
Создание таблицы в режиме конструктора Создание таблицы с помощью мастера Создание таблицы путем ввода данных АвторИ здание Авторы Города Издания Издательства М ест аХранения Разделы
„*j Избран..
Рис. 7.40. Новая таблица в окне базы данных
5. Откройте новую таблицу, дважды щелкнув на ее значке. Она содержит те же данные, что и запрос создания таблицы в режиме таблицы (рис. 7.41).
Изменение данных с помощью запросов
Детская литеру Еремеева Оль! Мы вдем ребе 13-Детская .лнтер^Митрошенкое /.Мы ждем ребе 7 Поэзия '_ Хайям Омар \ Рубай 20" Психология • Вейс Францией Нравственные 6-Философия ;Платон :Федр [Счетчик!
ЩШР '*>
1999 199Э; 1995: 1994 1989.
21 1
1:1 11 2 4! '16
s
Рис. 7.41. Таблица, созданная при помощи запроса Новая таблица не наследует свойства полей и первичный ключ из первичных таблиц. Поэтому в полях Код Издательства и КодГорода отображаются действительно коды, а не значения из столбца подстановки, как в таблице Издания.
6. Закройте таблицу Старый фонд. Запрос создания таблицы может использоваться многократно для создания временных таблиц, при этом каждый раз будет создаваться новая таблица и удаляться старая.
Запрос удаления записей Запросы удаления записей позволяют отобрать требуемые записи и удалить их за один прием. Принцип создания такого запроса аналогичен созданию запроса обновления, однако, удаляя записи из связанных таблиц, необходимо помнить о том, что при этом не должна нарушаться целостность данных. Когда две таблицы связаны отношением «один-ко-многим», нельзя удалять записи из таблицы «один», если в таблице «многие» присутствуют соответствующие им подчиненные записи. Сначала должны удаляться записи в таблице «многие», и только потом соответствующие им записи в таблице «один». Чтобы упростить этот процесс, Access позволяет при определении связей между таблицами установить флажок каскадное удаление связанных записей (Cascade Delete Related Records). В следующем упражнении мы будем удалять записи из таблицы Издания, которые имеют значение Да в поле Списано. Однако таблица Издания связана отношениями «один-ко-многим» с таблицами А в т о р И з д а н и е и Ф о р м у л я р ы . А как у нас установлены флажки для этих связей? 1. Нажмите на панели инструментов кнопку Схема д а н н ы х (Relationship) pjl Дважды щелкните на линии связи таблиц Издания и АвторИздание. Появится диалоговое окно Изменение связей (Edit Relationships). Флажок каскадное обновление связанных полей (Cascade Update Related Fields) установлен, а флажок каскадное удаление связанных записей (Cascade Delete Related Records) — нет.
212
Занятие 7. Анализ и изменение данных с помошью запросов
Установите его (рис. 7.42). Теперь при удалении записи из таблицы Издания будет одновременно удаляться ссылка на это издание из таблицы Авторы.
J^J A BTQ рИ: дан ие
Издания КодИэдания
..
^КодИздания
.S ilti ,v
•
•
;•-' г^*ЗД'^ c-UHOa;tnii.i.?rr.aw,,.i. • ' ">^ :-' |,,,-'5д.- | ,_-'i |J|i . -.-,• Ш Т иг отношения:
'-. один-^с тети»!
Рис. 7.42. Установка флажка «каскадное удаление связанных полей»
Аналогично установите флажок каскадное удаление связанных записей (Cascade 'Delete Related Records) в связи между таблицами Издания и Формуляры. 2. Создайте запрос выборки на базе таблицы Издания. Дважды щелкните на элементе «*» в списке полей таблицы И з д а н и я — в бланк запроса будут включены все поля таблицы. Чтобы установить условия отбора, включите в бланк запроса поле Списано и введите в строку Условия отбора (Criteria) значение Да (Yes). Снимите флажок Вывод на экран (Show) для этого поля, так как его значение уже отображается (Издания.*) (рис. 7.43). \& Запрос! : запрос на выборку : .---.
т
--.-
.-
-L
' '
•- "
' ' '• 7 . " ' : i •;' М'
.
ш 'Ш
M^.jf
ЧиспоСтрани1|У ТипИэдания \ :| Заметки |^j Списано
1 Издания.* Издания
—
Списано 14з дания
Е
0
* ша
D
П
Да
№
", - ..-
•Г :'^
Рис. 7.43 Создание запроса, включающего все поля таблииы Издания
3. Запустите запрос выборки, чтобы проверить, правильно ли отобраны записи. Оказываются отобранными 5 записей.
Изменение данных с помошью запросов
21 3
Чтобы преобразовать запрос выборки в запрос удаления записей выберите команду Запрос > Удаление (Query > Delete) (или щелкните на панели инструментов на кнопке Тип запроса (QueryType)). Строки Сортировка (Sort) и Вывод на экран (Show) исчезают, появляется строка Удаление (Delete) (рис. 7.45). В первом столбце строки Удаление появляется значение Из (From), которое показывает, что будут удаляться записи из таблицы И з д а н и я . Во втором столбце строки Удаление появляется значение Условие (Where). Это означает, что этот столбец используется для определения критерия отбора записей для удаления. j§i Запрос 1 : запрос на удаление
ЧислоСграниЛ ТипИздания Заметки
|.
Списано
_т]
iU Издания,* Издания aJicru'pS.
израз
Из
Списано Издания Условие
Да
и;!!
ш
Рис. 7.44. Запрос на удаление
Нажмите кнопку Запуск (Run). Выводится сообщение с приглашением подтвердить удаление записей и информация о количестве записей, которые будут удалены (рис. 7.45). Их будет столько же. сколько было отобрано в запросе изменения. В этот момент еще можно отменить удаление. Для этого достаточно нажать кнопку Нет в окне сообщения. Нажмите кнопку Да, подтверждая удаление.
Из указанной табшцы будет удалено следующее число записей: 4. ':',•>" .
Рис. 7.45. Предупреждающее сообщение об удалении записей
Операция удаления записей будет выполнена, причем одновременно будут удалены соответствующие записи из связанных таблиц АвторИздание и Формуляры, если они там были.
21 4
Занятие 7. Анализ и изменение данных с ломошью запросов
4. Сохраните запрос, дав ему имя Запрос на удаление, и закройте его. В списке запросов окна базы данных появится новый запрос со значком удаления и'восклицательным знаком «!» (рис. 7.46). Ш БмбпмотекаДанные ; база дэнныи (Формат /, KUHCT p;rrop ;
:1Щ
Создание запроса в режиме конструктора
щ
j
Создание запроса с помощью мастера
^ Заде ржив зющ ие к ни ги
:.iri|. •• ы
:?•*!
Запрос на обновление
?J ?
Запрос на создание таблицы
fc? 1 ^
Издания^Авторы
•t^
Книги по авторам
i"'ip
Количестео изданий по разделам
. [^1 Образец Фильтра по форме
'
'
.'
.
.
-
.
-
^
Поступления за период
^
Средние сроки наличия книг на рукам
-
-
-
--
•
-
-
.
...-.
.-
.--.
..
.;
,£..™
Рис. 7.46. Запрос на удаление в окне базы данных
Запрос добавления записей Запрос добавления записей используется, чтобы скопировать данные из одной таблицы в другую. Так же как и другие запросы изменения, он строится на базе запроса выборки, поскольку сначала нужно отобрать те данные, которые в виде записей будут добавлены в целевую таблицу. В запросе выборки необходимо соединить требующиеся таблицы, включив в результат запроса те поля, которые должны составить добавляемые записи, а также поля для установления критериев отбора записей. Для добавления данных имена полей запроса и полей таблицы, в которую заносится информация, должны быть идентичными. Если имена различны, в бланке запроса добавления надо указать их соответствие. 1. Откройте таблицу И з д а н и я и пометьте несколько изданий как списанные. 2. Откройте в режиме конструктора запрос Запрос на создание таблицы. Этот запрос позволяет отобрать из таблицы И з д а н и я все записи, у которых установлен флажок Списано. Преобразуем этот запрос в запрос добавления. Выберите команду Запрос > Добавление (Query > Append) или щелкните на стрелке кнопки Тип запроса (Query Type) и выберите в списке команду Добавление (Append). Появляется диалоговое окно Добавление (Append), аналогичное диалоговому окну Создание таблицы (Make Table) (рис. 7.47). 3. В поле И м я таблицы (Table N a m e ) выбирается в списке имя таблицы, в которую будут добавляться записи. В данном случае по умолчанию в нем указана
Изменение данных с помошью запросов
21 5
таблица Старый фонд, участвовавшая в запросе создания таблицы. В эту таблицу мы и будем добавлять записи, поэтому нажмите кнопку ОК.
Добавление записей в таблицу цмя твбяицы;.. ^старый фонд!
•v
1.1 .;••
Рис. 7.47. Диалоговое окно Добавление
В бланке запроса добавления появляется дополнительная строка Добавление (Append To). В ней указываются имена полей таблицы, в которую будут добавлены записи (рис. 7.48). По умолчанию в строке Добавление (Append To) содержатся имена, совпадающие с именами полей в бланке запроса. Если какие-то имена в запросе и в таблице не совпадают, в соответствующем раскрывающемся списке можно выбрать поле таблицы, которое соответствует полю запроса. gp Запрос на создание таблицы : запрос на добавление
1 - -
даа " , КпдАвтсра ?•• |
1_
-~- «.
КодАвгсра
Фамилия i1. ;. ГодРожден>)
. "'• 4
:
'•
:
Г: "
.-.•• • •
ЦэтаПои^пки ЧислоСтраниц ТипИэдания Заметки Списано
±J
'.
~
\.
"'
^"^ КцдРаздепа Раэдеп
|у
! ъ
• п
- • |
"' :: , . * ,- ,.V ,. J , ^
i «,. •>:•
Код Издания Издания
: ЦВбсв .;; Сохранить как (File > Save As). Дайте новому запросу имя Запрос на добавление. Новый запрос изменения появляется в окне базы данных (рис. 7.49). 4. Откройте таблицу Старый фонд и посмотрите, какие записи были добавлены в таблицу. ЦбибяиотекаДанные: база данных (фермат Access ?.-., ШтШ\
Создание запроса в режиме конструктора Создание запроса с помощью мастера Задерживающие книги 1
;f*$ Slf
тптиггптшии Запрос на обновление
Запрос на создание таблицы
>•!
Запрос на удаление
_j3
И здания&Авторы
р
Книги по авторам
_JJ Количество изданий no pa зле лам ;£р ^
Образец Фильтра по Форме Поступления за период
$0$ Средние сроки наличия книг на руках
Рис. 7.49. Запрос добавления в окне базы данных Самой частой ошибкой при выполнении этого запроса является попытка вставить записи, у которых значение первичного ключа совпадает с уже имеющимися в таблице записями. Такие записи вставлены не будут, и будет выдано сообщение об их количестве.
Подведение итогов Завершив второе занятие по изучению запросов, вы научились: • группировать записи в запросе и подсчитывать количество записей в каждой группе; • подсчитывать среднее значение в числовом поле по каждой группе записей; • создавать сводные таблицы и выполнять их трансформирование; • создавать сводные диаграммы; • создавать и выполнять запросы изменения: добавлять, удалять и обновлять записи, создавать новые таблицы. Приобретенные навыки понадобятся на следующих занятиях, когда на базе запросов мы будем создавать другие объекты базы данных: формы, отчеты, страницы.
-О
и
2. О
е
ЗАНЯТИЕ 8
Знакомство с формами и элементами управления ТЕМА ЗАНЯТИЯ
На этом занятии вы узнаете: • для чего предназначены формы; • какие существуют режимы работы с формами; • что представляет собой конструктор форм; • какие существуют элементы управления в форме; • как их перемещать и изменять размеры; • как сохранить форму в базе данных; • как создать форму с помощью мастера автоформ.
Формы как средство ввода, просмотра и изменения данных
219
Для выполнения упражнений данного занятия потребуется файл Библиотека.mdb, который вы создали на Занятии З 1 . Откройте его. перед началом занятия.
Формы как средство ввода, просмотра и изменения данных
Microsoft Office Access 2003 позволяет организовать удобный и интуитивно понятный интерфейс пользователя для работы с данными двумя способами: • с помощью форм и отчетов; • с помощью страниц доступа к данным. На данном занятии мы познакомимся с формами, которые представляют собой традиционный способ организации интерфейса пользователя. Формами называются настраиваемые диалоговые окна, сохраняемые в базе данных в виде объектов специального типа, так же как таблицы и запросы. Во многих случаях формы являются более удобным способом ввода, просмотра и изменения данных, чем таблицы. Они содержат элементы управления: текстовые поля для ввода и правки данных, кнопки, флажки, переключатели, списки, надписи, а также рамки объектов для отображения графики и объектов OLE, с помощью которых осуществляется доступ к данным в таблицах. Элементы управления позволяют отображать данные полей таблицы в удобном и наглядном формате, выполнять проверку корректности данных при вводе. С помощью подчиненных форм можно в одном окне показать одновременно данные из главной и подчиненных таблиц, что тоже бывает очень удобно. Тем не менее нужно отметить, что часто хочется просмотреть сразу большое количество записей, найти или отобрать требуемую запись и тут же ее отредактировать. В этом случае удобный режим просмотра и редактирования данных в форме таблицы, который обеспечивает Access, оказывается очень полезным, и многие опытные пользователи не хотят от него отказываться. И это нормально. Только тогда рекомендую установить все возможные правила проверки вводимых данных как на уровне поля, так и на уровне записей, чтобы защитить эти данные от некорректного ввода.
Источником данных для формы может быть либо таблица, либо запрос. Как правило, формы, предназначенные для ввода данных, строятся на базе таблицы, так как при вводе нужно обеспечить ввод всех или большинства полей в таблице.
Примеры вы можете найти на сайте издательства www.piter.com на странице, посвященной этой книге.
220
Занятие 8. Знакомство с формами и элементами управления
Из этого правила бывают исключения. Например, в ситуации, когда таблица заполняется в несколько приемов, может быть несколько форм для ввода в нее данных, и, следовательно, в качестве базы для этих форм могут использоваться запросы.
Формы, которые должны в удобном виде представлять данные, как правило, строятся на базе запросов, так как они могут отображать не все поля таблицы или данные из разных таблиц. На этом занятии мы создадим достаточно простую форму и познакомимся с элементами управления, которые могут применяться в формах. Впоследствии вы сможете обращаться к материалу этого занятия как к справке для создания форм в своих приложениях. Сначала нужно определить, какие формы потребуются для работы с нашей базой данных Библиотека. Очевидно, нужна удобная форма для ввода новых изданий, так как если вводить данные прямо в таблицы, придется сначала открыть таблицу Издания и ввести все данные о новой книге, затем открыть таблицу Авторы и ввести автора или несколько авторов, если книг таких авторов в библиотеке еще нет. И, наконец, нужно открыть таблицу АвторИздание, чтобы связать записи в обеих таблицах: Авторы и Издания. Согласитесь, это не очень удобно. Форма для ввода издания, которую мы создадим, так и будет называться — Издания. Затем необходима форма, которая позволила бы легко найти нужную книгу нужного автора. Эту форму назовем Карточка автора, и она же обеспечит ввод данных об авторе. Кроме того, у нас будет форма Читатели, отображающая не только личные данные читателя, но и книги, которые он брал в библиотеке. И еще хотелось бы иметь формы, дающие возможность легко оформить выдачу книг читателю и, соответственно, сдачу книг. Мы создадим одну форму, но так, что ее можно будет использовать для выполнения и той и другой операции, и выглядеть она будет как две разные формы. Назовем ее Выдать книгу. Такие формы нам предстоит создать на протяжении ближайших занятий.
Режимы работы с формами Существует несколько режимов работы с формами: режим формы, режим таблицы, режим конструктора, режим сводной таблицы и режим сводной диаграммы. Режим работы выбирается так же, как и при работе с запросами: либо с помощью кнопки Вид (View) панели инструментов Конструктор форм (Form Design), либо с помощью соответствующей команды меню Вид (View) (рис. 8.1). Пользователи приложений Access работают с данными в базе данных в режиме формы: добавляют новые записи, удаляют или изменяют записи в таблице или запросе, являющемся источником данных для формы. По умолчанию форма открывается из окна базы данных именно в этом режиме. На рис. 8.1 показана форма И з д а н и я , которую нам предстоит создать, открытая в режиме формы.
Режимы работы с формами
'™l'~-:
-
т
. ш .
Рис. 8.1. Форма Издания, открытая в режиме формы
Название:
Название
Рис, 8.2. Форма Издания, открытая в режиме конструктор;
221
222
Занятие Э. Знакомство с формами и элементами управления
В режиме конструктора можно разрабатывать формы, изменять их структуру, внешний вид, добавлять и удалять элементы управления. Этим режимом обычно пользуются разработчики приложений Access, На рис. 8.2 показана та же форма Издания, открытая в режиме конструктора. Режим таблицы, так же как и режим формы, позволяет добавлять новые записи, удалять и редактировать записи в таблице, являющейся источником данных для формы. Однако в этом режиме не применяются свойства форматирования элементов управления, которые, собственно, и дают преимущества формам как средству ввода и отображения данных. На рис. 8.3 показана форма Издания, открытая в режиме таблицы. Как видите, она ничем не отличается от обычной таблицы. Режимы сводной таблицы и сводной диаграммы практически ничем не отличаются от соответствующих режимов для таблицы или запроса и используются, естественно, для представления и анализа сводных данных. Ш Издания : Форма Философия Утешение философией" и другие трзктаты Творения преподобного Максима Исповедника Религия Творения преподобного Максима Исгюв&дника Религия • Чтения и рассказы по истории России История ; Белая гвардия; Мастер и Маргарита Художественная литература :Федр Философия " Рубай .Художественная литература ^Медный всадник , Художественна я литература •Драмы Драматургия ; Африка Художественная литература О началах Философия Счастливые родители _ Детская литература Мы ждет ребенка Детская литература i Евгений Онегин -Художественная литература } Прощай оружие Художественная литература ^Понедельник начинается в субботу Фантастика ! Современный ..французский детективный .роман Детективы I Оправдание вечности Фантастика
•
M
J И
~ jJ-Mittj "• ;-'
,i!J
Рис. 8.3. Форма Издания, открытая в режиме таблицы
Режим конструктора форм Для создания форм в Access есть несколько мастеров, которые облегчают этот процесс, однако то, что получается в результате работы мастера, как правило, является только первым приближением к желаемому результату. Формы для того и создаются, чтобы предоставить пользователю максимальное удобство. Их разработке уделяется особое внимание, и нужно поработать в режиме конструктора, чтобы получить требуемый вид формы. Поэтому, прежде чем начинать
Режим конструктора форм
223
создавать формы для нашего приложения, посмотрим, что представляет собой конструктор форм, какие возможности имеются у разработчика форм спи-
Да1ШЫХ чтобы
'
' нт иых
°
ПКУ K o H C T
PV
KTO
P/Design) на панели инструментов окна базы данФ РМЫ единственнь ° ° ™ Р-здалсш - Область дан
3. Выберите в главном меню 1Access команду Вид > Заголовок/примечание фор, (View > Form e a d e r F o o t e r 1 . В макете появятся еще два раздела FormHHeader/Footer) 4. Выберите команду Вид > Колонтитулы (View > Page Header/Footer) Макет фопотображав
Рис. 8.4. Разделы формы Access
Структура формы Разделы макета имеют следующее назначение: • Заголовок формы (Form Header). Раздел заголовка добавляется в форму вместе с разделом примечания формы. В область заголовка можно поместить текст; Эта команда не отображается по умолчанию в меню View (Вид), поэтому нужно его t вернуть, подведя указатель мыши к двойной стрелочке на нижней кромке меню
224
Занятие 8. Знакомство с формами и элементами управления
графику и другие элементы управления. Если форма состоит из нескольких страниц, заголовок отображается только на первой ее странице. • Верхний колонтитул (Page Header). Раздел верхнего колонтитула страницы добавляется в форму вместе с разделом, определяющим нижний колонтитул. При печати многостраничной формы верхний колонтитул воспроизводится вверху каждой страницы. Эти два раздела используются только при печати формы, поэтому они отображается только в том случае, когда форма открыта в режиме предварительного просмотра. Разделы Верхний колонтитул и Нижний колонтитул используются обычно не при создании форм, а при создании отчетов аналогичной структуры.
• Область данных (Detail). Область данных определяет основную часть формы, содержащую представляемые данные. Этот раздел может содержать элементы управления, отображающие данные таблиц и запросов, неизменяемые данные, например, надписи, данные, которые запрашиваются у пользователя и в дальнейшем обрабатываются программно. • Н и ж н и й колонтитул (Page Footer). Раздел нижнего колонтитула страницы всегда добавляется в форму вместе с разделом, определяющим верхний колонтитул. При печати многостраничной формы нижний колонтитул воспроизводится в нижней части каждой страницы, Так же как и верхний колонтитул, он отображается, только когда форма открыта в режиме предварительного просмотра. • Примечание формы (Form Footer). Раздел примечания добавляется в форму вместе с разделом заголовка и отображается в нижней части формы. При печати многостраничной формы примечание формы воспроизводится только внизу последней страницы. Из всех разделов обязательным является только Область д а н н ы х (Detail), который создается по умолчанию. Остальные разделы могут быть добавлены с помощью команд меню, как мы это сделали ранее. Если форма уже содержит эти разделы, соответствующая команда отмечается флажком (рис. 8.5). 5. Для удаления разделов заголовка и примечания снимите эти флажки. Высоту раздела формы можно изменить, перетаскивая нижнюю границу раздела. Например, чтобы изменить высоту области данных, подведите указатель м ы ш и к нижней границе этого раздела так, чтобы он изменил форму (горизонтальная черта со стрелками), и переместите границу вверх (для уменьшения высоты) или вниз (для увеличения). Размер формы определяется ее правой и нижней границами. Правая граница макета формы позволяет задать ширину формы. Чтобы ее изменить, перетащите правую границу макета формы вправо или влево. Нижняя граница макета формы позволяет определить ее высоту. Чтобы изменить высоту формы, перетащите нижнюю границу макета формы вниз или вверх. На макете формы видны также вертикальная и горизонтальная линейки, которые предназначены для разметки формы и выделения нескольких соседних элементов управления.
Режим конструктора форм
225
Конструктор ^к Сводная таблица J£
Сводная диаграмма All+Enter
|j Object Dependencies ..,11 Список полей
м/
Колокгигулы J Заголовок/примечание Формы
1
J Область задач ! Панелиинструментов
Рис. 8.5. Меню Вид в режиме конструктора форм
Вертикальная и горизо? стальная полосы прокрутки позволяют просматривать части формы, оказавшиеся за границами экрана в режиме Конструктора формы.
Панели инструментов При работе в режиме конструктора форм используются три панели инструментов: •
Панель элементов (Toolbox) (рис. 8.6).
Рис. 8.6. Панель элементов
Эта панель предназначена для добавления в форму новых элементов управления. Наиболее часто применяемые элементы управления расположены прямо на панели. Остальные выводятся на экран при нажатии кнопки Другие элементы (More Controls) [$|Г. Кроме кнопок элементов управления, на панели элементов есть две специальные кнопки; Выбор объектов (Select Objects), Мастера (Control Wizards). Кнопка Выбор объектов (Select Objects) автоматически отжимается, когда пользователь выбирает один из элементов панели. Ее нужно снова нажать, если вы передумали размещать этот элемент. Нажатая кнопка Мастера (Control Wizards) обозначает, что при размещении элемента управления в форме запустится соответствующий мастер. При отжатой кнопке мастера не запуска8 Зак. 680
226
Занятие 8. Знакомство с формами и элементами управления ются. Мастер элементов позволяет создавать такие сложные элементы управления, как поля со списком, командные кнопки, группы элементов выбора." Практически для каждого сложного элемента управления существует свой мастер элементов. Их удобно использовать для обучения на начальном этапе работы с Access, а в дальнейшем они применяются только для выполнения стандартных операций. Панель элементов можно переместить по экрану в удобное место.
ЗАДАНИЕ Переместите панель элементов так, чтобы она оказалась прижатой к нижней границе окна приложения (рис. 8.7). ЦЗ Библиотека Формат
Сервис
Окно
Справка
Рис. 8.7. Панель элементов, прижатая к нижней граниие окна приложения Панель элементов появляется на экране по умолчанию всякий раз при переходе в режим конструктора. Если ее закрыть, то в следующий раз она не появится. Чтобы отобразить ее снова, выберите команду Вид > Панели инструментов (View > Toolbars), а затем установите флажок Панель элементов (Toolbox). Основные команды меню, используемые в режиме конструктора форм, продублированы кнопками панели инструментов Конструктор форм (Form Design)
Режим конструктора форм
22/
(рис. 8.8), с самыми полезными кнопками вы познакомитесь по мере их использования в процессе настройки формы.
Рис. 8.8. Панель инструментов Конструктор форм
Панель инструментов Формат (форма/отчет) (Formatting (Form/Report)) (рис. 8.9) предназначена для форматирования выделенных элементов управления. Функции большинства элементов этой панели аналогичны функциям элементов, которые можно увидеть на панелях инструментов Microsoft Office Word 2003, предназначенных для форматирования текста, поэтому дополнительных комментариев не требуется. Самый левый раскрывающийся список Объект (Object) отображает имя выделенного элемента управления формы и позволяет быстро выделить любой объект в форме, выбрав его имя в списке, Несколько кнопок справа позволяют задать цвета и стили оформления элементов управления и разделов формы. ПолеО
Tahoma
Рис. 8.9. Панель инструментов Формат (форма/отчет)
Элементы управления формы На панели элементов размещаются элементы управления, с которыми мы будем знакомиться на этом занятии, чтобы иметь общее представление о тех инструментах, которые есть у разработчика приложения Access. На следующих занятиях мы уже будем пользоиаться этими инструментами, чтобы создать формы нашего приложения. Внешний вид и поведение элементов управления определяется их свойствами. Свойства элемента, а также свойства всей формы или ее раздела можно увидеть в диалоговом окне Свойства (Properties). Окно Свойства (Properties) появляется на экране при нажатии на панели инструментов Конструктор форм (Form Design) кнопки Свойства (Properties) [Щ или при выборе одноименной команды в контекстном меню. Типы элементов управления Все элементы управления в Access делятся на три типа, различающиеся тем, как для них определяется источник данных: присоединенные, свободные и вычисляемые. Присоединенные элементы управления связаны с полями базовой таблицы, то есть той таблицы, которая является источником данных для формы. Если источником данных является запрос, то присоединенные элементы управления могут связываться с полями разных таблиц. В присоединенном элементе отображаются данные, содержащиеся в соответствующем поле таблицы, и при изменении дан-
228
Занятие 8. Знакомство с формами и элементами управления
ных в форме изменяется значение поля таблицы. В присоединенных элементах можно отображать все типы данных, которые существуют в Access. Свободные элементы управления с таблицами никак не связаны. Они предназначены либо для ввода информации, используемой потом в других целях (обычно макросами или программами VBA), либо для отображения объектов OLE, хранящихся в самих формах. Свободными элементами являются также все элементы, предназначенные для улучшения визуального восприятия форм, линии, прямоугольники, рисунки, надписи. Вычисляемые элементы управления — это такие элементы, значения которых рассчитываются на основе значений других элементов. В качестве источника данных для этих элементов служат выражения или функции. Элемент управления Поле Наиболее распространенными элементами управления являются текстовые поля (Text Box), так как они служат как для ввода, так и для отображения данных. Длина текста, вводимого в текстовое поле, ограничена 65 535 символами. Текстовые поля позволяют вводить произвольные значения (конечно, в соответствии с типом данных), однако можно ограничить множество допустимых значений с помощью масок ввода или правил проверки введенного значения. Обычно значения полей вводятся пользователем, однако их можно задать программно, присваивая значение свойству Текст (Text) этого элемента. Если в текстовом поле должен отображаться длинный текст, который не может поместиться в отведенную для этого поля область, в нем справа можно вывести полосу прокрутки. Для этого нужно установить значение свойства Полосы прокрутки (ScroUBars) равным По вертикали (Vertical), хотя по умолчанию оно имеет значение Отсутствует (None). Значением текстового поля может быть гиперссылка. Для этого, если поле является присоединенным, нужно, чтобы соответствующее поле в базовой таблице или запросе имело тип данных Г и п е р с с ы л к а (Hyperlink). Если поле является свободным или вычисляемым, нужно установить значение свойства Гиперссылка (Is Hyperlink) равным Да (Yes). 1. Щелкните на панели элементов на кнопке Поле (Text Box) Указатель изменит форму. Щелкните на области данных формы. На форме появится элемент управления Поле (рис. 8.10). В диалоговом окне Свойства (Properties) отображаются свойства этого поля. Вы видите, что значение свойства Д а н н ы е (Control Source), определяющее источник данных для элемента управления, не заполнено, значит, этот элемент управления является свободным. Когда вы размещаете поле на форме, одновременно с полем создается еще один элемент управления — Надпись (Label). Он выводится слева от поля и представляет собой значение свойства Подпись (Caption) или (если свойство Подпись не задано) свойства И м я поля (Name) связанного с ним поля таблицы и заканчивается двоеточием (:). Такой способ отображения принят по умолчанию, но его можно изменить.
Режим конструктора форм
229
ЩФорма1 : Форма
.-:да , Нет ,', Параметр базы данных
Рис. 8.10. Элемент управления Поле и его свойства
2. Выделите на панели элементов кнопку Поле (Text Box). В диалоговом окне Свойства будут отображаться значения свойств текстового поля, которые устанавливаются по умолчанию, — стандартные свойства (рис. 8.11). б5[й"Поле" - станаартныв свойства
] Данные | События | Другие | Бг.е Гч.'Род H.II iqj.-iH . l\Всегда^ _ .Отсутствуют ±£l.I. ;^ет""" \ Зсм Тип фона
.,..,- Обычньй ;;у топленное^
Тип границы .
'•
9!£У IcT?^eJ_v.
EZ :Сверетонкая
Цвет те*сга ^Tahoma Г6 ^ ^ Курсив . . . . (ПоДчейкнут
'обычный, jHej Ыет"™"" 1Да_^_
Подписи с даоето Позиция подписл Позиция Подшей
Koj^I |0см шбычное
Рис. 8.11. Значения по умолчанию свойств элемента управления Поле
230
Занятие 8. Знакомство г формами и элементами управления
Два свойства, Добавление подписи (Auto Label) и Подписи с двоеточием (Add Colon), имеют значение Да (Yes). Изменив эти значения, вы можете избежать присоединения надписи к текстовому полю или добавления двоеточия в конце надписи. Следующие два свойства — Позиция подписи X (Label X) и Позиция подписи Y (Label Y) определяют положение подписи относительно нижнего левого угла текстового поля, а свойство В ы р а в н и в а н и е подписи (Label Align) — положение текста подписи в элементе управления Надпись (Label). Изучая свойства элемента управления Поле, можно видеть, каким образом вы влияете на его вид, например, меняя цвет фона, шрифт, цвет и тип границы поля, стиль оформления и т. д. Изменив значение свойства Режим вывода (Display When), можно сделать, чтобы поле выводилось только при печати формы или, наоборот, не выводилось при печати. Ряд свойств позволяют динамически управлять отображением и действием текстового поля в форме. Например, можно заблокировать изменение данных в поле, установив значение свойства Блокировка (Locked) равным Да (Yes). С большинством свойств мы познакомимся на следующих занятиях в процессе создания форм. Элемент управления Надпись
_
Элемент Н а д п и с ь (Label) используется для размещения в форме фиксированного, то есть не изменяющегося при переходе от одной записи к другой, текста: заголовков полей, заголовка формы, различных поясняющих текстов. Пользователь не может изменить надпись никаким образом. Надписи бывают двух типов: связанные и несвободные. Связанные надписи связываются с другими элементами управления (текстовыми и другими полями ввода) и служат заголовками этих полей (см. рис. 8.10), так как сами поля не имеют видимых на экране заголовков. Такие надписи автоматически создаются при размещении поля и присоединяются к нему. При отображении формы в режиме таблицы связанные надписи становятся заголовками столбцов. 1. Перетащите из панели_элемептов в область данных формы элемент управления Надпись (Label) Поместите его на форме под элементом управления ПолеО. Появится маленький прямоугольник. 2. Начинайте сразу вводить текст надписи: проба. После окончания ввода нажмите клавишу Enter. Справа от нового элемента управления появится значок — смарт-тег. Надпись окажется выделенной (рис. 8.12). Появление смарт-тега означает, что Access выявил некоторую ошибочную ситуацию и обращает на это ваше внимание. 3. Подведите указатель к этому значку, справа появится стрелка. Щелчок на ней выводит список действий, которые Access предлагает выполнить' (см. рис. 8.12). Одно из этих действий — Связать надпись с элементом управления. Надписи, которые создаются с помощью кнопки Надпись (Label) на панели элементов, являются свободными, так как не связываются ни с какими
Режим конструктора форм
231
элементами управления. Эти надписи служат для оформления внешнего вида формы или для помощи пользователю, однако они не отображаются на экране, когда форма выводится в режиме таблицы.
Связать надпись с элементом управление Справка по данной ошибке Пропустить ошибку
Рис. 8.12. Элемент управления Надпись и смарт-тег
4. Выберите указанное действие. Появится диалоговое окно со списком элементов управления формы (рис. 8.13). В нем нужно выбрать тот элемент управления, к которому будем присоединять надпись. Так как в данном случае в списке только один элемент, его и выберите. Новая надпись окажется присоединенной к элементу управления ПолеО, а старая надпись уже не будет связана с ним. Связь надписи
Заберите элемент управления, с гогорь»*
Г
Рис. 8.13. Присоединение надписи к элементу управления
Итак, появление в форме несвязанной надписи Access воспринимает как ошибку. Кроме этой, существует еще несколько ситуаций, которые Access считает ошибкой и предупреждает об этом, отображая смарт-тег. Чтобы увидеть, какие ошибки контролируются системой, нужно в списке действий выбрать команду Параметры проверки ошибок. Флажки в диалоговом окне П а р а м е т р ы (рис. 8.14) показывают, какие из правил проверки включены. Если снять флажок Новые несвязанные надписи, смарт-тег не будет появляться рядом с новой надписью.
232
Занятие 8. Знакомство с формами и элементами управления
F Недопустимые сгойет&э элементов улравйее^я !•? Обычмь-й оыибкн Б отчетах
!>!•
J
Рис. 8.14. Параметры проверки ошибок Те же флажки отображаются на вкладке Проверка ошибок диалогового окна Параметры, которое открывается при выполнении команды Сервис > Параметры (Toots * Options). Выделите элемент управления Проба, и в окне Свойства (Properties) будут показываться свойства этого элемента. ЗАДАНИЕ Измените текст надписи, установив свойство Подпись (Caption). Изменяйте другие свойства и смотрите, как меняется вид надписи на форме. Максимальная длина надписи — 2048 символов. Элементы управления выбора
^^___^_
Элементы управления выбора используются, когда нужно предоставить пользователю возможность выбора из нескольких возможных вариантов. В Access есть три типа таких элементов -- Выключатель (ToggleButton), Переключатель (Option Button) и Флажок (Check Box). Любой элемент управления выбора представляет значения данных логического типа, то есть может принимать значения О (Нет) или 1 (Да). На рис. 8.15 представлена форма, которая содержит разные типы элементов управления выбора. В верхней строчке изображены элементы, значения которых равны Да — выбранные, а в нижней строчке — эти же элементы, когда они имеют значение Нет — не выбранные. В ы к л ю ч а т е л ь (Toggle Button) имеет значение Да, когда он включен, и Нет, когда выключен. П е р е к л ю ч а т е л ь (Option Button) имеет значение Да, когда он выбран, и Нет, когда не выбран. Флажок (Check Box) имеет значение Да, когда он установлен, и Нет, когда снят. Если элементы выбора используются для отображения логических данных в таблице, нужно определить для них значения по умолчанию, в противном случае в новой записи значения этих элементов не будут определены. Значения по умолчанию могут быть заданы либо в свойстве З н а ч е н и е по у м о л ч а н и ю (Default Value) диалогового окна Свойства
Режим конструктора форм
233
(Properties), либо с помощью процедуры VBA, либо с помощью макроса. Всякий раз, когда пользователь щелкает на элементе выбора, его значение изменяется на противоположное.
выключатель
^ Перемкните пь г
Переключатель
Рис. 8.15. Элементы управления выбора У каждого из этих элементов управления есть свойство Тройное состояние (TripleState), значение которого может быть Да или Нет. Если установить значение этого свойства Да,то кроме двух логических состояний Да ил и Нет, элемент выбора будет иметь еще одно состояние — Null. Однако в большинстве случаев лучше не использовать третье состояние, но обязательно присвоить такому элементу значение по умолчанию, чтобы значение соответствующего логического поля в таблице было определено.
Хотя все три типа элементов управления выполняют одну и ту же функцию, выключатели и переключатели лучше использовать в составе элемента управления Группа переключателей (Option Group), а в том случае, когда пользователь должен просто указать Да или Нет (пометить что-то «галочкой»), используйте флажок. Группа переключателей позволяет объединить отдельные элементы выбора таким образом, что пользователь всегда может выбрать только один элемент из группы. Пример группы переключателей с именем Период изображен на рис. 8.15. Если в отображаемой записи исходной таблицы или запроса есть несколько логических полей, создайте на форме несколько независимых флажков (см. рис. 8.15). Причем при желании можно визуально объединить их в группу, если нарисовать вокруг них прямоугольник (см. элемент управления Прямоугольник (Rectangle) ниже). ЗАДАНИЕ В ту же форму, где вы размещали элементы управления Поле и Надпись, добавьте каждый из перечисленных элементов управления выбора. Установите для них значение по умолчанию. Переключитесь в режим формы кнопкой Вид (View) и посмотрите, как они работают.
234
Занятие 8. Знакомство с формами и элементами управления
Группу переключателей используют, когда количество возможных вариантов выбора невелико (3-6). Каждый элемент управления выбора в группе представляет один вариант. Если вариантов больше, лучше использовать другие типы элементов управления, такие как списки или поля со списками. Элемент управления Группа переключателей сложнее простых флажков и переключателей, поэтому будем учиться создавать его. Для начала воспользуемся мастером. 1. Щелкните на кнопке Мастера (Control Wizards), а затем поместите на форму
элемент управления Группа переключателей (Option Group) £!fj. На форме появится пустая рамка группы со стандартным наименованием и первое диалоговое окно мастер:). В нем нужно внести подписи для каждого элемента группы (рис. 8.16). Создание грчппы переключателей \ Группа переключателей содержит набор кнопок.» !фламкое ил1->еыключателей, Выберите одинш":.. ; вариантов. , .. ' : • Задайте подпись для каждого перавлючатепч: Подписи:
Рис. 8.16. Создание группы переключателей 2. Предположим, нужно создать группу переключателей, в которой пользователь будет выбирать тип оплаты товара. Введите три подписи: наличные, безн а л и ч н ы е , бартер (по одной на каждой строке) и нажмите кнопку Далее (Next). Создание грчппы леоекяючатёяей Задать Переключатель, истользуотьй лоумопчамигсТ.
••-. ", • - - - ; - -
•;• Отмени"
< Й-яздд
д^злее v
Сочи»;
Рис. 8.17. Определение переключателя по умолчанию
Режим конструктора форм
3. На следующем шаге нужно выбрать, какой ип элементов управления будет выбран по умолчанию, — можно указать, что по умолчанию никакой из элементов выбираться не будет. Обычно тот элемент, который должен быть выбран по умолчанию, — это первый элемент группы. Поэтому оставьте все так, как предлагает мастер (рис. 8.17), и перейдите к следующему шагу. 4. На следующем шаге определяются значения каждого элемента управления. Пусть Тип оплаты — это справочник, состоящий из трех записей; 1 — наличные, 2 — безналичные, 3 — бартер. В каких-то ситуациях могут быть другие значения, в данном случае оставляем значения, предлагаемые мастером (рис. 8.J8) и переходим к следующему шагу. Сознание группы переключателей
SM,9.iehie п;>кбаие
•
f
с ге-1*к>
Г"
" Оттеиа
Рис. 8.19. Определение типа элемента управления и способа оформления
5. Выберем тип элемента управления (по умолчанию мастер предлагает использовать Переключатель) и оформление элементов управления. Элементы управления предназначены именно для улучшения внешнего вида формы, и есть несколько типов оформления. Вы можете попробовать все виды и посмот-
236
Занятие 8. Знакомство с формами и элементами управления
реть на образце слева, как они могут выглядеть. Выберите понравившийся вариант и перейдите к следующему шагу. 6. Остается только определить имя группы — Тип оплаты, и группа готова. Нажмите кнопку Готово (Finish) (рис. 8,20). На форме появилась группа с тремя переключателями. Группа выделена, обратите внимание на ее свойства. Создание грчппы переключателей Введите подпись длягруплш леег• Щфа
Adobe Photoshop Image Adobe® Table 3.0 Bitmap Image CorelDRAW 10,0 Exchange Graphic CorelDRAW 10.0 Graphic lathType 4.0 Equation Media Clip
Oil SH'3
Г" Б виде значка
,'иент нового объекта типа 'Adobe Illustrator
Рис. 8.30. Создание элемента управлений Свободная рамка объекта
Установите переключатель Создать из файла (Create from File). Вместо списка Тип объекта (Object Type) полнится поле Файл (File), в котором нужно указать путь к нужному файлу.
248
Занятие 8. Знакомство с формами и элементами управления
3. Чтобы выбрать файл, нажмите кнопку Обзор (Browse) (рис. 8.31). Можете выбрать любой файл с рисунком. В данном примере используется карта, на которой изображены владения древних финикийцев. |.1мштг1«шпяд;тяддп '""
'iterAc2003\Ch08\
-
Г" 8 виде з«а-«-
'
-
-
:
i' i
Ч,
•:
- .- - ,
S-Jfo д Рождения
•• •
-*1Го д Смерти
..'_.,
-, .у
^'
-j
,
'- '.
и '..:.[.'..''
J
Щ
'•:•!• с' i
.-
j
i'.
:.',•!•
•
.
i
1 -
J.:.. in. i :
v
?1КартсчкаДв тораПод форма
•^Образование . Г -j •' |3эдотки
1 • -•
-.
:
:
•4 - •-•-..
. 4 ;,
в
^
i
!'
3} .
J =•-' '
:
•i г- -t i !..: ij-.i
1 .-
\ :| ; г1
- •' :
1
•:•
.
,
.
'•VJ"1--'^
'.' ','.;.v '.: *.; : '..* :. '..'.ь ;.'.' ' '. • •* — : .".""'••. """"^"учшж"''"1"
* .г tJOHCI :'.•: - ' * С^паггь данны^
I ' Г
!
.^,1,.^% ,4-*к%'
Jj jg ! |
Рис. 9.4. Внедрение подчиненной формы
266
Занятие 9. Составные и связанные формы
S. Установите курсор в ячейку, соответствующую этому свойству в окне свойств этого элемента управления, и выберите из раскрывающегося списка имя формы: КарточкаАвтораПодформа (рис. 9.4). Если окно свойств на вашем экране не отображается, нажмите на панели инструментов Конструктор форм кнопку Свойства (Prioperties) щ]. В элементе управления П о д ч и н е н н а я форма/отчет (Subform/subreport) отобразится форма КарточкаАвтораПодформа. 9. Установите значение свойства И м я (Name) для этого элемента управления: КарточкаАвтораПодформа. Предлагаю придерживаться правила, согласно которому имя элемента управления в форме или отчете совпадает с именем источника данных. На имя элемента управления часто приходится ссылаться в выражениях, макросах и программах VBA, поэтому предлагаемое правило именования объектов наиболее удобно для этих целей. Поэтому при создании формы обязательно обращайте внимание на имена элементов управления, которые создаются по умолчанию, и изменяйте эти имена в соответствии с этим правилом. В примерах этой книги мы будем постоянно это делать. Обратите внимание на два свсшства элемента управления П о д ч и н е н н а я форма/отчет (Subform/Subreport): Основные поля (LinkMasterFields) и Подчиненные поля (LinkChildFields). Данные свойства показывают те поля, которые являются связанными в обоих формах. Мастер форм автоматически заполняет :-)ти поля, основываясь на связях между базовыми таблицами форм. Именно поэтому подчеркивалась важность правильного проектирования структуры таблиц базы данных и связен между таблицами. Если вы тщательно выполните ;лу работу в начале, -\о в дальнейшем мастера смогут многое выполнить за вас. Если связи между таблицами не заданы явно, связанными полями будут считаться те поля в таблицах, которые имеют одинаковые имена и содержат данные одного типа. При этом связанное поде в таблице для главной формы должно бытг. ключевым. Если и это условие в ваших таблицах не выполняется, вам вручную придется указать, какие поля являются связанными. В нашем примере эти поля заполнены: КодАвтора - два одноименных поля в источниках данных главной п вспомогательной формах. Если при разработке составных форм данные в главной и подчиненной формах не синхронизированы, проверяйте значения свойств Основные поля (LinkMasterFields) и Подчиненные поля (LinkChildFields). Именно здесь, как правило, и кроются ошибки. Когда Access не может определить связывающие поля, эти ccoiicTBa элемента управления остаются пустыми. Их можно установить вручную: щелкните
Создание подчиненной формы
267
на одном из этих свойств и нажмите появившуюся справа кнопку построителя. Откроется диалоговое окно с предложением указать имена связанных полей (рис. 9.5). Слева — раскрывающийся список со всеми нолями таблицы, на которой базируется главная форма — КарточкаАвтора, справа •- список с полями запроса АвторКниг, на котором базируется подчиненная форма. Выбирая в списке поля, можно установит!) связь вручную. Однако для нас все свойства установил мастер, поэтому закройте это окно, нажав кнопку Отмена (Cancel). Ш Связь с полями подчиненной Формы ПОД.и ,0иИ( :,- R-,ffl
|КодАвтора 1 ...и. А..,.У. .. .•.';..;;
^_*i.
:__
i-| |КодАбтора ,,—^_ 71
; ''АеторКниг' для каждой записи 'Авторы', поле сеяэм
Рис. 9.5. Диалоговое окно, позволяющее задать связь с полями подчиненной формы Остается только несколько изменить размеры подчиненной формы. 10. Схватите правую границу подчиненной формы и потяните вправо. Установите ширину формы такой, чтобы в ней были видны все поля подчиненной формы. При этом, если потребуется, увеличьте ширину главной формы, переместив вправо ее правую границу. 11. Переключитесь в режим формы, нажав на панели инструментов кнопку Вид (View). Карточка автора будет иметь вид, представленный па рис. 9.6.
Имя
Сергеи Соловьев
ГСд рождения Гсдсиерп-
JMo скове кий умнее р с и т ет ,~фи ло i
Год Чтения и рассказы по истории России Правда
Рис. 9.6. Составная форма КарточкаАвтора
268
Занятие 9. Составные и связанные формы
Чтобы посмотреть, как работает такая составная форма, попробуйте с помощью кнопок перемещения по записям просматривать разные записи в главной таблице. Вы видите на форме дна ряда кнопок перемещения по записям. Нижний ряд кнопок относится к главной форме, а верхний — к подчиненной. Используя кнопку перехода к следующей записи, просмотрите несколько записей в таблице Авторы и убедитесь, что для каждой записи в главной форме отображаются только связанные с ней записи из таблицы И з д а н и я . Но все-таки эта форма еще требует дальнейшей настройки, чтобы улучшить ее внешний вид. Для этого нужно снова переключиться в режим конструктора и познакомиться со свойствами формы.
Изменение свойств формы Для просмотра свойств формы нужно выделить всю форму. Это можно сделать либо выбрав команду Правка > Выделить форму (Edit > Select Form), либо щелкнув на квадратике в левом верхнем углу окна конструктора формы, где сходятся вертикальная и горизонтальная линейки. Когда форма выделена, в области выделения появляется маленький черный квадратик. 1. Переключитесь в режим конструктора и откройте диалоговое окно Свойства (Properties), если оно не отображается на экране. 2. Выделите главную форму, в окне свойств будут отображаться ее свойства. Изменяя значения свойств формы, вы будете управлять самой формой, ее внешним видом и поведением. Свойства формы сгруппированы и размещены на нескольких вкладках.
Вкладка Данные На вкладке Д а н н ы е (Data) сосредоточены свойства, которые определяют, какие данные будут отображаться в форме и как пользователь сможет работать с этими данными: изменять, просматривать, удалять и т. д. (рис. 9.7). Какие данные будут отображаться и форме определяет свойство Источник записей (RecordSource). Значением этого свойства может быть имя таблицы, запроса или инструкция SQL. Если источником данных является таблица, в форме выводятся все записи этой таблицы. Если же источником данных является запрос, отображаться будут те данные, которые определены полями вывода в запросе, и реально это могут быть данные из разных таблиц. Инструкция SQL — это тот же запрос, только не сохраненный в базе данных Access как отдельный объект, а хранящийся прямо в форме. В нашем примере источником данных для формы является таблица Авторы. Если нужно, чтобы в форме отображались не все записи из исходной таблицы, то либо пишут специальный запрос, выбирая нужные записи и делая его источником данных для формы, либо устанавливают фильтр в форме. Чтобы установить фильтр, используют свойство Фильтр (Filter). Значением свойства Фильтр
Изменение свойств формы
269
является выражение, представляющее собой предложение WHERE инструкции SQL SELECT. Например, если нужно отобразить в нашей форме Tie всех авторов, а только тех, чьи фамилии начинаются с буквы С (русской). Тогда свойство Фильтр должно иметь следующее значение: [Фамилия] like "С*".
.
.. 'VI,, 1!
| | | | • -!!-.'
Ь^р,1 ддчыэл
т
'" • •'• •' ••- ••'
i l...'i.ir,
-1.1-!>•>.!•-; ; . |
• ....... . Динамический^набор . , •, v V,. ._; Отсутствует !•!.,•.'>..(.'•;•;. . /'
Рис. 9.7. Свойства формы, вкладка Данные
Свойство Порядок сортировки (OrderBy) позволяет отсортировать записи в форме. Опять же, если источником данных для формы является таблица, то по умолчанию записи будут выводиться в форме в том порядке, н котором они содержатся в таблице. Если же источник — запрос, то порядок сортировки записей определяется тем, как этот порядок задан в запросе. Тем не менее, в форме тоже есть свойство, которое позволяет определить порядок сортировки записей по умолчанию. При работе с формой пользователь легко может изменить порядок сортировки записей. Этот порядок сохраняется как раз в этом свойстве. Когда в следующий раз вы откроете форму, записи окажутся отсортированными в указанном вами порядке: Несколько иначе обстоит дело с фильтром. Точно так же при работе с формой пользователь может задать фильтр, и он сохранится в свойстве Фильтр. Но если вы закроете форму и откроете ее вновь, то записи не будут фильтроваться. Чтобы их отфильтровать, нужно щелкнуть кнопку П р и м е н е н и е фильтра на панели инструментов. Тогда фильтр, который сохранен в форме в свойстве Фильтр, будет применен. Но для этого нужно, чтобы свойство П р и м е н е н и е фильтров формы имело значение Да. В противном случае кнопки панели инструментов, позволяющие установить фильтр в форме, и соответствующие команды меню будут не доступны пользователю. ЗАДАНИЕ Внесите значение свойства Фильтр и проверьте, как работают два описанных свойства.
Четыре свойства Разрешить изменение (Allow Edits), Разрешить удаление (Allow Deletions), Разрешить добавление (Allow Additions) и Ввод д а н н ы х (DataEntry) определяют режим работы с данными через форму. Устанавливая эти свойства, можно
270
Занятие 9. Составные и связанные формы
запретить или разрешить редактирование данных в форме, запретить или разрешить удаление и добавление записей. Например, намереваясь запретить удаление записей в форме КарточкаАвтора, свойство Разрешить удаление (Allow Deletions) установите ранным Her (No). Форма, предназначенная только для шюда поиых записей, должна открываться в режиме и иода д а н н ы х . Этот режим отличается от обычного тем, что в форме при открытии не отображается ни одной записи, и пользователь должен ввести н сохранить введенные данные. Чтобы открыт]) форму в этом режиме, нужно для свойства Ввод д а н н ы х (Data Entry) установить значение Да (но умолчанию оно имеет значение Нет). Возможность изменять данные в форме определяется также типом отображаемого набора записей. Если источником данных для формы является таблица, то по умолчанию в ней отображается динамический набор записей, который позволяет ре/[актировать записи. По если источником данных является запрос, то иногда в форме отображается статический набор записей, который позволяет только просматривать записи, но не позволяет менять их. Тип набора записей, отображаемых в форме, определяется свойством Тип набора записей (RecordsetType). Форма К а р т о ч к а А в т о р а предназначена и для отображения, и для ввода новых записей в таблицу Авторы, но давайте запретим удаление записей с помощью этой формы. !. Установите значение свойства Разрешить удаление (Allow Deletions) равным Нет (No). 2. Форма К а р т о ч к а А в т о р а в качестве источника записей имеет таблицу Авторы. Если вы хотите видеть записи is карточке, отсортированные по фамилиям аьтороп, установите значение свойства Порядок сортировки (OrderBy). Переключитесь в режим формы и установите курсор в поле Фамилия. Затем отсортируйте записи в форме по значению этого поля, нажав кнопку По возраст а н и ю (Sort Ascending). Снова переключитесь Б режим конструктора, и вы увидите, что свойство Порядок сортировки теперь имеет значение Авторы.Фамилия.
Вкладка Макет Свойства на вкладке Макет (Format) определяют внешний вид формы. 1. Чтобы посмотреть эти свойства, откройте вкладку. Перечисленные на ней свойства представлены на рис. 9.8. Свойство П о д п и с ь (Caption) определяет текст, который выводится в заголовке окна формы (см. рис, 9.6). Форма КарточкаАвтора была создана с помощью мастера автоформ, и значение свойства по умолчанию было установлено ранным значению Авторы (по имени таблицы-источника записей). 2. Установите значение этого свойства равным значению К а р т о ч к а А в т о р а . Свойство Режим по у м о л ч а н и ю (DefaultView) позволяет указать режим (определяющий вид формы), в котором форма будет отображаться по умолчанию. Всего существует пять режимов:
Изменение свойств фирмы
Подписи
2/1
j Данные I События j Другие ] Scs } Карточка автора! ., , , Одиночная 1±орма
Режим таблицы ..... , ,
Да
Да Да ... ,,, ..... Нет Изменяемая ': A* IZ •Все Кнмпг-з загрытич Кногжа KuHteKcTH Ширина
М.-ГШ, _11\П..НИ!'!ГИ.|\
(отсутствует) "Внедренный -'Фрагмент '•По центру . Нет u ••lO" U |10™. . |Нет_.ш 0см
Рис. 9.8. Диалоговое окно Свойства, вкладка Макет
• О д и н о ч н а я форма (Single Form), в которой одновременно видна только одна запись. • Ленточная форма (Continuous Forms). Одновременно выводятся несколько записей в виде таблицы и можно определить формат этой таблицы.
• Таблица (Datasheet). Записи в форме показываются в виде стандартной таблицы — "datasheet. • Сводная таблица (PivotTable). Этот режим позволяет создать сводную таблицу над данными, отображаемыми в форме, и работать с этой таблицей. • Сводная диаграмма (PivotChart). Данные из источника данных формы отображаются в виде заданной пользователем сводной диаграммы. Следующие свойства — Режим формы (Allow Form View), Режим таблицы (Allow Datasheet View), Режим сводной таблицы (Allow PivotTable View), Режим сводной диаграммы (Allow PovotChart View) — позволяют указать, в каких режимах разрешено работать с формой. Когда форма открывается, устанавливается режим, заданный по умолчанию. Но при желании с помощью меню Вид (View) можно переключиться в другой режим. Если запретить какие-то режимы, установив значение
2/2
Занятие 9. Составные и связанные формы
соответствующего свойства равным Нет, то будут недоступны и соответствующие пункты в меню Вид (View). В форме КарточкаАвтора режимом по умолчанию является Одиночная форма (Single Form), то есть в ней будут отображаться только данные об одном авторе. Чтобы посмотреть всех авторов в режиме таблицы, в меню Вид (View) нужно выбрать пункт Таблица (Datasheet). А нот режимы сводной таблицы и сводной диаграммы запрещены, так как соответствующий свойства имеют значение Нет. Свойство Полосы прокрутки (Scroll Bars) позволяет указать, какие в форме нужны полосы прокрутки. Полосы прокрутки появляются справа или снизу, если заданные размеры формы меньше, чем требуется, чтобы вывести все ее поля. Они позволяют просматривать те поля, которые не поместились в форму. Можно разрешить либо обе, либо только вертикальную, либо только горизонтальную прокрутку, либо вообще не разрешать прокрутку в форме. Мы создаем Карточку автора, в которой полей немного, и вся необходимая информация помещается в заданные границы, поэтому полосы прокрутки в ней не нужны. 1. Установите значение Отсутствуют свойства Полосы прокрутки (Scroll Bars), выбрав его в списке. Область выделения (Record Selectors), расположенная у левой границы формы, используется обычно в формах, в которых выводится одновременно несколько записей. Тогда, чтобы выделить нужную запись, просто щелкают на этой области рядом с записью. 2. В случае простой формы эта область не нужна, поэтому установите значение этого свойства равным Нет (No). Кнопки перехода (NavigationButtons), или навигационные кнопки расположены на нижней границе формы и используются для перемещения по записям. Обычно этих кнопок пять: переход к первой записи, переход к предыдущей записи, переход к следующей записи, переход к последней записи и создание новой записи. Последняя кнопка недоступна, если и форме не разрешено добавление записей. Если в форме будет всегда отображаться только одна запись, эти кнопки следует удалить, установив значение данного свойства равным Нет, Свойство Автоматический размер (AutoResize) имеет по умолчанию значение Да. Это означает, что форма всегда будет открываться с заданными размерами. Если пользователь увеличит или уменьшит ее, а затем закроет, его установки не сохранятся. Если пользователь хочет, чтобы установленные им размеры формы сохранялись после закрытия, нужно установить значение этого свойства равным Нет. Свойство В ы р а в н и в а н и е по центру (AutoCenter) позволяет всегда центрировать форму в окне приложения. Если требуется, чтобы она открывалась всегда в определенном месте не в центре, нужно изменить значение этого свойства, заданное по умолчанию, — установите его равным Нет. На размер формы влияет также свойство Тип границы (Border Style). Оно имеет следующие значения: • Отсутствует (None); • Тонкая (Thin);
Изменение свойств формы
27.3
• Изменяемая (Sizable); • Окно диалога (Dialog). Если значение равно Отсутствует (None), форма будет выводиться без заголовка и без границы. Изменить размер такой формы невозможно. По умолчанию устанавливается значение И з м е н я е м а я (Sizable). Тогда пользователь сможет легко изменить размер формы мышью. Граница Тонкая (Thin) ио внешнему виду не очень отличается от изменяемой, но на самом деле произвольно изменить размер формы нельзя, хотя можно развернуть ее на все окно приложения, свернуть, вернуть к фиксированному размеру с помощью кнопок заголовка или оконного меню. Значение Окно диалога (Dialog) позволяет создать форму, размеры которой не изменить никак. Окна диалога используются, если нужно не отобразить данные из таблиц, а наоборот, запросить какие-то данные от пользователя, то есть во всех случаях, когда нужно зафиксировать размер формы так:, чтобы пользователь не мог его изменить. Следующие несколько свойств касаются кнопок, которые размешаются во всех окнах Windows в заголовке окна. Кнопка оконного меню (ControlBox) расположена 1 в левом углу заголовка формы . Оконное меню содержит стандартные команды Восстановить (Restore), Переместить (Move). Размер (Size), Свернуть (Minimize), Развернуть (Maximize) и Закрыть (Close). Аналогичные функции выполняют кнопки размеров окна и кнопка закрытия в правой части заголовка окна. Чтобы неопытные пользователи случайно не потеряли нужную форму, все эти кнопки иногда убирают, а нужные кнопки создают прямо в форме с помощью элемента управления Кнопка (Command Button). Пример такой формы представлен па рис, 9.9.
Имя роэций Г&Д рождений
И
;1Шкрпа в Равенне Чоэднеантичный ученый и философ, "последини римлянин"
,•] Название "Утешение философией" и другие трак,Наука
-•:
s
ii.
1990.
.н]_ J1
Рис. 9.9. Форма с отключенными кнопками заголовка Это меню называют также системным меню.
2/4
Занятие 9. Составные и связанные формы
Остальные свойства формы мы будем рассматривать по мере необходимости в процессе создания других форм нашего приложения.
Вкладка Другие Первые два свойства, Модальное окно (Modal) и В с п л ы в а ю щ е е окно (Pop up), определяют тип окна формы. Когда форма является модальной, пользователю не доступны ни меню, ни панели инструментов, он не сможет щелкнуть пне пределов данной формы и активизировать другую форму. Это очень полезное свойство, так как часто нужно запретить пользователю выполнять какие-то действия до тех пор, пока он не закончит ввод данных в открытую форму. Оно позволяет выполнять контроль действий пользователя. Обычно для модального окна свойство Тип г р а н и ц ы устапавлмнают равным значению Окно диалога. Всплывающее окно отличается от модального тем, что пользователь может активизировать другие окна, хотя ему также не доступны меню и панели инструментов. Но какое бы окно он ни открыл, всплывающая форма всегда останется на переднем плане. Для всплывающего окна свойство Тип г р а н и ц ы обычно устанавливают равным значению Тонкая. Свойство Цикл табуляции (Cycle) позволяет определить правила прохождения курсора в форме. Оно имеет три значения: Все з а п и с и (All Records), Текущая зап и с ь (Current Record) и Текущая страница (Current Page). При установленном значении Все з а п и с и при нажатии клавиши Tab курсор из последнего поля текущей записи переходит к первому полю следующей записи. Это удобно при работе с табличными формами. По умолчанию установлено значение Текущая запись. В этом случае курсор из последнего поля записи возвращается к первому полю этой же записи. Значение Текущая с т р а н и ц а используется в многостраничных формах, когда нужно, чтобы из последнего поля на текущей странице формы курсор возвращался к первому полю той же страницы. Остальные свойства на этой вкладке позволяют связать с данной формой строку меню, панель инструментов, контекстное меню, определить файл подсказки. Мы будем работать с этими свойствами на Занятии 14, когда будем учиться создавать собственные меню и панели инструментов.
Вкладка События На вкладке С о б ы т и я (Events) содержатся свойства, которые определяют действия, выполняемые в форме при возникновении различных событий. События формы возникают в результате каких-то действий пользователя или самой системы, а свойства событий определяют, как система должна реагировать на возникновение этих событий. Для каждого события существует стандартная реакция, которая предусмотрена системой Access. Но пользователь может определить нужную реакцию, указав в соответствующем свойстве макрос или процедуру VBA, выполнение которых и обеспечит требуемую реакцию на событие. Мы познакомимся с некоторыми из этих событий на Занятии 13, когда будем учиться создавать макросы.
Установка свойств подчиненной формы
275
Установка свойств подчиненной формы Отдельно рассмотрим, как устанавливать свойства подчиненной формы. Чтобы изменить свойства подчиненной формы, не обязательно открывать эту форму в режиме конструктора, — можно прямо в главной форме сначала выделить элемент управления Подчиненная форма/отчет (Subform/Subreport), а затем щелкнуть на области выделения формы в подчиненной форме. Тотда в окне Свойства (Properties) будут отображаться свойства подчиненной формы (рис. 9.10). а
и с > 9
!. ,,г,.ч.|; r.
- '
Рис. 9.13. Создание связанных форм G. Нажмите кнопку Далее (Next) л следуйте указаниям мастера: выберите стиль оформления С т а н д а р т н ы й ( S t a n d a r d ) (или тот, который вам понравится), оставьте предлагаемые по умолчанию имена форм Читатели и Ф о р м у л я р ы и нажмите кнопку Готово ( F i n i s h ) . На л кране появится одна форма Читатели, в которой будут отображаться все поля таблицы Ч и т а т е л и . В области заголовка формы (он отделен линией от области данных) вы видите «кнопку* Формуляры (рис. 9.14).
Код читателя
ОГЧ1 -I Эй
Год рсокд. л. Хасансияя 6-3-1Q9
Запись: jiijLJr
Рис. 9.14. Связанные формы Читатели и Формуляры
Создание связанных форм
2/9
Слово «кнопка» поставлено в кавычки, так как на самом деле это элемент управления Выключатель (Toggle Button), который имеет два состояния: включен (нажат) и выключен (отжат). По умолчанию он отжат.
7. Щелкните на выключателе Ф о р м у л я р ы . Будет открыта форма Ф о р м у л я р ы , и она станет активной, а выключатель окажется в состоянии «включен». Подведите указатель к области заголовка этой формы и переместите ее вниз так, чтобы было видно обе формы (рис. 9.14). 8, Попробуйте с помощью навигационных кнопок полистать записи в форме Читатели, вы увидите, как синхронно будут изменяться записи в форме Формуляры.
г
. -• Чтобы проверить работу форм, в таблицы Читатели и Формуляры должны быть введены данные.
Форма Читатели является простой формой, в которой все элементы управления размещены в один столбец. Форма Формуляры является ленточной формой и позволяет просматривать одновременно несколько записей. Вы можете убедиться в этом, если увеличите высоту этой формы, потянув вниз нижнюю границу. Теперь, как всегда, с помощью конструктора форм подправим уже почти готовые формы, чтобы придать им нужный вид. 1. Сначала закройте форму Ф о р м у л я р ы . Для этого достаточно щелкнуть на выоючателс Формуляры (он при этом окажется в состоянии «выключен»). 2. Когда на экране останется только форма Читатели, переключитесь в режим конструктора. Обратите внимание, что эта форма отличается от формы КарточкаАвтора. Вверху присутствует раздел Заголовок формы (Form Header) (рис. 9.15). Можно изменить цвет этой области, чтобы она отличалась от области данных.
Изменение цвета раздела формы 1. Щелкните на заголовке раздела (там, где написано: Заголовок формы (Form Header)), выделив тем самым раздел. 2. Откройте окно Свойства (Properties) и раскройте вкладку Макет (Format). Окно Свойства (Properties) выводится на экран и когда форма открыта в режиме формы. Это бывает полезно, когда хотят проверить работу формы, так как окно отображает свойства того поля, в котором находится фокус (точка ввода). Чтобы оно не мешало вводу или просмотру данных в форме, его закрывают. При работе же в режиме конструктора его нужно открыть, поскольку, создавая форму, приходится очень часто изменять ее свойства УЛИ свойства ее разделов и элементов управления.
280
Занятие 9. Составные и связанные формы Ш Читатели
Рис. 9.15. Форма Читатели в режиме конструктора 3. Найдите свойство Цвет фона (Back Color) и введите число 8421440 или нажмите кнопку построителя и выберите понравившийся вам цвет в диалоговом окне Цвет (Color), Вы можете как выбрать этот цвет на основной палитре, так и определить дополнительный пнет, нажав кнопку Определить цвет (Define Custom Colors). Как только вы переместите курсор в другое поле, например, нажав клавишу Enter, область заголовка формы поменяет цвет.
Блокирование элементов управления Элемент упранления КодЧитателя не должен меняться или вводиться пользователем. Поэтому лучше сделать так, чтобы курсор ввода (фокус) никогда не попадал в это поле. 1. Выделите элемент управления КодЧитателя и раскройте вкладку Данные (Data) диалогового окна Свойства (Properties). У каждого элемента управления есть три свойства, определяющие доступ к нему. Два из них находятся на вкладке Данные (Data): Доступ (Enabled) и Блокировка (Locked). Когда значение свойства Доступ ( E n a b l e d ) для поля ввода равно Да, курсор ввода не попадает в это поле, то есть оно становится недоступным. Когда значение свойства Б л о к и р о в к а (Locked) для поля ввода равно Да, курсор в поле попадает, но не позволено изменять данные в этом поле, то есть оно становится заблокированным. 2. В данном случае установите значение свойства Доступ (Enabled) равным Нет (No), а значение свойства Б л о к и р о в к а (Locked) равным Да (Yes).
Создание связанных форм
2о\
Если значение свойства Доступ (Enabled) установить равным Нет, окажутся затененными и надпись, присоединенная к этому полю, и текст в поле. Это -ie очень удобно.
3. Раскройте вкладку Макет (Format). На ней находится свойство Вывод на э к р а н (Visible). Если установить это свойство равным Нет (No), элемент управления не будет показываться в режиме формы. Это свойство менять не будем, но поменяем цвет фона, чтобы выделить это поле как недоступное. Найдите свойство Цвет фона (Back Color) и выберите на палитре цветов серый цвет (такой же, как цвет фона раздела Область д а н н ы х (Detail)). Можете просто скопировать значение этого поля из свойств раздела Область данных.
4. Закройте форму, сохранив изменения макета.
Изменение макета формы ленточного типа 1. Откройте в режиме конструктора форму Формуляры. Это форма ленточного типа — в разделе заголовка отображаются заголовки столбцов, а строки данных размещаются в разделе Область д а н н ы х (Detail) (рис. 9.16).
•* SeroftoB'X Фетны.
;
-
-
-
-: :' "
• •*•>;№ Размер > по размеру данных (Format > Size > To Fit).
Создание формы Издания
293
3. Подведите указатель к маркеру выделения в центре нижнего края элемента Название (указатель должен превратиться в вертикальную двунаправленную стрелку) и щелкните дважды. Высота обоих элементов управления будет увеличена в соответствии с новым размером шрифта.
Выравнивание элементов управления Чтобы форма выглядела красиво и аккуратно, рекомендуется выравнивать размеры и местоположение элементов управления, 1. Сдвиньте поля в первом столбце ближе к меткам. Сначала сдвиньте поле Наз в а н и е так, чтобы его левый край отстоял от левой границы формы на 3 см. После этого выделите элементы управления Название, КодРаздела, КодИздательства, КодМеста и выберите команду Формат > Выровнять > По левому кран: (Format > Align > Left), Все выделенные элементы будут выровнены по левому краю самого левого элемента (у нас это был элемент управления Название). 2. Выровняйте аналогично, если нужно, элементы управления во втором столбце. Если вы аккуратно размещали левый край элементов управления, все они будут одинаковой ширины и выровнены по левому краю. Если их размеры оказались разными, можно сделать их одинаковыми командой Формат к Размер > по самому широкому (Format » Size * To Widest) (или по самому узкому). Аналогично можно выровнять выделенные элементы управления по высоте, если вы меняли их высоту вручную.
Можно просто установить нужное значение свойства Высота (Height) на вкладке Макет (Format) для всех выделенных элементов одновременно.
3. Выровняйте, если хотите, все надписи во втором столбце по правому краю (чтобы выделить все надписи, щелкните на каждой из них левой кнопкой мыши, удерживая нажатой клавишу Shift). 4. Выровняйте расстояние по вертикали между всеми элементами. Выделите все элементы управления во втором столбце и выберите команду Формат > Интервал по в е р т и к а л и > Сделать р а в н ы м (Format > Vertical Spacing > Make equal). 5. Выровняйте по этим элементам остальные элементы в каждой строке, «подтянув» их к верхнему или нижнему краю. 6. Увеличьте ширину элементов управления Название и Заметки (рис. 10.3). В нижней части формы осталось место для размещения подчиненной таблицы. 7. Сохраните форму под именем И з д а н и я .
294
Занятие 10. Оформление формы и ввод данных через форму
н; • '-ЗДатаПокупк Чиою apiinni; аЧиспоСгрании
Рис. 10.3. Элементы управления главной формы Издания
Некоторые разработчики для выравнивания элементов управления в форме любят использовать сетку. По умолчанию сетка всегда выводится в форме, хотя се можно отменить, выполнив команду Вид > Сетка (View > Grid) (тогда снимется флажок слева от этой команды). Частоту линий сетки можно изменить. Для этого используются два свойства формы, которые находятся на вкладке Макет (Format): Число делений по X (Grid X) и Число делений по Y (Grid Y). Они указывают число делений сетки в 1 см по горизонтали и вертикали соответственно. Максимальное число делений — 64. Перемещая элементы управления в форме, вы можете выполнить команду Формат > В ы р о в н я т ь > по узлам сетки (Format > Align > То Grid). В этом случае элемент управления переместится так. чтобы его левый верхний угол находился в ближайшем узле сетки. Точно так же можно выровнять по узлам сетки сразу несколько выбранных элементов. Раскройте меню Формат (Format) и найдите команду Привязать к сетке (Snap to Grid). Если эта команда помечена галочкой, установлен режим «привязки к сетке». Это значит, что когда вы перемещаете выбранный объект или объекты, они перемещаются дискретно по узлам сетки. Аналогично изменяются размеры объектов. Если вы выключите этот режим, щелкнув на этой команде, перемещение элементов управления и изменение их размеров будет выполняться плавно, Если режим привязки к сетке включен, то для плавного перемещения или Ш изменения размеров элементов управления формы выполняйте эти действия при нажатой клавише Ctrl.
Создание формы Издания
295
Изменение последовательности перехода между элементами управления При работе с формой переход от одного элемента управления к другому осуществляется щелчком или клавишей Tab (сочетанием клавиш Shift+Tab для перехода в противоположном направлении). С помощью мыши можно сразу перейти к любому элементу управления в форме. С помощью клавиатуры переход от одного элемента управления к другому осуществляется в заданной последовательности. По умолчанию последовательность перехода определяется порядком создания элементов управления в режиме конструктора. Изменить эту последовательность позволяет диалоговое окно Последовательность перехода (Tab Order) (рис. 10.4), содержащее список всех элементов управления в форме. Для изменения последовательности перехода нужно изменить порядок следования элементов в списке, перетаскивая элементы списка мышью.
Г
-. '
;-'..;:
."
-
8S- S ~ .+ 4*?№'- , • С
: :
- SyASrarre одну игм неогс-льмз строк с llCm .i « i:- Jt !j;t!ii ПОЛ'.» i-r,'j.^,;,|i
j
:
:
«с
|
Название КодРаздепа КодИздатепьстеа Год1';.дэния Код Города
* -
Том Иэдвние ТипИз дания Ко дМ ее т а ТипОбпожки Отмена
{ . . .,.
ч.| &STG:
|
Рис. 10.4. Изменение последовательности перехода Чтобы отобразить диалоговое окно Последовательность перехода (Tab Order) в режиме Конструктора формы выберите команду Вид > Последовательность перехода (View > Tab Order) или щелкните правой кнопкой мыши па форме и выберите в контекстном меню команду Последовательность перехода (Tab Order).
Создание подчиненной формы ЗАДАНИЕ Создайте форму ленточного типа ИзданияПодформа. Форма должна строиться на запросе, который объединяет таблицы АвторИздание и Авторы. Запрос должен включать два поля из таблицы АвторИздание: КодИздания (для связи с главной формой), КодАвтора (это поле содержит столбец подстановок и будет использоваться для выбора автора из списка) и Имя (из таблицы Авторы). В форму включите только поля КодАвтора и Имя. Форма ИзданияПодформа должна выглядеть в режиме конструктора, как показано на рис. 10.5, а в режиме формы — как на рис. 10.6. 1. Откройте форму И з д а н и я в режиме конструктора и сдниньте максимально вправо.
296
Занятие 10. Оформление формы и ввод данных через форму S3 ИзданиеПодФорма : форма
:
Им
•^ 'Облает;, дамш>
' -- •
, ,. ,'
Все
j
и
.Все
,, ,'.,,,,. :',:нДа"
Кнопки переполз , , - . . , д^ Раздели те льна е линии . , . , , . ; .. Да - Д$тоизтичеогий размер. . , - ,1,1 1. AJ : ВырагшвдаиегоиеCTJTV .-. .", . ,, - :Нет :
;
Кнопка оконного меннэ . . , . . , + . . Да Кнопки размероб окна , . , . . , , , . . . Все •• Кнопка кентекстнай справки Нет , .- ., ... - 11,998см ш,-с1-^а -... . ; in-rcr-rreyeTjl Рисунок и . " - . - . , . , Ти^шсгнва,1, . . н . . . - . , , i . , .Внедренным Масштабы рисунка . . . - . .-..'.-; Фрагмент быравчивание сис^н«а . , . . , • , / . ; - По центру ;.' М05вИ*оеЙпо1!нен в , i Нет Числе д^чений ПО it - , , , , ,',., , , 10 ; Числе Д-егкмий те ¥ . , , , , . , . % ; ,:-. ю . н^т
J :
^d.'
:\
Рис. 10.9. Свойства формы
2. В поле ввода свойства Р и с у н о к (Picture) введите путь и имя файла рисунка. Для этото воспользуйтесь помощью построителя. Нажмите кнопку построителя справа от поля ввода, появится диалоговое окно Выбор рисунка (Insert Picture). Это диалоговое окно является стандартным диалоговым окном Windows для открытия файлов. Выберите в списке П а п к и папку Styles (Program Files\Microsoft Office\Office\Bitmaps\Styles). Появится список файлов нескольких графических форматов (рис. 10.10). 3. Выделите файл Globe.wmf и нажмите кнопку ОК. Путь и имя файла появятся в ноле ввода свойства Рисунок (Picture). С помощью следующих четырех свойств можно настроить отображение фонового рисунка. Свойство Тип рисунка (Picture Type) вы уже знаете (см. Занятие 8, раздел «Элемент управления Свободная рамка объекта*). Он определяет метод, применяемый Access для присоединения рисунка к форме. Т и п В н е д р е н н ы й (Embedded) означает, что рисунок будет сохранен в самой форме, а Связанный (Linked) предполагает, что в форме будет сохранен только путь к файлу рисунка. Следующие три свойства для нас новые. С помощью свойства Масштабы рис у н к а (Picture Size Mode) можно определить размеры фонового рисунка. Для
Оформление формы
299
вывода рисунка исходных размеров используется значение Ф р а г м е н т (Clip}. При выборе значения Вписать в р а м к у (Stretch) рисунок растягивается или сжимается по горизонтали и по вертикали до размеров формы; при этом возможно изменение пропорций рисунка. Выбор з н а ч е н и я По размеру р а м к и (Zoom) приведет к растяжению или сжатию рисунка до максимально по::;можных размеров с сохранением пропорций, при которых не происходит ойрезка рисунка.
!* ACBLENDS.GIF ljjJACEXPDTN.GIF
felACINDSTR.GIF jrJACRICEPR.GIF
ftlACSNOSTNGIF jgj ACSUMIPT.GIF STONE.BMP
Д;Ж>1 КН ) Ы
Рис. 10.10. Диалоговое окно Выбор рисунка Если пы вставляете рисунок, запимаюипгн не всю форму, c i i o i i c r n o В ы р а в н и вание рисунка (Picture Alignment) позволяет определить положение (фонового рисунка в форме, а свойство Мозаичное з а п о л н е н и е (Picture Tiling) тгшоляег выводить повторяющееся изображение рисунка. Например, если вы захотите попробовать другой рисунок списка в папке Styles, вам нужно будет установить значение свойства Масштабы р и с у н к а (Picture Size Mode) равным Фрагмент (Clip), а значение свойства Мозаичное заполнение (Picture Tiling) равным Да. 4. В данном случае установите значение свойства Масштабы рисунка (Picture Size Mode) равным Вписать в рамку (Stretch). 5. Переключитесь в режим формы (рис. 1 0 . J 1 ) . 6. Закройте форму И з д а н и я , сохранив все изменения макета. ЗАДАНИЕ Попробуйте указать разные файлы в качестве фонового рисунка форг^.1 и, изменяя значения описанных свойств, посмотреть, как они будут влиять на изображение рисунка.
300
Занятие 10. Оформление формы и ввод данных через форму
Гт Место хранений! |болыиая комната _^J - 'Цена: I
7,00р.
tun обложен;' |ч-есткая
чн
Д$т* покупки; | 01 01.1991
|;?;|Б книгу включены важнейшие философские произведения позднеримского Шмыслителя Аниция Манлия Торквата Северина Боэция (ок.480-525 гг,), "Комментарий Ик Порфирию" и теологические трактаты в переводе на русский язык переводятся ч kn*nRhifi..R тпяктлтл.'Утяииние Аиппгп
Боэций
и
[
_ :-\" "
•: • .
1 ...,l,jj:'-,l.ttj и> 26 .
•
' •
.'
-• '"
Рис. 10.11. Вставка фонового рисунка формы Чтобы удалить фоновый рисунок формы, очистите поле свойства Рисунок (Picture).
Стили оформления формы Если форма создается с помощью мастера, он запрашивает у пользователя, какой из существующих стилей применить к создаваемой форме. Мы при создании форм везде применяли стиль «Стандартный». Однако изменить стиль оформления формы легко, и когда форма уже создана. Для этого используется команда Формат > Автоформат (Format > AutoFormat) или кнопка Автоформат (AutoFormat) на панели инструментов. 1. Откройте в режиме конструктора форму КарточкаАвтора. 2. Нажмите кнопку на панели инструментов Автоформат (AutoFormat) ШИ . Появится диалоговое окно Автоформат (AutoFormat). Щелкните на кнопке Параметры (Options), чтобы вывести дополнительные поля окна (рис. 10.12). 3. В списке Форма - автоформат (Form AutoFormats) выберите стиль Камень (Stone).
При этом в центре окна отображается образец выбранного стиля. Стили определяют цветовую палитру формы, применяемые шрифты и типы границ объектов формы. Флажки и нижней части формы позволяют выбрать, какие группы элементов стиля применить к форме: шрифт, цвет или границы. 4. Оставьте флажки установленными по умолчанию и нажмите кнопку ОК.
Оформление формы
Диффузмый Камень Международный Наждачная бумага Официальный Промышленный Рисовая бумага Рисунок Су ми
301
- . - . , :
ДЙ-1Щ
Чертеж
Рис. 10.12. Диалоговое окно Автоформат
5. Переключитесь в режим формы. Теперь она будет выглядеть как на рис. 10.13. Однако вы можете не только использовать встроенные стили оформления форм, которые предлагает Access, но и создать собственные стили. Например, вы хорошо потрудились над дизайном формы, выбрали цвета, шрифты для надписей и элементов управления, фоновые цвета или рисунки, и теперь хотите, чтобы гак же красиво выглядели все формы, которые вы создаете.
.трудов &3ro.:RC8;sE-
-
! ,-,, = , . , , , •-, ,,
.
.
.
:
. ! ; , , ; ,.• •,
^Творения преподобного tv Мартис
Рис. 10.13. Форматирование формы с помошью функиии Автоформат! На самом деле рекомендуется, чтобы все формы приложения были оформлены в едином стиле, разные стили нашего примера нужны только для того, чтобы показать вам возможности системы.
302
Занятие 10. Оформление формы и ппод данных черея форму
1. Когда ваша любимая форма открыта в режиме конструктора, нажмите кнопку Автоформат (Autoformat). 2. В диалоговом окне Автоформат (Autoformat) нажмите кнопку Настройка (Customize). Появится диалоговое окно Настройка автоформата (Customize AutoFormat) (рис. 10.14). 1 ;
настройки -" -; ; . - • • - : - - •-• -V. - -'
- • _-
•-
Г сшй^ние ншюго стипд на П а р а м е т р ы (Tools > Options), чтобы открыть диалоговое окно Параметры. 2. Раскройте вкладку Формы и отчеты (Forms/Reports). По умолчанию, если на компьютере установлена Windows XP, соответствующий флажок па эюп вкладке установлен. Если вы его сбросите, элементы управления не будут наследовать сноипта оформления из темы Windows. Еще один параметр на этой вкладке определяет шаблон, который иг-поль.^уется при создании новой формы — Шаблон формы (Form Template). По умолчанию он имеет значение N o r m a l . Шаблон определяет стандартные значения свопстп, в том числе и свойств оформления, для элементов управления формы. Вы можете изменить этот шаблон. Для этого введите в это поле имя той формы, которую вы хотели бы использовать в качестве шаблона. Тогда все новые формы.
304
Занятие 10. Оформление формы и пвол данных через форму
которые будут создаваться после этого, будут иметь те же разделы и свойства элементов управления, что и в этой форме. Но этот шаблон действует только на формы, созданные в режиме конструктора. Мастер форм использует другие шаблоны.
Работа с данными с помощью формы Теперь, когда мы создали почти все необходимые формы, будем учиться работать с этими формами, то есть выполнять те операции с данными, ради которых эти формы и создавались. Откройте в режиме формы форму И з д а н и я . Вы видите в форме первую запись таблицы И з д а н и я , а в подчиненной форме отображаются связанные записи из таблицы Авторы. Перемещение по записям Для работы с данными в режиме формы используются кнопки на самой форме и панель инструментов Режим формы (Form View) в верхней части окна Access. Сначала посмотрим, что можно сделать с помощью самой формы. В нижней части формы видно, что всего в форме отображается 25 записей, причем текущей (показываемой в данный момент) является запись 1. Пользуясь кнопками перехода можно последовательно просмотреть все записи, однако это имеет смысл, только если число записей невелико. В противном случае последовательный перебор — слишком долгое и утомительное занятие. Иногда целесообразнее, просмотрев несколько первых записей, быстро перейти на последнюю запись и, листая 1 в обратном порядке, просмотреть ближайшие к ней записи. Можно установить курсор прямо в текстовое поле, где отображается номер текущей записи, и ввести туда число. После нажатия клавиши Enter в форме будет отображена запись с этим номером.
Изменение данных в текущей записи Поскольку все поля в форме редактируемы, удается легко модифицировать данные в любом поле текущей записи. Перемещение в форме между текстовыми полями, используемыми для ввода и редактирования данных, происходит так же, как в запросах и таблицах, за исключением того, что клавиши перемещения курсора вверх и вниз перемещают курсор между полями, а не между записями. Итак, с помощью мыши или клавиши Tab вы помещаете курсор (точку ввода) в нужное поле и изменяете данные. При этом, если это текстовое поле, вы просто изменяете текстовую строку в этом поле; если это поле со списком, Это занятие действительно напоминает перелистывание страничек в книге или перебор карточек.
Работа с данными с помощью формы
305
щелкаете на стрелке и выбираете в списке нужное значение, как в стандартных диалоговых окнах Windows. В поле, предназначенном для ввода достаточно длинного текста, например, Заметки и нашей форме, выполняется автоматический перенос текста на новую строку, а когда текст не помещается в отведенное для него поле, в нем появляется вертикальная полоса прокрутки (рис. 10.16). Другой способ — нажать Shift+F2 и ввести весь текст в диалоговое окно Область ввода (Zoom) (рис. 10.17). В книгу включены важнейшие Философские произведения позднеримского мыслителя Боэция
Рис. 10.16. Полоса прокрутки в текстовом поле
3 книг/ включены важнейшие философские произведения зднеримского пь спите ля Аниция Манлия Торквата Северина Боэция tc.^au-S^S гг.). 'Комментарий к Порфирию" и теологические трактаты в переводе на русский язык переводятся впервые. В трактате "Утешение философией" Ёоэиий отстаивает свободу человеческого духа, Исключительную роль в самосовершенствовании человека он отводит философии. Произведение дается в новом переводе. Издание снабжено примечаниями и статьей, Для философов, читателей, интересующихся классическим наследием мировой философской мысли.
Шрифт.
Рис. 10.17. Диалоговое окно Область ввода
Длина вводимого в текстовое поле текста ограничивается не областью на экране, а длиной поля в таблице. Поэтому, если требуется вводить длинные тексты, используйте тип данных MEMO, который обеспечивает практически неогран.iченный объем данных (текстовое поле — только до 255 символов). Элементы управления формы имеют многие из свойств, которые определены для полей таблицы: формат поля, маска ввода, значение по умолчанию, условие на значение, сообщение об ошибке и т. д. Если эти свойства установлены для поля таблицы, они будут применяться независимо от того, вводите ли вы данные в это поле в режиме таблицы или через форму. Если же эти свойства установлены а форме, они будут применяться только при вводе данных через эту форму — в другой форме можно установить другую маску ввода или пропустить проверку вводимых данных. Поэтому предпочтительнее все ограничения на ввод устанавливать при определении полей таблицы (см. Занятие 3 }. При этом, если в форме установить условие назначение поля, отличное оттого, что вы установили в таблице, то проверяться будут оба условия. Если вы установите значение по умолчанию, отличное оттого, что определили в таблице, то свойство элемента управления подавляет свойство поля таблицы.
306
Занятие 1 0. Оформление формы и ивод данных через форму
Если для поля определены маски ввода, как, например, в поле Дата покупки, эта маска ввода появляется, как только ны щелкнете на этом поле или введете первый символ. Свойства, влияющие исключительно на способ отображения данных, — маска ввода и формат поля, — наследуются только при перетаскивании полей из списка полей в форму, как это делалось в форме Издания, или при использовании мастера форм. Причем если потом изменить значения этих свойств в описании поля таблицы, эти изменения не отобразятся в форме (в форме останутся старые значения).
Все введенные изменения в поля записи будут сохранены в таблице при переходе к новой записи (для этого нужно щелкнуть на одной из кнопок перехода). После этого введенные изменения уже нельзя отменить. Пока вы еще не перешли к другой записи, изменения отменить очень легко. Для отказа от изменений текущего поля нажмите клавишу Esc, и значение этого поля вернется к старому варианту, если же вы успели изменить несколько полей, нажмите клавишу Esc еще раз — все поля в записи будут, иметь старые значения. A4S
г^х/
Если форма составная (как, кстати, в нашем случае), то запись в главной форме сохраняется, как только вы щелкнете на любом поле в подчиненной форме.
Можно отменить последнее сохранение записи, если сразу после сохранения выбрать команду Правка »• Восстановить запись (Edit > Undo Saved Record). Но если этой команды в меню Правка (Edit) нет, а вместо нее присутствует команда Отмена невозможна {Can't Undo), значит, вы опоздали, и придется все восстанавливать вручную.
Если не удается изменить данные в форме, причина может заключаться в следующем: • поле, в которое вы вводите данные, заблокировано — проверьте свойства элемента управления Блокировка (Locked), Доступ (Enabled); • редактирование данных в форме запрещено — проверьте свойства формы Разрешить изменения (Allow Edits) и Тип набора записей (Recordset Type)); • источником данных в форме является запрос, в результирующем множестве которого не разрешены изменения или разрешены только частично (можно изменять только некоторые поля) (см. раздел «Изменение данных в результирующем множестве запроса», Занятие 7).
Добавление новой записи В форме Издания можно не только просматривать и изменять записи, но и вводить новые.
Работа с данными с помощью формы
30/
1. Чтобы добавить запись в таблицу И з д а н и я , нажмите кнопку Новая з а п и с ь (New Record) П ЯЗ. Такая кнопка находится как на панели Кнопки перехода (Command Button) в нижней части формы, так и на панели инструментов Режим формы (Form View). Можете использовать любую из них. Но если вы установили значение свойства формы Кнопки перехода (Command Button) равным Нет, то есть запретил и их, а добавление записей в форме разрешено (свойство Разрешить добавление (Allow Addition) равно Да), то кнопка на панели инструментов останется доступной для ввода новой записи. Другие кнопки панели инструментов Режим формы мы рассмотрим в конце данного занятия.
В форме появится пустая запись (все ее поля пусты, кроме тех, у которых установлены значения по умолчанию). Курсор ввода устанавливается в первое в последовательности обхода, установленного при создании формы, поле (рис. 10.18).
'- -:• •
".I • i Рис. 10.18. Форма, открытая в режиме ввода записи
Обычно при вводе новой записи удобнее пользоваться клавиатурой, а не мышью. Для перехода между полями используйте клавиши Tab или Enter, к чему вы больше привыкли. При вводе данных в поле со списком можно ЕШОдить первые буквы текста, и значение из списка будет автоматически подставлено в это поле. Маски ввода ускорят ввод в такие поля, как Дата или. Телефон. Пока вы выполняете ввод данных в поля главной формы, в области выделения записи с левой стороны формы находится значок редактирования (рис. 10.19).
308
Занятие 10. Оформление формы и ввод данных через форму Ш Издания: форма
Название;"- ;]Русские тайны Парижа 1
Раздел;' • : ••
цена; [ :50,:ср.
4*тэпокупки: ; \г 12,2002 Чиспрстраниц,; \
27
' ..tJLi.Ut.Si
Рис. 10.19. Ввод новой записи в главную форму
Значок редактирования появляется, как только вы введете первый символ в первое г юле формы, и отображается до тех пор, пока запись не будет сохранена. Пока этот значок есть, можно нажать клавишу Esc и отменить ввод. Но как только, заполнив последнее поле, вы попадете в подчиненную форму, запись сохранится и значок исчезнет. 2. Выберите автора в раскрывающемся списке в поле Ф а м и л и я (рис. 10.20). Оба поля в'подчиненной форме будут заполнены, так как здесь мы ничего не должны вводить, а должны связать только что созданную запись в таблице Издания с одной из записей (или с несколькими) в таблице Авторы. И опять-таки, пока вы не перешли на другую запись, значок редактирования показывает, что запись изменяется. Но как только вы переместите курсор ввода на следующую запись в подформе или щелкнете мышью на любом поле главной формы, данные из подчиненной формы сохранятся в таблице АвторИздание. Причем в данном случае сохраняются не те данные, что вы видите в подформе (она, если вы помните, построена на запросе), а КодИздания текущей записи в главной форме и КодАвтора, который вы только что выбрали в подчиненной. Итак, данные о книге полностью введены, и можно переходить к вводу следующей записи. Поскольку текущей является последняя запись в таблице, чтобы ввести новую запись, достаточно просто перейти на следующую запись, щелкнув на кнопке перехода. Если вы раздумали вводить новую запись, легко можно все отменить, нажав кнопку перехода к предыдущей записи. Но если вы уже что-нибудь успели ввести (хотя бы один символ в одно поле), новая запись будет добавлена
Работа с данными с помощью формы
ЗОУ
в таблицу, и вы не сможете вернуться на предыдущую запись, так как будете получать сообщение о том, что не заполнены обязательные поля. Придется сначала нажать клавишу Esc.
[Маленькая KOMK3TJJJ Цена:. f"iVo,0':ip"."" Двтагкж^пм
•-,:1!Н ИЯ >; 1
Борхес Боэций Булгаков Вейс Еремеева
( l 2 1Л;•>?-'
ИМ! £и S? !s «•? >;
I? г * е •
щ Ш"" \*. \ ; ; ?
ie"V>ri
г,Т
•щтт Jf
: f '» i ! !
ЗАНЯТИЕ
.:
11
Создание и печать отчетов ТЕМА ЗАНЯТИЯ На этом занятии вы узнаете: • как создать простой отчет с помощью мастера; • как группирован» записи в отчете; • как создавать вычисляемые поля, содержащие итоговые данные по группам и по отчету в целом; • как управлять способом вывода групп на страницах отчета; • как добавить в отчет логотип; • как создать составной отчет, включающий подотчет; • как просмотреть отчет и как его напечатать; • как другие пользователи могут ознакомиться с отчетами Access,
Режимы работы с отчетами
j l 7
Для выполнения упражнений этого занятия вам понадобятся два файла: Библиотека, mdb, в котором вы создаете свое приложение, и БиблиотекаДанные.глс1Ь, о котором вы создавали запросы на Занятиях 6 и 7. Откройте перед началом за1 нятия файл Библиотека.mdb .
Отчеты как средство создания документов Если формы являются средствами ввода и изменения данных, хотя могут использоваться и для отображения данных, то отчеты используются исключительно для отображения данных. С помощью отчетов создаются различного рода документы, которые должны печататься в приложении Access. Генератор отчетов в Access достаточно мощный и удобный, чтобы позволить создавать разнообразные документы обычному пользователю. Создание отчета похоже на создание формы, так как они имеют очень похожую структуру, используют те же элементы управления, что и формы. Конструктор отчета аналогичен конструктору формы. Знакомиться с отчетами мы будем на примерах, которые продемонстрируют различные приемы работы с этим видом объекта Access. Сначала мы с помощью мастера создадим достаточно простой отчет, представляющий собой алфавитный каталог изданий, отсортированных по авторам в алфавитном порядке. Потом создадим более сложный отчет, в котором будем применять несколько уровней группировки при расчете сумм, потраченных на приобретение книг. В нем мы научимся создавать вычисляемые поля. И, наконец, создадим отчет, в котором будут показываться читатели и книги, которые у них на руках. Это будет составной отчет, включающий подотчет.
Режимы работы с отчетами Существует три режима работы с отчетами: • режим конструктора Конструктор (Design View); • режим просмотра образца Образец (Layout Preview); • режим предварительного просмотра П р е д в а р и т е л ь н ы й просмотр (Print Preview). Переключение этих режимов выполняется так же, как и переключение режимов форм: либо кнопкой Вид (View) панели инструментов Конструктор отчетов (Report Design), либо соответствующей командой меню Вид (View). В режиме конструктора можно создавать отчеты, изменять их структуру и внешний вид, добавлять и удалять поля. Этим режимом пользуются разработчики приложений Microsoft Office Access 2003. Примеры вы можете найти n;i сайте издательства www.piter.com па странице, посвященной этой книге.
318
Занятие 11. Создание и печать отчетов
Режим просмотра образца является удобным средством тестирования создаваемого отчета. В этом режиме для просмотра выводятся только данные, необходимые для отображения каждого элемента управления отчета. Эти данные могут не совпадать с данными, реально попадающими в отчет, зато формирование образца отчета выполняется быстро, что немаловажно при тестировании. Для просмотра всех данных, выводимых в отчете, следует использовать режим предварительного просмотра. Но если отчет сложный, его формирование может занять длительное время. Отчет, открытый в режиме предварительного просмотра, дает полное представление о том, как он будет выглядеть на бумаге. И прямо из этого режима он может быть выведен на печать. По умолчанию из окна базы данных отчет открывается именно в этом режиме.
Создание отчета с помощью мастера Отчеты, как правило, строятся на основе запросов, так как обычно требуется выводить только некоторые поля одной или нескольких таблиц. Свой первый отчет мы тоже построим на основе запроса. При этом предлагается использовать один из запросов, который был создан на Занятии 7, — К н и г и по авторам. Но этот запрос создавался в другой базе данных — БиблиотекаДзнные.то'Ь, поэтому попутно рассмотрим, как импортировать объекты из другой базы данных Access. 1. Щелкните правой кнопкой мыши на ярлыке Запросы (Queries) в окне базы данных и выберите в открывшемся контекстном меню команду Импорт (Import). Появится диалоговое окно Импорт (Import). 2. Выберите в окне Импорт (Import) стандартным образом папку и файл БиблиотекаДанные,тс!Ь и нажмите кнопку И м п о р т (Import). Откроется уже известное диалоговое окно И м п о р т объектов (Import Objects) с раскрытой вкладкой Запросы (Queries). 3. Выберите в списке запрос К н и г и ло авторам и нажмите кнопку ОК. Запрос Книги по авторам окажется в списке запросов базы данных Библиотека.mdb. 4. Откройте этот запрос в режиме конструктора. Теперь его требуется изменить так, чтобы на нем было удобно построить отчет. Для этого сначала удалим лишние поля. 5. Удалите поля КодАвтора, Раздел (мы хотим создать алфавитный каталог, а не тематический), Заметки и Списано. 6. Удалите таблицу Разделы — она нам больше не нужна, — щелчком выделите ее и нажмите клавишу Delete. Добавим издательство, место и год издания. Для этого придется добавить в запрос таблицы Издательства и Города.
Создание отчета с помошью мастера
31
Если этого не сделать, а просто добавить в запрос поля КодГорода и КодИ;!дательства, то запрос будет отображаться совершенно правильно, так как эти поля мы снабдили списками подстановки. Но в отчете для отображения этих полей придется использовать элемент управления Поле со списком (Combo Box), а этого лучше не делать, поскольку эти поля хуже форматируются, чем обычные текстовые поля (Text Box). Поля со списками используются в формах для выбора значения поля, а в отчетах этого не требуется, и поэтому использовать их не рекомендуется.
7. Кнопкой Отобразить таблицу (Show Table) на панели инструментов откройте диалоговое окно Добавление таблицы (Show Table). 8. Выделите в списке таблицы Города и Издательства и нажмите кнопку Добавить (Add). Таблицы отображаются на верхней панели Конструктора запроса и сразу показываются связи между ними. 9. Закройте окно Добавление т а б л и ц ы . 10. Перенесите в бланк запроса поля Город из таблицы Города, Издательство из таблицы Издательства, Г о д И з д а н и я из таблицы Издания. П. Установите сортировку по возрастанию в полях Автор и Название. Запрос в режиме конструктора должен выглядеть, как представлено на рис. 11.1. ш Книг и по авторам : запрос на выборка
КодРаздепа Название ГодИздания КодИздзтельства КодГорода
КодИздатегъова Издательство КодГсрода ород
т - ---•
,т*тк«т*\ Название по возрастанию 0
Издания по возрастанию 0
•. Город Города
. Издательство Издательства
0
EJ
-\
ГодИздания Издания
0
->;
ДО Рис. 11.1. Запрос Книги по авторам
12. Закройте запрос, сохранив изменения макета. 13. Щелкните на стрелке кнопки Н о в ы й объект (New Object) на панели инструментов и выберите в списке пункт Отчет (Report). Откроется диалоговое окно Н о в ы й отчет (New Report), в котором показано, что источником данных для отчета является запрос Книги по авторам. 14. Выделите в списке Мастер отчетов (Report Wizard) и нажмите кнопку ОК.
320
Занятие 11. Создание и печать отчетов
15. В первом диалоговом окне мастера нажмите на кнопку с двойной стрелкой и перенесите все поля запроса из списка Доступные поля (Available Fields) в список Выделенные поля (Selected Fields), Нажмите кнопку Далее (Next). 16. Во втором окне мастер предлагает выбрать вид представления данных. Мастер проверяет связи между таблицами и в зависимости от установленных связей выбирает по умолчанию одно из полей запроса в качестве поля, по которому будет выполняться группировка данных. В данном случае нам предлагается группировать данные по автору. Оставьте выбранное по умолчанию представление и перейдите к следующему шагу. 17. На следующем шаге мастер предлагает добавить еще уровни группировки. Пока этого не требуется, поэтому перейдите к следующему шагу. 18. В четвертом окне мастера нужно установить порядок сортировки. Поскольку мы установили сортировку в запросе, этот шаг мы тоже пропускаем и переходим к следующему. 19. В пятом окне предлагается выбрать вид макета. По умолчанию установлен ступенчатый отчет на странице книжной ориентации. При этом установлен подходящий флажок Настройка ширины полей для размещения на одной странице (Adjust the field width so all fields fit one page), и мы переходим к следующему шагу. 20. ,В следующем окне нужно выбрать стиль оформления отчета (отчеты, как и формы, имеют набор встроенных стилей)' Выберите стиль Обычный (Casual).
Автор
Город
Издательств
Гпд издания
Борхес Хорхе Л у с Оправдание вечности Боэций "Утешение философией" и другие тракты
Москва
Белая гвардия Мастер и Маргарита
Минск
Мэстацкая л!тература
1938
Нравственные эснпвы жизни
Минск
Юнацтвз
I
Вечера с Петрам Вэликим
СПб
Эксмо-Пресс
Булгаков Михаил
Вейс Франциск Гранин Даниил
Рис. 11.2, Отчет Алфавитный каталог в режиме предварительного просмотра
Создание отчета с помошью мастера
321
21. На последнем шаге нужно ввести имя отчета: А л ф а в и т н ы й каталог. Нажмите кнопку Готово (Finish). Вид отчета, созданного мастером, представлен на рис. 11.2. Отчет открыт в режиме предварительного просмотра. Вы видите, что он состоит из пяти столбцов и имеет заголовок, но данные в столбцах обрезаются длинные поля выводятся не полностью. Такой отчет не может нас удовлетворить. Выходов может быть два: • изменить ориентацию страницы отчета; 0 изменить форматирование полей так, чтобы при необходимости выполнялся перенос текста. Изменить ориентацию можно, не выходя из режима предварительного просмотра, открыл диалоговое окно Параметры страницы (Page Setup) командой Файл > Параметры страницы (File > Page Setup). Однако при этом, к сожалению, не будут автоматически расширены колонки отчета. Придется изменять их в режиме конструктора. Рассмотрим второй способ. Кнопкой Вид (View) панели инструментов переключитесь в режим конструктора. Отчет в режиме конструктора будет выглядеть как на рис. 11.3.
грайица"Е.[Раде]&"из' &[Piges]
Рис. 11.3. Отчет Алфавитный каталог в режиме конструктора
Как видите, он очень похож на форму. Как и форма, он разбит на разделы: • Заголовок отчета (Report Header), в котором выводится строка заголовка. Если в каталоге несколько страниц, все поля в разделе заголовка будут напечатаны только на первой странице. 11 Зак 680
322
Занятие 11. Создание и печать отчетов
• П р и м е ч а н и е отчета (Report Footer), которое в данном отчете отображается, но имеет нулевую высоту, так как никаких элементов управления здесь нет. В противном случае они были бы напечатаны только на последней странице отчета сразу под последней выведенной записью. • Верхний колонтитул (Page Header), в котором сейчас отображаются заголовки столбцов. В отличие от заголовка отчета, все, что находится в этом разделе, будет печататься в начале каждой страницы отчета. • Н и ж н и й колонтитул (Page Footer) содержит данные, которые будут печататься в нижней части каждой страницы отчета. В нашем отчете это дата и номер страницы. Не путайте Примечание отчета и Нижний колонтитул. На последней странице, где печатается и примечание, и колонтитул, колонтитул печатается в конце страницы, а примечание — после последней строки данных, то есть примечание отчета будет печататься перед нижним колонтитулом. Это нужно иметь в виду, когда вы определяете, куда поместить какие-то надписи или данные, — в примечание или в колонтитул.
• Дополнительный раздел, которого нет в форме, — это Заголовок группы (Автор Header). В данном примере он один, так как в отчете используется только один уровень группировки — но авторам. Заголовок группы печатается перед каждой группой записей, в данном случае фамилия и имя автора будут выводиться перед перечнем книг данного автора. • Область д а н н ы х (Detail), в которой выводятся остальные поля запроса. В данном отчете отсутствует еще один раздел, который бывает в отчетах, — это П р и м е ч а н и е группы (Group Footer). Обычно его используют, когда нужно вывести итоговые данные по группе. Мы такой отчет будем создавать позже. По умолчанию колонтитулы отчета печатаются на всех страницах отчета, включая первую и последнюю. Но у отчета есть два свойства, которые позволяют управлять печатью колонтитулов: Верхний колонтитул (Page Header) и Нижний колонтитул (Page Footer). Вы найдете их на вкладке Макет (Format) в окне Свойства (Properties) отчета, которое устроено точно так же, как окно Свойства формы. Выбирая в списке значения этих свойств, можно добиться, что колонтитулы (один или оба) не будут печататься на той странице, где печатается заголовок отчета (если этот заголовок есть, то это будет первая страница), на той странице, где печатается примечание отчета (на последней странице), либо ни на первой, ни на последней страницах. Разделы отчета по умолчанию печатаются на странице последовательно друг за другом, но есть возможность начинать следующий раздел с новой страницы. Например, каждую группу можно начинать с новой страницы. Для этого нужно установить соответствующим образом свойство Конец страницы (ForceNewPage) соответствующего раздела. Это свойство есть у каждого раздела формы, кроме колонтитулов, и можно указать, что данный раздел, например, Заголовок г р у п п ы , должен начинаться с новой страницы или что раздел, следующий за данным,
Изменение своиств отчета и его элементов в конструкторе отчетен
323
должен начинаться с новой страницы, либо что и данный раздел, и раздел, следующий за ним, должны начинаться с новой страницы. Таким образом, видно, что разделы отчета могут очень гибко распределяться при его печати, обеспечивая удобство и наглядность представления информации. Вернемся к нашему отчету и попробуем поработать с его свойствами и свойствами его элементов управления.
Изменение свойств отчета и его элементов в конструкторе отчетов Работа с элементами управления в конструкторе отчетов совершенно аналогична работе в режиме конструктора форм. Типы элементов управления также одни и те же. Поэтому разберем этот процесс кратко, так как вы уже научились работать с элементами управления при конструировании форм. 1. Щелкните на вертикальной линейке в области данных (против строки элементов управления). Все элементы будут выделены. 2. Кнопкой Свойства (Properties) панели инструментов откройте окно свойств. 3. Установите значения свойств Р а с ш и р е н и е (Can Grow) и Сжатие (Can Shrunk) на вкладке Макет (Format) или Все (ALL) р а в н ы м и Да (рис. 11.4). Тогда высота этих элементов управления будет изменяться в зависимости от длины строки, помещенной в текстовое поле. if Несколько эяемекгое управления •luiimpujHu.i^H . ! тат
з
J.
Пакет
i данные | - эбы и j Другие"
"Все
|
Число десятичных знаков , . . T'llfV^i-,'! It {.!
не вьшдкгь n.-.mnf..,! . . c+ame От левого iv-a;; Ot верхнего края
.
,,, ,
; I
М.*да , , .
•»|:; -
;
jCM
!jl!1fill^.i
Высота y-ii'tw-ia !лг>.я T O - . i '"'ЪС'рмЛрцие '.'-шрлмни
, .,
, ,,',."; J, 529см . . . Прозрачный , .t 16777215 , . , , обычное ,v . Отсутствует
?' •
.
Рис. 11.4. Установка свойств Расширение и Сжатие
4. Кнопкой Вид (View) переключитесь в режим предварительного просмотра и убедитесь, что теперь весь текст в полях выводится целиком, при необходимости выполняется перенос на следующую строку.
324
Занятие 11. Создание и печать отчетов Можно использовать для этого режим просмотра образца: щелкните на стрелке кнопки Вид (View) и выбрать в списке пункт Образец (Layout Preview).
Но у нас еще не полностью выводятся заголовки столбцов. 5. Переключитесь в режим конструктора и, изменяя ширину элементов управления Надпись (Label), добейтесь, чтобы они были видны полностью. Подстройте при необходимости ширину элементов управления в области данных, чтобы они были расположены точно под надписями. Тогда отчет будет иметь вид, показанный на рис. 11.5. 6. Закройте отчет, сохранив изменения макета.
Двю|>
HfliBiiHiift
Город
Издательств
Оправдание вечности
Москва
Ди-дик
"Утешение философией" и другие трактать
Москва
Наука
Белая гвардия, Мастер и Маргарита
Минск
Мастацкая .гчтература
Нравственные основы жизни
Минск
Юнацтеа
Вечера с Петром Великий
СП5
Эксмо-Пресс
Мы ждем ребенка
Москва
Рипол Классик
Год издания
Борхес Хорхе Луис
1934
Боэций
Булгаков Михаил
ВейсФранциск
• •'.
Гранин Даниил
Еремеева Ольга
Рис. 11.5. Отчет Алфавитный каталог после редактирования
Создание отчета с несколькими уровнями группировки и вычисляемыми итогами Создадим более сложный отчет, в котором будем считать, сколько денег было потрачено на приобретение изданий помесячно. В этом отчете будет использоваться несколько уровней группировки. Отчет будет строиться на базе запроса, поэтому начнем с создания этого запроса.
Создание базового запроса Построим запрос с помощью конструктора на базе таблицы Издания.
Создание отчета с несколькими уровнями группировки и вычисляемыми итогами
325
1. Откройте окно конструктора запросов и добавьте в него таблицу Издания (см. Занятие 6). 2. Перенесите в бланк запроса два поля; Цена и Д а т а П о к у л к и . Желательно, чтобы данные в будущем отчете группировались по годам и месяцам. Для этого нужно создать в запросе вычисляемые поля Год и Месяц Эти поля будут рассчитываться на основе значения поля ДатаПокупки. Из каждой даты нужно выделить год и месяц, тогда мы сможем по этим полям сделать нужную нам группировку. 3. Создайте в бланке запроса вычисляемое поле Год, введя в первую строку следующее выражение:
Год: Format([ДатаПокупки];"уууу"). 4. Создайте поле Месяц, введя выражение Месяц: Format([ДатаПокупки];"шпт"). В обоих случаях использована функция FormatQ, чтобы представить дату в нужном виде; в первом случае как 4 цифры года, во втором — как полное название месяца. Первый аргумент этой функции определяет те данные, который нужно форматировать, а второй — сам формат данных, Кроме того, создадим вычисляемое поле НомерМесяца — оно понадобится для сортировки по месяцам. (При сортировке по полю М е с я ц мы получили бы месяцы, отсортированные в алфавитном порядке, что нас никак не устраивает.) 5. Введите выражение для поля НомерМесяца: Month С[ДатаПокупки]). Функция MonthQ возвращает номер месяца в дате. Для поля НомерМесяца можно также использовать функцию Format(): Рогта1([ДатаПокупки];итт"). Только в этом случае будет возвращаться строковое выражение, состоящее из двух цифр месяца.
6. Установите сортировку по возрастанию в полях Год и НомерМесяца. Очевидно, создаваемый отчет должен отображать данные только за интересующий нас период. Поэтому необходимо задать в запросе параметры, которые позволят ввести начало и конец периода. 7. Введите в строку Условие отбора (Criteria) столбца ДатаПокупки выражение: >=[Начало периода] And "[Начало периода] And е=[Конвц пер
К
по возрастанию
0
И
Рис. 11.6. Вазовый запрос для отчета
Создание макета отчета Создадим макет отчета с помощью мастера и доработаем его в режиме конструктора. 1. Выделите в списке запрос ДатаЦена. 2. Щелкните па стрелке кнопки Новый объект (New Object) на панели инструментов и выберите пункт Отчет (Report). 3. В диалоговом окне Новый отчет (New Report) выберите вариант Мастер отчетов (Report Wizard). 4. Во втором окне мастера перенесите поля списка Доступные поля (Available Fields) в список Выбранные поля (Selected Fields) в следующем порядке: Год, НомерМесяца, Месяц, ДатаПокупки, Цена. 5. На третьем таге мастер предлагает добавить уровни группировки. Выделите и списке поле Год и щелкните на кнопке со стрелкой вправо. Аналогично выделите поле НомерМесяца и снова щелкните на кнопке со стрелкой. Справа будет показываться образен будущего отчета (рис. 11.7). Верхний уровень группировки — Год, следующий — НомерМесяца. 6. На следующем шаге определяется порядок сортировки записей в отчете. Всего можно задать четыре поля для сортировки, Кнопка справа от выбранного поля позволяет установить вид сортировки: по возрастанию или по убыванию. Нажмите кнопку Итоги (Summary Options). Откроется диалоговое окно, и котором нужно определить, какую функцию применить для расчета итогового значения к полю Цена. Установите флажок ниже функции Sum (рис. 11.8).
Создание отчета с несколькими уровнями группировки и вычисляемыми итогами
. . _ ^ „ ,
327
Р-М»~^Ш—
1 Год
11
НомерМесяца Месяц, Дат а Покупки, Цена
• i! ' < ' • ' ;
' -
Отмена
Рис. 11.7. Добавление уровней группировки в отчет
l And Left(Right(Count(*);2);lM Or (R1ght(Count(*):l)>4)):"записей":IIf(Right(CountC*};!)=!; "запись";"записи")) & ")". 4. Протестируйте отчет, переключившись в режим предварительного просмотра или просмотра образца кнопкой View (Вид) панели инструментов. В разделе Нижний колонтитул (Page Footer) находятся еще 2 вычисляемых поля: • первое в качестве источника данных имеет выражение =Now() и отображает текущую дату; • второе отображает текстовую строку, содержащую номер страницы отчета и общее количество страниц в отчете: ="Страница " & [Page] & " из " & [ p ages]
Это стандартный колонтитул, который печатает на каждой странице номер страницы [Page] и общее количество страниц в отчете [Pages]. И, наконец, в области П р и м е ч а н и е отчета (Report Footer) находится вычисляемое поле, которое подсчитывает общую сумму по столбцу Цена в отчете.
Создание отчета с несколькими уровнями группировки и вычисляемыми итогами
333
Сортировка и группировка данных УСЛОВИЯ группировки и сортировки записей в отчете задаются в диалоговом окне Сортировка и группировка (Sorting and Grouping) (рис. 11.15). Чтобы открыть это окно, нажмите на панели инструментов кнопку Сортировка и г р у п п и р о в к а (Sorting and Grouping) Ш|1 Сортировка и группировке
i
Порядок совтироеки По возрастанию По возрастанию
Цгс
|k НомерМесяца _
J-."..":: 1111 .lit :
Гр-утфовкй • .
;
' Пр полному значен
'
r! (
.-• 1+ ' 1 • 16 • i • It
| * :•.•„,,,,,[1Ч .- Щ
Автор
1-,. ......... (.
...................
ата\
Название
Ачтор
3
нанив
1 !. ..... .]
J
* i!..-:hli- 1 млг.«'-ц'>..
\] Дата
\\
||дтвПолуч ' '••• .............. :
Рис. 11.25. Отформатированный подчиненный отчет 21. Закройте подчиненный отчет. 22. Откройте отчет Ф о р м у л я р ы читателей в режиме конструктора и вставьте в заголовок в качестве логотипа рисунок как в отчете Суммы покупок.
7 . i . Е
i • 9 • I • Ю • I • 11 • * - 12 • i • 10 • I ' 14 > i • 15 • i • В • ' ' 1? • i
ормуляры читателей
Рис. П.26. Добавление надписи в примечание отчета
344 Занятие 1 1 . Создание и печать отчетов 23. Переместите вниз границу раздела Примечание отчета (Report Footer) так, чтобы там можно было поместить надпись. 24. Создайте в этом разделе текстовое поле. Щелкните на панели элементов на кнопке Поле (Text Box) Ш. Щелкните на области примечания отчета. Будет создано свободное поле. В качестве источника данных для этого поля введите выражение Теперь в этом поле будет помещаться число, равное общему количеству читателей в библиотеке. 25. Отформатируйте это поле и надпись к нему но образцу (рис. 1 1.26). Откройте отчет в режиме просмотра и убедитесь в правильности связывания данных в главном и подчиненном отчетах,
Просмотр и печать отчета Созданный отчет можно либо сразу напечатать, либо просмотреть перед печатью. В режиме предварительного просмотра Access отображает отчет так, как он будет выглядеть при печати. Этот режим позволяет удобно работать с отчетом. Например, с помощью кнопок панели инструментов можно отображать текущую страницу в разных масштабах или просматривать одновременно несколько страниц. Если на страницу помещаются не все данные отчета, можно изменить поля страницы. 1. Откройте в режиме предварительного просмотра отчет А л ф а в и т н ы й каталог. 2. Чтобы увеличить какую-либо часть отчета, щелкните на ней, нажмите кнопку Масштаб (Zoom) панели инструментов Предварительный просмотр (Print Preview) и выберите нужный масштаб. 3. Выберите команду Файл >• Параметры страницы (File t Page Setup). Откроется диалоговое окно Параметры страницы (Page Setup), аналогичное диалоговым окнам Печать (Print) других приложений Windows (рис. 11.27). 4. Раскройте вкладку Поля (Margins) и уменьшите поля сверху, снизу, слева и справа, чтобы увеличить количество информации, размещаемое на одной странице. Флажок Печатать только д а н н ы е (Print Data Only) позволяет распечатать только данные отчета, при этом верхний и нижний колонтитулы, а также разделы заголовка и примечаний отчета печататься не будут. Учтите, что установленные в диалоговом окне Параметры страницы (Page Setup) значения полей будут использоваться только в активном отчете, поскольку для каждого отчета задается свой набор значений полей. При сохранении отчета Access сохраняет информацию о полях. Установить значения параметров, которые будут применяться по умолчанию для всех отчетов базы данных, можно в диалоговом окне Параметры (Options), о котором мы будем говорить на последнем занятии.
Просмотр и печать отчета
345
Параметры страницы ! :, г .-
!
if ( -;,',.
Рис. 11.27. Диалоговое окно Параметры странииы
5. На вкладке Страница (Page) диалогового окна Параметры с т р а н и ц ы (Page Setup) можно определить тип бумаги и принтер, на котором нужно напечатать отчет. После установки всех параметров нажмите кнопку ОК. 6. Чтобы напечатать отчет, нажмите на панели инструментов кнопку Печать (Print). Access напечатает отчет, используя текущие настройки принтера. Если вы 4j| Алфавитный каталог.гtf - Microsoft
файл -Зраекв
П^|«
- " v=' . ;
Наавание
Город
Оправдание- вечности
Москва
•Борхес Хорхе Ди-дик
1 Э94Ц
Боэций Л "Утешение философией" и- -• Москва другие-трактаты Ц Булгаков-Михаил^ Бе лад -гвардия; Мастер и Маргарита
Минск
Наука
Мастацкая л1тератураЦ
*Вейс Франциск*!!
-*
Нравственные-основы'жизнм -» Минск
Юнэцтва
Вечера-С'Петроы Великим. -» СПб
Эксмэ-Пресс
•Гранин Даниил^
jCrp,' 1 • .
РХЛ !
• :!2 > =' H*"2i&H CT i - Коп Т
"A'-- •.*-•>; . /.Е; =.^ *гпий«ий
Рис, 11.28. Экспорт отчета в документ Word
199411
346
Занятие 11. Создание и печать отчетов
хотите поменять принтер, ориентацию страницы или значение какого-либо другого параметра, выберите команду Файл > Печать (File > Print). Появится стандартное диалоговое окно Печать (Print) для принтера, заданного в Windows как принтер по умолчанию. 7. Этот отчет легко преобразовать в документ Word (формата .rtf), нажав на панели инструментов кнопку Связи с Office (OfficeLinks) ljj| (рис. 11.28). Не забудьте, что в процессе разработки отчета вы можете тестировать его, переключаясь в режим просмотра образца Образец (Layout Preview). Данные в нем будут отображаться, скорее всего, не те, что нужно, но оформление вы сможете проверить.
Публикация отчетов Как уже говорилось в предыдущем разделе, отчет Access можно легко преобразовать в документ Word или таблицу Excel. Эта возможность существовала с первых версий Access, и в первых версиях это было единственным способом создать электронную копию этого документа, которую могли бы просматривать те, у кого нет Access. В Access 2000 появилось новое средство публикации отчетов — снимки отчета. Снимок отчета представляет собой файл с расширением .snp, который содержит копии всех страниц отчета, включая графические и другие вложенные объекты. Этот файл может просматриваться специальной программой Просмотр отчетов (Snapshot Viewer). О снимках отчета мы поговорим позже. Самый простой способ экспорта отчета — создание веб-страницы (файла .html), которую можно просматривать обычным веб-браузером (Internet Explorer). Как и снимок отчета, это статическая страничка текущих данных, но во многих случаях для отчета этого и достаточно. Создадим такие странички для отчета А л ф а в и т н ы й каталог. 1. Выделите в списке отчет А л ф а в и т н ы й каталог. 2. Выполните команду Файл » Экспорт (File * Export). 3. В диалоговом окне сохранения файла выберите папку, в которой будут находиться результирующие файлы. 4. В списке Тип файла (Save As Type) выберите формат файла Документы HTML (HTML Documents). 5. В поле Имя файла (File N a m e ) введите имя результирующего файла — Алфавитный каталог (рис. 11.29). Если результирующие страницы вы будете помещать на веб-сервер, имя файла нужно написать по-английски.
6. В данном окне есть еще два флажка: Сохранить формат (Save Formatted) и Автозагрузка (Autostart). По умолчанию флажок Сохранить формат установлен, зна-
Публикация отчетов
347
чит, при экспорте будет по возможности сохранено внешнее оформление отчета. Установите флажок Автозагрузка, чтобы сразу увидеть результат экспорта, и нажмите кнопку Экспорт (Export). Появляется диалоговое окно Параметры вывода в формате HTML (HTML Output Options), которое позволяет выбрать шаблон HTML результирующего отчета и вид кодировки, так как при публикации страничек на веб-сервере необходимо соблюдать заданный сервером тип кодировки. 7. Если у вас есть интересные шаблоны HTML, можно указать путь к нужному файлу. Воспользуйтесь кнопкой Обзор (Browse) и найдите файл шаблона. В поле ввода должен появиться путь к этому файлу и будет установлен флажок Выберите шаблон HTML Нажмите кнопку ОК. После выполнения операции экспорта в интернет-браузере сразу откроется первая страница отчета (рис. 11,30). Экспорт объекта: Отчет 'СцммыПокупок* как
chu _J Newfdder i пдк_цпокСтра_мииа2.Ыт|
|'.JIJf И-lif iu'l
Щ VMfJH
М:м
j Алфавитный каталог, html окружение
Типфгйгя; | Документы HTML (*.html;*.htm)
-V] Г I I p um.-,;,ttrh.;.-Lr О 1
Рис. 11.29. Экспорт отчета в HTML-формат
Для каждой страницы отчета создается собственный файл HTML. Имена этих файлов состоят из имени отчета и суффиксов — Раде2 (первая страница не имеет суффикса), РадеЗ и т. д. В нашем отчете создалось две странички: А л ф а в и т н ы й каталог.html и Алфавитный каталогРаде2.Ьт.т1. 8. Перейдите (с помощью полосы прокрутки) в конец первой странички. Вы увидите гиперссылки для навигации по страничкам отчета, если их несколько. 9. Щелкните на ссылке Next, чтобы увидеть следующую страничку. Эти файлы могут быть размещены на веб-сайте, и тогда на них должны быть созданы ссылки, либо просто отправлены нужным лицам по электронной почте. В HTML-страницу экспортируются почти все элементы управления отчета,
348
Занятие 11. Создание и печать отчетов
в том числе и подчиненные отчеты, не экспортируются только линии, прямоугольники и OLE объекты (то есть рисунки). Чтобы рисунки оказались на странице, нужно создать шаблон HTML с этими рисунками и использовать его при экспорте. Ц Алфавитный каталог - Microsoft Internet £кр1йшг иц -^бранное ."Сервис' CAIrinaVPiterAc2QO^h11VNewFolder\WaewH^ каталогЪЫ
--:.']" " .J . ; Щ .^Перезда i Lftks .-NmmAriiVirus | £
**#
Название Автор Борхес Хорхе Луис Оправдание вечности Боэций "Утешение философией" и другие трактаты Булгаков Михаил Белая гвардия, Мастер и Маргарита
Город
Издятельство Год издания
Москва
Ди-Дик
-ЭЭ4
Москва
Наука
1990
Минск
Мастацкая лггературз
1983
Нравственные основы жизни
Минск
Юнацтвэ
1994
Вечера с Петром Великим
СПб
Эксмо-Пресс
2000
Мы ждем ребенка
Москва
Рипол Классик
1999
Поэзия садов Раздумья о России
Москва СПб
Согласие Золотая аллея
-
I*;
§
Гранин Даниил Еремеева Ольга Лихачев Дмитрий
Рис. 11.30. Отчет Алфавитный каталог в формате веб-странииы
Вернемся к снимкам отчетов и посмотрим, как они создаются, на примере отчета Суммы покупок. 1. Снимки — это один из форматов экспорта, поэтому выделите в списке отчетов отчет Суммы покупок и затем выберите команду Файл > Экспорт (File > Export). 2. В диалоговом окне Экспорт объекта (Export Report) выберите формат файла Снимок (Snapshot Format), в поле Папка (Save in) выберите, как обычно, папку, в которой будет сохранен файл, a is поле Имя файла (File Name) введите имя файла: Суммы покупок. Нажмите кнопку Экспорт (Export). 3. Файл сохраняется на диске и сразу открывается в окне Просмотр снимков (Snapshot Viewer) (рис. 11.31).
Публикация отчетов
Щ JE-SSrt 6* Qr.rto &Юзыа: - - - -.
• " '-
"
/Ь|Ш|^ т
Год
П1.01.1998
Май
Май Ит1>| и з, •UDCp 5D,OOp 74,DOp t О т п р а в и т ь (File > Send). Появляется окно Outlook с сообщением, в котором вложен файл отчета (рис. 11.32). 5. Заполните нужные поля и отправьте сообщение. Получатель сообщения может дважды щелкнуть на значке файла отчета, чтобы запустить просмотр снимков и открыть в нем отчет.
350
Занятие 11. Создание и печать отчетов 3$ Отчет о покупках 'Сообщение (Оемчнмй TEKCJ) " Шййкз; i Формат - Сджис :.*.,.-:-
&.ИЙСТРИЯ
.J f Jt ^ - UJ §•,• И j >
My Computer
Рис. 12.6. Страница доступа к данным, открытая программой просмотра неб-странии ЗАДАНИЕ Попробуйте сортировать записи, добавить новую запись — вы убедитесь, что все кнопки панели работают так же, как в среде Access.
Если бы и файл базы данных Библиотека.mdb, и страница Читатели.htm, и даже сама программа Access находились не на вашем локальном компьютере, а на сервере локальной сети, вы также смогли бы работать с этой страницей.
6. Закройте окно программы просмотра веб-страниц. 7. Закройте страницу Читатели в Access. 8. Откройте страницу А л ф а в и т н ы й каталог (рис, 12.7). Это уже другой тип страницы. Она предназначена для просмотра и поиска. Данные на ней объединены в группы, по умолчанию на экране отображается только заголовок группы. Чтобы отобразить входящие в группу записи, нужно щелкнуть на маркере ее развертывания \jjji Когда группа развернута, маркер изменяет свой внешний вид [ш\ В нижней части каждой развернутой группы отображается собственная панель перехода по записям. Когда страницы доступа к данным только появились
360
Занятие 12. Страницы доступа к данным
Алфавитный каталог Б
Ф Ф
Борхес Хорхе Боэций Булгаков Михаил
Лихачев Дмитрии
Рис. 12.7. Страница доступа к данным Алфавитный каталог
Зависимость суммы покупки от даты ;•;'! X ' РЕМ Л f л >
; L=l : ^O
'-'.
г
' -
Рис. 12.12. Запрос Книги по разделам
6. Перенесите в список Выбранные поля (Selected Fields) все поля списка Доступные поля (Available Fields) (рис. 12.13). Нажмите кнопку Далее (Next).
Кекие поля i Допекается выбор невда
' Запрос: Кн Вьйранньй -п оля i
• .
Рис. 12.13. Первое диалоговое окно Мастера странии доступа к данным
7. На следующем шаге укажите ноля, по которым нужно произвести группировку данных. Для этого выделите в списке поле Разделы и нажмите кнопку pi.
Создание страницы с помошью мастера
8. Затем выделите поле Авторы и снова щелкните на кнопке |Я Таким обраr~..fe...j зом вы задаете два уровня группировки (рис. 12.14). 9. Нажмите кнопку Группировка ( G r o u p i n g Options). Появится диалоговое окно Интервалы г р у п п и р о в к и ( G r o u p i n g Intervals). В этом окне для каждого поля, по которому группируются данные, требуется указать интервалы группировки (рис. 12.15). Оставьте предложенное по умолчанию значение интервалов Обычн ы й (Normal).
Название, Город, Издательство ГодИздания
Рис. 12.14. Второе диалоговое окно Мастера странии доступа к данным
I'1"" УТ'Т....
-
' • [:.бычный| ':':-
обычный
й -и
;i
Рис. 12.15. Настройка интервалов группировки
Поскольку поля текстовые, группировка может производиться не только по одинаковым значениям этих полей, но и по первой букве, по двум первым буквам и т. д. Желая создать Алфавитный каталог, мы могли бы верхний уровень группировки сделать по авторам с интервалом группировки по первой букве. Тогда все издания сгруппировались бы по алфавиту: А, Б, В и т. д., а внутри каждой группы можно было бы сгруппировать издания по авторам с обычным интервалом группировки.
366
Занятие 1 2. Страницы доступа к данным
10. На третьем шаге задается порядок сортировки. Это диалоговое окно (рис. 12.16), как и предыдущее, похоже на соответствующее диалоговое окно мастера форм и отчетов, поэтому вы уже знаете, как им пользоваться. В нашем примере разумно задать сортировку по названию изданий.
ххххххх
nfirt-no убыванию, бключаюшая жИ'гтдеи, |, ;|1н а звание!
I *»* сгз I i * « г—ц I
-1 * Лj поц. возрастании! .ц
1 I
Рис. 12.16. Третье диалоговое окно Мастера страниц, доступа к данным Тематический каталог
Раздел |Лцхачев Дмитрии Название:
Поэзия садов
Город;
I Москва
Издательство:
[Согласие
Год издания
1998-
Книги по разделам 1 us Книги по разделам-Аетш 1 из 1 Книги по разделай-Раздел 3 из 10
Рис. 12.17. Страница Тематический каталог, созданная мастером
Создание странииы с помощью мастера
367
В последнем диалоговом окне мастера требуется ввести название страницы доступа к данным (это название ярлыка в базе данных). 11. Введите в поле ввода название Тематический каталог и выберите переключатель Открыть страницу (Open the page). Нажмите кнопку Готово (Finish). 12. После небольшой паузы на экране в режиме просмотра будет отображена созданная мастером страница (рис. 12.17). Чтобы вывести список авторов по каждому разделу и список книг каждого автора, воспользуйтесь кнопкам:;! развертывания структуры. С помощью панелей перемещения по записям можно выбрать раздел, автора и книгу. 13. Нажмите кнопку Сохранить (Save) на панели инструментов Разметка страницы (Page View). В появившемся диалоговом окне укажите папку и имя файла для сохранения страницы доступа к данным, например Тематический каталог.htir, и нажмите кнопку Сохранить (Save). Если вы собираетесь опубликовать созданную страницу на веб-сервере, тс не используйте в имени файла русские буквы и пробелы. Веб-сервер не может обеспечить доступ к такой странице.
14. Закройте страницу. Итак, мы получили страницу доступа к данным, предоставляющую пользователям возможность просмотреть информацию о книгах в библиотеке в Интернете или интранете. Однако эта страница не очень удобна и еще не готова к публикации. Она обладает целым рядом недостатков. • Для выбранного раздела нужно сразу отобразить список нескольких авторов. • В группе с информацией об издании следует отобразить данные сразу о нескольких изданиях в виде таблицы. • Требуется изменить оформление страницы. В следующем разделе вы узнаете, как избавиться от некоторых недостатков. Вообще говоря, интерфейс базы данных обычно включает более сложные формы (например, формы с подчиненными формами). К сожалению, точных аналогов подчиненных форм в страницах доступа к данным Microsoft Office Access 2003 не существует, однако с помощью программирования и использования элементов ActiveX можно реализовать все необходимое для работы с данными. Кроме того, путем программирования можно снабдить страницу доступа к данным процедурами реакций на такие события, как нажатие кнопки, получение страницей фокуса и многие другие. То есть страницы обладают всеми необходимыми возможностями, которые предоставляют формы и отчеты Access. Однако, чтобы сделать их таковыми, нужно уметь программировать. В данном курсе мы изучаем только возможности, предоставляемые Access без программирования.
368
Занятие 12. Страницы доступа к данным
Создание и изменение страниц доступа к данным в режиме конструктора
Как и другие объекты Access, страницу доступа к данным можно создать самостоятельно без помощи мастеров в режиме конструктора. Этот режим используется и для того, чтобы отредактировать страницу, созданную ранее с помощью мастера или на основе существующей веб-страницы. Дважды щелкните на ярлыке Создание страницы доступа к данным в режиме конструктора (Create data access pages in Design View). Пустая страница будет открыта в режиме конструктора (рис. 12.18). Пустая страница содержит один раздел, пока никак не связанный с объектами базы данных, и область для ввода заголовка страницы. Кроме того, в режиме Конструктора страниц доступа к данным, как и в режиме конструктора форм, отображается окно со списком полей базы данных, а также панель элементов управления, которые можно разместить на странице. Список полей можно отобразить с помощью команды Вид * Список полей (View > Field List) или кнопки Список полей (Field List) панели инструментов Макет страницы (Page View). Панель элементов управления можно отобразить командой Вид > Панель элементов (View > Toolbox) или нажмите кнопку Панель элементов (Toolbox) панели инструментов Макет страницы. Повторный выбор этой команды (или нажатие кнопки) скрывает панель элементов управления. На панели элементов вы видите многие знакомые элементы: поле ввода, надпись, группу переключателей, переключатель, флажок, список и поле со списком, кнопку, рисунок, а также новые кнопки, соответствующие элементам, которые могут размещаться только на странице доступа к данным. Ниже приведено краткое описание этих элементов. • Связанный HTML (Bound Span). Текстовое поле, отображающее текст в формате HTML, который нельзя редактировать. Этот элемент может быть привязан к полю в таблице источника данных. В такой элемент данные загружаются быстрее, чем в текстовое поле, поэтому они более эффективны на страницах, предназначенных только для отображения данных. • Бегущая строка (Scrolling Text). Текстовое поле, использующееся на страницах доступа к данным для отображения движущегося текста, к которому требуется привлечь внимание, например, заголовка или важного объявления. Для отображения текста, содержащегося в поле базы данных, элемент управления Бегущая строка можно присоединить к соответствующему полю. • Развернуть (Expand), Маркер развертывания — элемент, при активизации которого выполняется развертывание или свертывание группы данных.
Создание и изменение странии доступа к данным в режиме конструктора
369
Рис. 12.18. Новая странииа доступа к данным в режиме конструктора
Панель перехода по записям (Record Navigation). Позволяет быстро выполнять переходы между записями, либо добавлять, удалять, сохранять, отменять изменения, сортировать или фильтровать записи. На странице доступа с группами каждая группа может иметь собственную панель перехода по записям, расположенную в нижней части развернутой группы. Сводная таблица Office (Office Pivot Table). Веб-компонент Office, аналог сводных таблиц Microsoft Excel: отображает данные в виде строк и столбцов, которые можно реорганизовывать для анализа данных различными способами путем перемещения строк в столбцы и столбцов в строки, отображения итоговых сумм на пересечении строк и столбцов, а также другими способами упорядочения и суммирования данных. Сводная таблица содержит собственную панель инструментов и встроенную справку. Диаграмма Office (Office Chart). Средство графического представления данных таблиц.базы данных или сводных и электронных таблиц на странице доступа к данным. Электронная таблица Office (Office Spreadsheet). Аналог листа Microsoft Excel позволяет вводить и редактировать данные или выполнять вычисления с данными. Электронная таблица содержит собственную панель инструментов и встроенную справку.
13 Зак. 680
370
Занятие 1 2, Страницы доступа к данным
Кроме перечисленных элементов управления, на странице могут размещаться гиперссылки, гиперрисунки, фильмы и пр. Можно сказать, что список элементов управления, используемых на страницах доступа к данным, неограничен, поскольку можно использовать любые элементы управления ActiveX, число которых постоянно увеличивается.
Добавлять поля на страницу доступа к данным в режиме конструктора помогает диалоговое окно Список полей (Field List), (см. рис. 12.17). Оно содержит списки всех таблиц и запросов открытой базы данных. Для каждой таблицы или запроса можно вывести список полей. Списки таблиц, запросов и их полей представлены в виде иерархии, подобной иерархии папок и файлов, отображаемой в окне Проводника. Каждый уровень иерархии можно раскрыть с помощью значка «+«• или свернуть с помощью значка «-*>, расположенного рядом с элементом верхнего уровня иерархии. Для примера создадим в конструкторе страницу, которая позволит просматривать, изменять и вводить новые записи в таблице Издания. 1. Сохраните страницу доступа к данным кнопкой Сохранить (Save) панели инструментов. В диалоговом окне Сохранение в виде страницы доступа к данным (Save as data access Page) укажите папку, в которой необходимо сохранить страницу, Сервис
QI«IO
Справив
•opr , ж к \. 'Щт т
ИЗ [Ж*!]
I
Список now* у-щ$ Таблицы Щ Paste EiroiJ ЕЭ
Лвторы Издания J Связанные таблицы [ff Koull
s КодМеста
IT! ТипОбложкн ДэтвЛоиупки ЧиспоСтрании J5J ТипИщанкя [Т) Заметки Издательства
]М Л: | , -. И *• »Х Щ " '> ^t | | ^"'7 [?|
Рис. 12.25. Странииа Издания в режиме просмотра страницы В табл. 12.1 приведены описания некоторых важных свойств, общих для многих элементов управления. Таблица 12.1. Некоторые свойства элементов управления Свойство
Описание
ControlSource (Источник данных)
Источник данных для элемента управления (это может быть имя поля в таблице, запросе или инструкции SQL или выражение)
Disabled (Блокировка)
Чтобы в режиме просмотра запретить возможность выделения элемента щелчком, установите для свойства Disabled значение True (Истина) Уникальный идентификатор (имя) элемента управления. Используется для ссылки на элемент управления при программировании страниц доступа к данным продолжение
Id (Имя)
3/6
Занятие 1 2. Страницы доступа к данным
Таблииа 12.1 (прололжение) Свойство
Описание
ReadOnly (Только чтение)
Чтобы запретить изменение данных, отображаемых в элементе управления, установите значение True
Tablndex (Индекс перехода по Tab)
Номер элемента в последовательности перехода. Чтобы пропустить элемент в последовательности перехода, задайте значение 1
Title
Текст всплывающей подсказки для элемента управления
(Всплывающая подсказка)
Visibility (Вывод на экран)
_
_
___
__
__
_
______
__
__
Определяет режим отображения элемента управления на странице. Значение hidden (скрытый) позволяет скрыть элемент, значение visible (видимый) — отобразить, значение inherit (унаследовано) установлено по умолчанию и означает отображение или скрытие элемента управления в зависимости от видимости родительского элемента управления
Как и в форме, на странице доступа к данным, предназначенной для ввода и редактирования записей, нужно позаботиться о последовательности перехода по полям ввода. По умолчанию переход по полям осуществляется в том порядке, в котором они создавались. К сожалению, в режиме конструктора страниц нет команды меню Вид > Последовательность перехода (View > Tab Order), как в конструкторе форм, которая обеспечила бы простой интерфейс для определения этой последовательности. Поэтому требуется установить правильно значения свойства Tablndex для каждого поля ввода. 2. Проверьте значения свойства Tablndex для всех элементов управления и, где нужно, измените их. Значением этого свойства должен быть номер элемента в последовательности перехода. 3. Закройте страницу, сохранив все изменения. В следующем упражнении мы посмотрим, как можно с помощью конструктора усовершенствовать страницу Тематический каталог, которая была создана раньше с помощью мастера.
Изменение страницы Тематический каталог 1. Откройте страницу Тематический каталог в режиме конструктора. Окно конструктора страницы и данном случае напоминает окно конструктора отчетов (рис. 12.26). Страница состоит из нескольких разделов. Внутренний раздел, имеющий заголовок К н и г и по разделам 1 , напоминает раздел Д а н н ы е (Details) в отчете. Двум уровням группировки соответствуют пары внешних разделов: Книги по разделам-Раздел и Книги по разделам-Автор. Слева от поля, по которому группируются данные, располагается маркер развертывания структуры. С помоНапоминаю, это имя запроса, mi котором базируется страница.
Создание и изменение страниц доступа к данным в режиме конструктора
377
щью этого маркера можно развернуть или свернуть список элементов одной группы. Каждому разделу, содержащему поля данных, соответствует свой раздел кнопок перехода. Гймвк*
2ив
Вдгавка
Формат
Семи*:
Окно
Справил
*- И ДатаЦвна _ I Книги tw аеторам
^ -Г ••JIJ • TJ Щ : -^ ;- -3g
......
:
" ' Книги пз раздепэс fO i
Книги то раздйпаи-Автор 10 иг |2
Название Город Издательство
+! ff М естаХране нияЗапрос tl-S ЧктатвльФорм1(пяр
i г-ре&ода: Jf Hfini тор аздвпаи
'" ' : N
;.
Рис. 12.26. Странииа Тематический каталог, созданная с помощью мастера Разберемся, как управлять сортировкой и группировкой записей на странице. Панель инструментов Макет страницы (Page Design) очень похожа на панель инструментов Конструктор отчетов (Report Design), но на ней появилось несколько новых кнопок: Г
--ФЛ — Повысить уровень (Promote); [Р~
щ
"
Год
-
—
. ''
У ' '•'» ^^Н ,,, * i ;
^s^ssnw
^[счастливые родители
:
"Т99э|*|
[Борхес Хорхе Луис
^Оправдание" вечности
[Боэций
^Утешение философией" и другие трактаты | 199о|^
!Булга"|сов"михаил
;[Белая гвардия, Мастери Маргарита
Шей с Франциск
'[[нравственные основы жизни
1Еремеева Ольга и др.
|Мы;кдем ребенка
[Лихачев Дмитрий
Црэздумья о России
'-""•:
к
| '
!
1994J
;
19881^ ;j 1 994[.
: :
1999k У
19991'^,::
1 -J;
Рис 13.16. Форма НевыданныеКниги
Размещение кнопок на формах Разместим на наших формах кнопки, при нажатии которых будут выполняться нужные действия. 1. Откройте форму ВзятьКнигу в режиме конструктора. На ней целесообразно создать три кнопки. Первую кнопку удобно расположить справа от полей Автор и Издание. Она будет использоваться для выбора выдаваемой книги, и при ее нажатии должна открываться форма Невыданн ы е К н и г и . Еще одна кнопка требуется, чтобы выполнить операцию сохранения всех собранных данных в т а б л и ц е Ф о р м у л я р . И, наконец, последняя кнопка нужна, чтобы закрыть форму. Некоторые кнопки будем создавать с помощью мастера, а в других случаях мастер нам не понадобится. Кнопку, которая будет открывать форму Невыд а и н ы е К н и г и , мы создадим с помощью мастера, поэтому проверьте, чтобы кнопка Мастера (Control Wizards) на панели элементов была нажата. 2. Щелкните на панели элементов на кнопке К н о п к а (Command Button) _4 . 3. Установите курсор в области д а н н ы х формы правее элементов Автор и Издание (рис. 13.17) и щелкните. Появится элемент управления К н о п к а и запустится мастер. 4. На первом шаге выберите категорию Действия с формами (Form Operation) и действие Открыть форму (Open Form). 5. На втором шаге укажите имя формы Н е в ы д а н н ы е К н и г и ,
Использование макросов в форме ВзятьКнигу
41
6. На третьем шаге установите флажок Открыть форму и показать все записи (Open the form and show all the records). 7. На четвертом шаге выберите переключатель Текст (Text) и введите надпись на кнопке: Выбрать. 8. На пятом шаге введите имя объекта управления Кнопка: Выбрать. Ш ВзсттьКнигу : Форма
Рис. 13.17. Добавление кнопок на форму ВзятьКнигу
Э. Создадим кнопку, которая будет закрывать форму. Снова щелкните на элементе управления Кнопка (Command Button) на панели элементов и щелкните в нижней части формы под всеми остальными полями. В первом диалоговом окне мастера выберите действие Закрыть форму (Close Form) (рис. 13.18).
Переходы по записям Обработка записей Работа с отчетом Приложение Разное
Изменить фильтр формы Обновить данные формы Открыть страницу Открыть форму Печать текущей формы Печать формы Применить фильтр бор-ы
Рис. 13.18. Создание кнопки, закрывающей форму
41 2
Занятие 1 3. Макросы
10. Введите текст на кнопке и имя кнопки Закрыть. Если вы посмотрите на свойство события Нажатие кнопки (On Click) кнопки Закрыть, то увидите, что это событие также обрабатывается с помощью процедуры VBA. Но третья кнопка, которая нам нужна, будет запускать макрос, сохраняющий данные в таблице Ф о р м у л я р ы . Для ее создания мы не будем использовать мастера. 11. Щелкните на кнопке Мастера (Control Wizards) на панели элементов, чтобы отключить запуск мастера. 12. Щелкните на кнопке Кнопка (Command Button) и щелкните на поле формы левее кнопки Закрыть. 13. На форме появится кнопка, а указатель превратится в текстовый курсор. Выделите им надпись на кнопке и введите новую надпись С о х р а н и т ь . 14. Установите свойство И м я (Name) для новой кнопки: Сохранить. 15. С помощью панели форматирования измените размер шрифта на всех трех кнопках: 10 пт. Установите нужную высоту и ширину кнопки. 16. Раскройте вкладку Макет (Format) диалогового окна свойств формы и установите свойства формы в соответствии с табл. 13.2. Таблица 13.2. Свойства формы ВзятьКнигу Свойство
Значение
Подпись (Caption)
__^_
Режим формы (Allow Form View)
Взять книгу Да
Режим таблицы (AU.ow_ Data sheet View)
Нет
Режим сводной таблицы (Allow PivotTable View)
Нет
Режим сводной диаграммы (Allow PivotChartView)
Нет
Область выделения (Record Selectors)
Нет
Кнопки перехода (Navigation Buttons)__ Тип границы (Border Style) Кнопка оконного меню (Control Box) Кнопки размеров окна (Min Max Buttons) Кнопка закрытия (Close Button)
Нет Окно диалога (Dialog) Нет Нет Нет
В этой форме мы выбрали тип границы Окно диалога (Dialog). Такой тип границы не позволяет пользователю менять размеры окна, в том числе сворачивать и разворачивать (соответствующие кнопки не отображаются).
17. Закройте форму, сохранив изменения макета. Добавим кнопки на форму Н е в ы д а н н ы е К н и г и . Одна кнопка также будет закрывать форму, а вторая будет использоваться для переноса данных из выбранной записи в форму ВзятьКнигу.
Использование макросов в форме ВзятьКнигу
41 3
1. Откройте форму НевыданныеКниги в режиме конструктора. 2. В ленточной форме кнопки нужно добавлять либо в области заголовка, либо в области примечания. 3. Перетащите границу области П р и м е ч а н и я формы (Form Footer) (первоначально ее высота равна 0) вниз приблизительно на 1 см. 4. Создайте кнопку Закрыть так, как это сделали в форме ВзятьКнигу (кнопка Мастера (Control Wizards) на панели элементов должка быть нажата), 5. Создайте кнопку Выбрать (кнопка мастера должна быть отжата). Окончательный вид формы приведен на рис. 13.19. Щ НевыданныеКннги : Форма
*3аг
..jpPlW
-
- -
*'
.
г.:|£ЫУадв(* :
''•",
;
"Г
Нi
|Автор
=
-
•
: .
:
-; :
-
;- •-•• Ш/ '• -"
.
Hpj . Ш дотяни
.
рззвакие
*Пр«чечзние фаркы •
;
\
ЦГодИздг! Ко " -. -:- •" :- * :, : -' .
\[;
:
.
it, IL ; j>M..f.. llb
1j
Ч .K.4JTL -'Jh^blllj
1 |! j
Рис. 13.19. Добавление кнопок на форму НевыданныеКниги
Создание макроса ВыбратьКнигу 1. Щелкните на ярлыке Макросы (Macros) в окне базы данных и нажмите КНОЕку Создать (New) на панели инструментов этого окна. Откроется окно конструктора макросов. Чтобы перенести значения полей текущей записи в форме Н е в ы д а н н ы е К н и г и , будем использовать макрокоманду ЗадатьЗначение (Set Value).
аблицы S3 Запросы Э Forms I- £] Загруженные формь вй Все формы ИЗ Reports Si Функции
Автор^Надпись Н а звание_Н а дпис ь ГодИздания Надпись
т гч-З
, - iBeforeUpdate BorderColo Borderline Style BorderStyle BorderWdth
Рис. 13.20. Использование построителя для выбора элемента управления
414
Занятие 13. Макросы
2. Выберите тз списке макрокоманду ЗадатьЗначение (Set Value). В нижней части окна появится список аргументов. Этих аргументов два; элемент управления, значение которого мы хотим установить, и само значение. Для задания обоих аргументов воспользуемся построителем выражений. 3. Щелкните на кнопке построителя справа от поля Элемент (Item). 4. В дереве объектов в окне построителя выберите нужную форму: Forms\Bce формы\ВзятьКнигу. В списке элементен управления выберите элемент Автор (рис. 13.20) и дважды щелкните на нем или нажмите кнопку Вставить (Insert). 5. В верхнем поле появится ссылка на этот элемент управления. Закройте окно построителя. 6. Аналогично определите значение второго аргумента. Выберите в дереве объект Рогт5\3агруженные ф о р м ы \ Н е в ы д а н н ы е К н и г и (рис. 13.21) и в нем элемент управления Автор.
[Формы]! [НевыданныеКниги]! [Автор]
ffi Таблицы (И Запросы И Forms I— £] Загруженные формы
Автор_Надпись Название __Н а д лись Год Из дамп я_Н а д п ись
ышшЯН I— ЩЕсе формы ЕЙ Reports СИ Функции
AfterUpdate AllowAutoCorrect Auto Tab BackColor BackStyle
BeForeUpdate
Название Го дИ здания КодИздамия Выбрать Закрыть
BorderColor BorderLineStyle Borders С у le BorderWidth
Рис. 13.21. Выбор элемента управления загруженной формы
7. Точно так же добавьте в макрос еще две макрокоманды ЗадатьЗначение (Set Value): одна должна установить значение элемента Н а з в а н и е , а другая — КодИздания. 8. Последняя макрокоманда должна закрыть форму Н е в ы д а н н ы е К н и г и . Выберите в списке макрокоманду З а к р ы т ь (Close) и установите аргументы в соответствии с табл. 13.3. Таблица 13.3. Значения аргументов макрокоманды Закрыть (Close) Значение Тип объекта (Object Type)
Форма (Form)
Имя объекта (Object j^ame)
НевыданныеКниги
Сохранение (Save)
Нет (No)
Использование макросов в форме ВзятьКнигу
41 5
Аргумент Сохранение (Save) позволяет определить, будет ли система при закрытии формы отображать диалоговое окно для подтверждения сохранения измененных данных. Поскольку данные в форме не могут быть изменены (результирующее множество запроса является не обновляемым), этому аргументу нужно присвоить значение Нет. Готовый макрос представлен на рис. 13.22. W- ВыоратьКнигч: макрос д.! Перенос значений попей из формы НевыданньвКниги |в форму ВзятьКнигу
ЗадэтьЗначение ЗадатьЗнзчение Закрыть
... .Ё.З.акрытие формы
*. [Фор11Ь|]![ВэятьКнигу]'[АБтс [Фс1р11ы]![НевыданныеКиип'
Н,
Рис. 13.22. Макрос ВыбратьКнигу
9. Закройте макрос, сохранив его и определив его имя: ВыбратьКнигу. Осталось подключить этот макрос к кнопке в форме. 10. Активизируйте форму НевыданныеКниги. 11. Выделите кнопку Выбрать и раскройте вкладку События (Events) диалогового окна Свойства (Properties). 12. Щелкните на поле значения свойства Нажатие кнопки (Click) и раскройте список. В списке содержится перечень всех макросов и один элемент [Процедура обработки события] ([Event Procedure]). 13. Выберите в списке элемент ВыбратьКнигу. Теперь при нажатии кнопки Выбрать будет выполняться созданный нами макрос. 14. Закройте форму НевыданныеКниги.
Создание макроса ВзятьКнигу Теперь нужно создать макрос, который на основании данных в форме ВзятьКнигу создаст запись в таблице Формуляры. Для этого используем макрокоманду, которая выполнит запрос на добавление записи. Но перед этим создадим этот запрос.
41 6
Занятие 13. Макросы
1. Щелкните сначала на ярлыке Запросы (Queries) в окне базы данных и затем на ярлыке С о з д а н и е запроса с п о м о щ ь ю конструктора (Create Query by Design View). В диалоговом окне Добавление таблицы (Show Table) не добавляйте никакую таблицу, просто закройте его. По умолчанию будет создан запрос на выборку. 2. Щелкните на панели инструментов на стрелке кнопки Тип запроса (Query 3. Затем выберите в списке элемент Д о б а в л е н и е (Append). Появится диалоговое окно Добавление (Append). 4. В поле и м я т а б л и ц ы (Table N a m e ) выберите в списке таблицу Ф о р м у л я р ы (рис. 13.23) и нажмите кнопку ОК.
Рис. 13.23. Диалоговое окно Добавление
В бланке запроса появляется строка Д о б а в л е н и е ( A p p e n d To). В этой строке нужно указать поля таблицы Ф о р м у л я р ы , которым будут присвоены значения. 5. Выберите в списке по очереди все поля таблицы Формуляры, кроме поля ДатаВозвратаФакт 1 (рис. 13.24). Значения, которые должны быть присвоены выбранным полям, нужно указать в строке Поле (Field). Большинство этих значений являются значениями элементов управления формы В з я т ь К н и г у . Поэтому в эту строку должны быть вставлены выражения, являющиеся ссылками на соответствующий элемент управления формы В з я т ь К н и г у , Создать эти выражения можно опять-таки с помощью построителя. 6. Щелкните в строке Поле (Field) первого столбца и на панели инструментов нажмите кнопку Построить ( B u i l d ) jgfp. Появится окно построителя выражений. 7. Выберите в дереве объектов форму ВзятьКнигу и вставьте значение элемента Читатель. Закройте окно построителя. В строке Поле (Field) появится выражение Выражение!: Рогт5![ВзятьКнигу]![Читатель]. Выражение! — это надпись поля, которое создается по умолчанию. Поскольку это поле отображаться нигде не будет, оставьте значение по умолчанию. Это поле пока заполняться не должно.
Использование макросов в форме ВзятьКнигу
41 7
Аналогично заполните строку Поле (Field) для столбцов КодИздания, ДатаВозврата, Примечание. И только для столбца ДатаПолучения нужно ввести выражение Date(). Тогда этому полю будет присвоено значение, равное текущей дате. Запрос должен выглядеть так, как представлено на рис. 13.24. igs ВзятьКннгу : запрос на добавление
I - , ,1.3 IrJ
,1.1'.:
Выражение!: F
Сохранить как (File > Save As). Создадим запрос на обновление СдатьКнигу. 1. Щелкните на ярлыке Создание запроса с помощью конструктора (Create query by Design view) и добавьте в запрос таблицу Ф о р м у л я р ы . 2. Щелкните на панели инструментов на стрелке кнопки Т и п з а п р о с а (Query Туре) и выберите команду О б н о в л е н и е (Update). Запрос на выборку превратится в запрос на обновление. В строке Поле (Field) бланка запроса нужно указать поля, которые следует обновить, а в строке О б н о в л е н и е (Update To) — новые значения этих полей. В нашем случае новые значения полей находятся в форме ВзятьКнигу, поэтому в строке О б н о в л е н и е (Update To) будут ссылки на элементы управления этой таблицы. 3. Перенесите в бланк запроса поля ДатаВозвратаФакт и П р и м е ч а н и е (рис. 13.27). 4. В строку О б н о в л е н и е поля ДатаВозвратаФакт введите выражение [Forms]! [ВзятьКнигу]![ДатаВозврата], а для поля П р и м е ч а н и е — выражение [Forms]! [ВзятьКнигу]! [Примечание]. Теперь нужно ввести условия выборки именно той записи таблицы Формуляры, которая должна обновляться. 5. Перенесите в бланк запроса ключевые поля таблицы: КодЧитателя и КодИздания. 6. В строке Условия отбора (Criteria) поля КодЧитателя введите выражение [Forms]! [ВзятьКнигу]![Читатель], а для поля К о д И з д а н и я — выражение [Forms]![B3flTbКнигу]![КодИздания]. jijj& СвзтьКнигу : запрдс на обновление
ЦатаВозератаФакт !
• . , - . .
КодЧитателя
Формуляры For ms I ВзятьКнигу ! Д ат аВо :
КодИздания оозмуляры
!
r т s ! Ез я т ьКн лгу Г [Рогтв]![ВзятьКмигу]1[Чита [Ропгй]![ВэятьКнигу]![КодИзд.
Рис. 13.27. Запрос на обновление СдатьКнигу
Как превратить форму ВзятьКнигу в форму СдатьКнигу...
421
7. Закройте запрос, сохранив его под именем СдатьКнигу. Запросы готовы, и мы приступим к созданию новых кнопок и макросов. Изменениям подвергнется форма ВзятьКнигу — в нее добавятся две кнопки. Форму Н е в ы д а н н ы е К н и г и трогать не будем. 1. Откройте форму ВзятьКнигу в режиме конструктора. 2. Создайте без помощи мастера две кнопки и для начала разместите их в нижней части формы. Они должны иметь надписи Выбрать и Сохранить, а их имена обязательно должны отличаться от имен другой пары кнопок с теми же надписями. Назовите их, например ВыбратьВозврат и СохранитьВозврат. Теперь нужно создать макросы, которые будут запускаться при нажатии этих кнопок. Оба макроса, как, впрочем, и уже существующий макрос ВзятьКнигу, относятся к форме ВзятьКнигу. Возьмите за правило, что все макросы, относящиеся к одной форме, следует сохранять в одном объекте, благо конструктор макросов это позволяет. Поэтому сейчас мы объединим три макроса в один.
Создание группы макросов 1. Откройте макрос В з я т ь К н и г у в режиме конструктора и на панели инструментов щелкните на кнопке Имена макросов (Macro Names) Появится новый столбец под названием И м я макроса (Macro Name). В этом столбце указываются только имена макросов. 2. Введите в первой строке имя уже написанного макроса ВзятьКнигу (рис. 13.28).
Ззять книгу. . [Фор м ы]![ Бз я т ьКм.игу]1 [Читатель] Is Null. •i... "[Шориы]'[ВзятьКнигу]![Иэданне]151Чи1 :•....... [ФормыИ^атьКнигуМДатаВозврэта^МиИ .. [Формы]'[БзятьКниг|/]![ДатаВозврата] : - : '.•-!.",'
i .-...,.1 л.-iJ'M?
:-,
Рис. 13.29. Аргументы макрокоманды ОткрытьФорму
6. 7.
8. 9.
Все аргументы должны быть уже понятны, Макрокоманда ОткрытьФорму (OpenForm) позволяет открыть форму в любом режиме: формы, таблицы, конструктора и предварительного просмотра (для печати). Можно установить или не установить фильтр, указать режим работы с данными: добавление, изменение, только чтение, можно вообще открыть форму так, что она будет невидима, а потом специальной командой показать ее на экране. Далее нужно изменить заголовок формы Н е в ы д а н н ы е К н и г и . Для этого мы снова будем использовать макрокоманду SetValue (ЗадатьЗначение), но теперь для того, чтобы определить значение свойства формы. В следующей строке выберите и списке команду ЗадатьЗначение. С помощью построителя ч поле ввода Элемент (Item) создайте выражение, которое ссылается па свойство Подпись (Caption) формы (рис. 13.30). В поле ввода Выражение (Expression) введите выражение "Выданные к н и г и " . В третью строчку снова введите макрокоманду ЗадатьЗначение. Аргумент Элемент должен иметь значение [Формы]![НевыданныеКниги].RecordSource, а аргумент Expression имя нужного запроса " В ы д а н н ы е К н и г и " . э£дЗ) Кавычки в строковом выражении аргумента макрокоманды ЗадатьЗначение обязательны.
Названия свойств, как и имена элементов управления в выражениях, удобнее выбирать в окне построителя выражений. В этом случае вы гарантированы от ошибок при составлении таких выражений. Самый быстрый способ узнать значение свойства — справочная система Access.
Еще один макрос, который должен входить в данную группу, — это макрос СдатьКнигу, который очень похож на макрос ВзятьКнигу. Поэтому далее предлагается проделать следующие операции.
Как превратить форму ВзнтьКнигу 8 форму СдатьКнигу...
423
'Формы] |[НевыданныеКниги],[Caption]|
.1 И
I | IN.-.IJ
- СЗ К арт оч к а Дв то ра Пс j -СЗ Читатели - СЭ Формуляры - Q Дет еры Издание - СЗ Издания - СЗ Из дани еП од форма - С] ВзятьКнигу
Before Query BefareRender BeforeScreenTip BeforeUpdate Border Style
попей? Автор_Надпись Наз вание_Надпись Го дМ з д аи ия_На дпи сь
J
As т op Название ГодИздания КодИздания Выбрать Закрыть
£)
CfoseButton ControlBox Count GjrrentSectionLert CurrentSectionTop
Рис. 13.30. Формирование ссылки на свойство формы 10. Выделите все строки, которые относятся к макросу ВзятьКнигу (рис. 13.31), и скопируйте выделенные строки в буфер обмена. 11. Выделите строку, в которой вы должны начать новый макрос, и вставьте данные из буфера обмена. 12. Измените имя макроса: СдатьКнигу. 13. Установите курсор в строку с макрокомандой ОткрытьЗапрос (Open-Query) и измените имя запроса: СдатьКнигу. .г„. ВэятьКнигу
& , : • • _ . ; ..[ •] • •,.•.-.:[Формы]![Взято«нигу]'[Читатель]15Ми11 [Сообщение ]..... j Оста иовитьНак рос ;[*opMbij![B3FiTi=KHnri/J![l(l34aHHe]kl4ull • Сообщение !..., Останов итьМак рос
Не выбран читатель Не выбрано издание Не заполнена дата возврата
{... рстановитьМакрос j i*pp№ij ' [Б зя тв Книгу] 1[ Дат аВозврат а]
.ж J»_
Рис, 13.33. Создание ссылки на свойство элемента управления формы 4. Создайте вторую макрокоманду ЗадатьЗначение (SetValue). Значение аргумента Элемент (Item) должно быть: [Формы]![ВзятьКнигу]![ВыбратьВозврат].Visible (рис. 13.33), а значение аргумента В ы р а ж е н и е — Yes. 5. По аналогии создайте остальные макрокоманды, задав их аргументы (рис. 13.34). Последняя макрокоманда должна устанавливать значение свойства Подпись (Caption). Ж С деть Книгу Форма : макрос
"... ОткрытьФорму ЗадатьЗначение ЗадатьЗначение ЗадатьЗначение ЗадатьЗначение. ЗадатьЗначение ЗадатьЗначение ЗадатьЗначение
• • ' '. 1
..Примечание-; ВэятьКнигу [Формы] ![ВзятьКнигу]|[ДатаВозврата] = Date() [Формь|]![ВзатьКниг^;[![Вь|6ратьВо5Бра.т].[у|51Ь1е] = Да [Формы] |[ВзятьКнигу]![СохраннтьВрзерат]. [Visible] = Да [Формы]![ Взять Книг у]! [Выбрать]. [Visible] = Нет [ Формы] ![ВзятьКнигу]![Сохрамить], [Viable] = Нет [Формы] ([Взять Книгу]. [С apt ion] ~ "Сдать книгу" [Фармы]1[ВэятьКнигу].[5Ко1[си(МепиВаг]:= "Сдать книг/
Рис. 13.34. Макрос Сдать Книгу Форма
426
Занятие 13. Макросы
6. Сохраните макрос под именем СдатьКнигуФорма и закройте его. Чтобы выполнить этот макрос, запустите его прямо из окна базы данных 1 . Для этого нужно выделить макрос в списке в окне базы данных и нажать кнопку Запуск (Run) на панели инструментов окна базы данных. Это, конечно, не лучший способ запуска макроса, и на следующем занятии вы увидите, как запускаются макросы, которые не яиляются обработчиками событий.
Подведение итогов Это занятие было посвящено созданию и использованию макросов. Вы создали несколько макросов, позволивших усовершенствовать взаимодействие связанных форм Издания и КарточкаАвтора, и построили форму ВзятьКнигу, с помощью которой удобно исполнять операции выдачи книги читателю и сдачу книги читателем, создав при этом разнообразные макросы. Вы научились: • создавать макросы как в режиме конструктора, так и непосредственно из диалогового окна свойств элементов управления; • использовать условия, чтобы изменять порядок исполнения макрокоманд в макросе; • назначать макрос для обработки события элемента управления формы; • выполнять макросы в пошаговом режиме, проверяя выполнение каждой макрокоманды; • использовать макрос для обновления данных в поле со списком; • динамически изменять свойства формы и ее элементов управления с помощью макросов.
Макросы пе всегда связыиаются с событиями форм и отчетов.
ЗАНЯТИЕ 14
Сборка приложения
ТЕМА ЗАНЯТИЯ На этом занятии вы узнаете: • как создать и настроить пользовательское меню и панели инструментов; • как создать главную кнопочную форму и как ее использовать; • как настроить рабочую среду Access • какие существуют способы запуска приложения и как обеспечить выполнение начальных дештшш при запуске.
428
Занятие 14. Сборка приложения
Для выполнения упражнений этого занятия вам понадобится только файл Библиотека.mdb, в котором вы создаете свое приложение. Откройте его перед началом занятия
Какие существуют возможности Будем считать, что мы создали все необходимые объекты приложения: формы, отчеты, таблицы, запросы. А теперь представьте, что с созданными вами таблицами и формами будут работать другие люди, которые могут не знать Access. Понятно, что они не должны открывать окно базы данных, искать в нем и запускать нужные формы — для непосвященного человека это сложно и долго. Поэтому создание приложения на этом не заканчивается — необходимо обеспечить быстрый и простой доступ к тем объектам, которые вы создали. Существуют уже проверенные способы связать в единое целое множество объектов приложения и обеспечить простой и понятный доступ к этим объектам, И мы интенсивно использовали эти способы на протяжении всех занятий. Кому-то больше нравится запускать команды меню, кто-то предпочитает нажимать кнопки панелей инструментов, в каких-то случаях удобно бывает создать специальную форму, которая появляется при запуске приложения и имеет кнопки для выполнения различных функций. Еще одна замечательная возможность — это контекстные меню. Если на экране открыто незнакомое приложение то, первое, что хочется сделать, — это щелкнуть правой кнопкой мыши и увидеть, какие функции доступны в данный момент. Все перечисленные возможности доступны разработчику приложений Access. И целью нашего последнего занятия будет знакомство с этими возможностями. Мы попробуем создать и меню, и кнопки на панелях инструментов. Мы создадим главную кнопочную форму приложения Библиотека. И настроим параметры запуска таким образом, что пользователь, запустив приложение, увидит только главную кнопочную форму и то меню и панель инструментов, которые мы создадим.
Создание панелей команд Начнем с создания меню и панелей инструментов. В Microsoft Office 2003 существует специальный тип объектов — панели команд, — обеспечивающий стандартный способ взаимодействия пользователя с любым приложением Microsoft Office. И строка меню, и контекстное меню, и панели инструментов — это все разные тины панелей команд. В своем приложении вы можете использовать как стандартные панели команд Access, изменив их нужным образом, так и специальные пользовательские панели команд, которые созПримеры вы можете найти па сайте издательства www.piter.com на странице, посвященной этой книге.
Создание панелей команд
429
дадите сами. Обычно в стандартных панелях команд удаляют лишние кнопки, чтобы пользователь не мог что-либо испортить в приложении. Общие правила создания и функционирования панелей команд различных типов позволяют легко переносить кнопки панелей инструментов в строки меню и наоборот. -ii>i можете создать панели команд, которые относятся к приложению в целом, появляются на экране при запуске приложения и остаются на экране в течение всего сеанса работы с приложением, аналогично тому, как это сделано в Access. Кроме того, панели команд любого типа можно связать с конкретной формой или отчетом, которые будут появляться на экране только тогда, когда открыта данная форма или отчет. Для этого нужно только установить значения соответствующих свойств формы или отчета: Строка меню (Menu Bar), Панель инструментов (Toolbar), Контекстное меню (ShortcutMenuBar).
Создание меню Создание и изменение панели команд любого вида выполняется в режиме настройки, вызываемом либо командой Вид > П а н е л и инструментов >• Настройка (View >• Toolbars > Customize), либо командой контекстного меню. 1. Щелкните правой кнопкой мыши на панели инструментов или меню и выберите в контекстном меню команду Настройка (Customize). Откроется диалоговое окно Настройка (Customize) (рис. 14.1).
;Панели iefetpV Веб-узел Выравнивание и размер " Запрос в режиме таблицы Конструктор загросов "" Конструктор макросов "~ Конструктор отчетов Г" Конструктор таёлиц "" Конструктор форм Контекстные меню .. Макет страницы "~° Области задач ^ Панель элементов . . Предварительный просмотр Г" Работа с исходным текстом Г" Разметка страницы
• , ••• Рис-14.1. Диалоговое окно Настройка
Раскройте вкладку Панели инструментов (Toolbars). В списке на вкладке перечислены стандартные панели команд (строка меню'и различные панели инструментов) приложения Access. К этому списку нужно добавить новую панель команд типа Строка меню (Menu Bar).
430
Занятие 14. Сборка приложения
2. Нажмите кнопку Создать (New), it диалоговом окне введите имя новой панели команд Главное меню и нажмите кнопку ОК. В окне приложения появится маленькая пустая панель, и в конец списка в окне Настройка добавится новый элемент, Главное меню, который становится выделенным. По умолчанию новая панель является панелью инструментов, а мы должны превратить ее в строку меню, изменив ее тип. 3. Нажмите кнопку Свойства (Properties) (см. рис. 14.1), Появится диалоговое окно Свойства панели инструментов (Toolbar Properties) (рис. 14.2). Свойства панели ин Драимая панель:
%jSfg Mei^M^^Me^lp^j! „j rts --; •--- Сеойств'в панели инструмента Г паьное меню Панель инструментов закрепление; 17 отображен
;'
-:. .г"': i
,, MJll i
. гремещение отображение и ейрут-ие
|
Закрыть
I
Рис. 14.2. Диалоговое окно Свойства панели инструментов •
4. В раскрывающемся списке Тип (Туре) выберите значение Строка меню (Menu Bar). Кроме типа, в этом окне еще есть несколько флажков, устанавливая которые, вы можете задать поведение этой панели команд. П Отображение в меню (Show on Toolbars M e n u ) . Установите этот флажок, если хотите, чтобы название напели команд отображалось в списке панелей инструментов Вид ъ Панели инструментов (View > Toolbars) и в контекстном меню панелей инструментов Этот список состоит из доступных и видимых панелей команд. П Настройка (Allow Customizing). Снятие этого флажка запретит изменение данной панели команд. П Изменение размера (Allow Resizing). Снятие этого флажка запретит изменение размеров данной панели команд. П Перемещение (Allow M o v i n g ) . Снятие этого флажка запретит возможность перемещения панели команд по экрану. П Отображение и скрытие (Allow Showing/Hiding). Снятие этого флажка запретит возможность скрывать и снова показывать панель команд на экране.
Создание панелей команд
431
В поле со списком З а к р е п л е н и е (Docking) можно выбрать позицию панели команд на экране: ло горизонтали, по вертикали, и по горизонтали и по вертикали, или вообще запретить текущую позицию. 5. Сейчас мы не будем менять установленные по умолчанию значения, поэтому нажмите кнопку Закрыть (Close). Итак, мы создали пустую строку меню. В ней видна только строка для ввода вопроса. Теперь добавим в нее элементы — списки команд, раскрывающиеся при выборе их в строке меню или на панели инструментов. 6. Раскройте вкладку К о м а н д ы (Commands) в диалоговом окне Настройка (Customize). 7. Выделите в списке Категории (Categories) значение Новое м е н ю (New M e n u ) . 8. Перетащите элемент Новое меню из списка К о м а н д ы на новую панель элементов. На пей появился элемент Новое меню (New M e n u ) (рис. 14.3).
к !'С-го:л11г!|1'И;!»т.|ШИг-1-.1Ч.'|^Д: « Ш Й * 18
: "'п..
Работа с исходный Встроенные меню Все таблицы Все запросы Все формы Все отметь! Все веб-страницы Все макросы Элементы ActiveX
. 14.3. Добавление элементов в меню
9. Сначала нужно изменить его имя. Щелкните на кнопке И з м е н и т ь выделенные объект (Modify Selection). Раскроется контекстное меню команд (рис. 14.4).
432
Занятие 14. Сборка приложения
Введите в поле ввода И м я (Name) название элемента меню Д а н н ы е и закройте меню, щелкнув где-нибудь в другом месте.
Удалить Имя: Данные
Рис. 14.4. Изменение названия элемента меню
Добавим в меню Данные команды с помощью вкладки Команды (Commands), включив те, что будут открывать созданные нами формы просмотра и ввода информации об изданиях, авторах и читателях. 10. Выберите в списке Категории (Categories) элемент Все ф о р м ы (AIL Forms). В правой части окна в списке Команды (Commands) появляется список форм (рис. 14.5). И. Перетащите в меню по очереди формы К а р т о ч к а А в т о р а , И з д а н и я и Ч и т а тели. Перед тем как перетаскивать команды в меню, щелкните на нем правой кнопкой (на слове Данные). Под ним отобразится маленькая серая панель пустого меню.Туда и нужно перетаскивать первую команду. При перетаскивании остальных команд место вставки помечается горизонтальной линией. Новая команда размещается под этой линией.
Ч1е^добй№цкфандумай*1Иь.нн«ткМвнго.-. выберите;
э
абота с исходны! текЖ Устроенные меню Зсе таблицы Все запросы отчеты 5с s веб-страницы Зс е макросы Элементы ActiveX Новое меню
КарточкаДвТ!; раПо дф орма Читатели
J
Формуляры АеторыИздание Издания -
:
Рис. 14.5. Добавление команд в меню
Создание панелей команд
433
Рис. 14,6. Меню Данные
В результате вы должны получить меню, представленное на рис. 14.6. Посмотрим, как управлять внешним видом команд меню. 12. Щелкните правой кнопкой мыши на строке КарточкаАвтора. Появится уже знакомое контекстное меню, но теперь в нем доступны все элементы (рис. 14.7), Сброс Удалить Имя: ' КарточкаАетора Копировать значок на кнопке Вставить значок для кнопки Восстановите, значок на кнопке Изменить значок на кнопке Выбратьзначакдлякнопки Основной стиле Только текст (всегда) Тслы | 1 | Формуляр.СдвтьКнигу
Справочник Издательства
Рис. 14.8. Добавление макроса в меню
18. Измените имена элементов меню: Взять книгу, Сдать книгу. Следующее меню в строке меню должно содержать все отчеты. 19. Снова добавьте в строку меню элемент Новое меню (New Menu) и назовите его Отчеты, Включите в это меню все отчеты, которые мы с вами создавали. Для этого нужно открыть категорию Все отчеты (AIL Reports). ЗАДАНИЕ Самостоятельно создайте меню Справочники. Включите в него таблицы Издательства, Города, Разделы и МестаХранения.
Кроме ваших команд, в главное меню приложения можно включить и стандартные команды. Для примера включим несколько команд меню Файл (File). 20. Сначала стандартным способом создайте новое меню (вставьте его первым, перед меню Д а н н ы е ) . Назовите его тоже стандартно: Файл. 21. Выберите категорию Файл (File) и перетащите из нее в меню Файл команды Экспорт (Export), Параметры страницы (Page Setup), Выход (Exit)1. 1
Если вы пользуетесь англоязычной версией Access, вы можете изменить название стандартных команд меню, написав их по-русски.
Создание панелей комлнл
43'l
Чтобы придать меню профессиональный вид (как и стандартном меню Access), назначим каждому меню и команде меню клавиши доступа. Буквы, соответствующие этим клавишам, выделяются в названии элемента подчеркиванием. Клавиши доступа используются следующим образом. Чтобы раскрыть меню, нужно при нажатой клавише Alt нажать клавишу, соответствующую подчеркнутой букве в названии этого меню. Например, комбинация клавиш Alt+Ф раскрывает меню Файл. Далее, чтобы выбрать команду меню, достаточно просто нажать клавишу, соответствующую подчеркнутой букве в названии команды. Чтобы указать символ, который будет определять клавишу доступа, нужно в имени команды вставить перед этим символом знак «&». например, &Справочники. При этом в разных командах одного меню должны быть использованы обязательно разные символы, определяющие клавиши доступа, хотя в разных меню символы могут совпадать. Если при создании меню вы где-то ошиблись и хотите удалить элемент меню, перетащите этот элемент в пустую область окна приложения Access и отпустите.
Когда меню готово, закройте диалоговое окно Н а с т р о й к а (Customize), схватите меню за заголовок и переместите в удобное место, например, в верхнюю часть окна приложения. Полная строка главного меню должна выглядеть так, как представлено на рис. 14.9.
Ёид :. ретав*,а, Серв
*£брмупвры
Йтчеты
Соэдание запроса в режиме конструктора Создание запроса с помощью мастера АвторКмиг ВзятьКнигу Вэ^тьКнигу! Вьщаиные^ниги ДатаЦена Книги по авторам Книги по раэде/ам МестаХрзнемияЗзпрос НевыданныеКмиги Сдать Км игу
Рис. 14.9. Строка главного меню приложения
436
Занятие 14. Сборка приложения
Чтобы менять расположение элементов в меню и на панелях инструментов, как пользовательских, так и стандартных, в Microsoft Office Access 2003 появилась специальная кнопка Упорядочить команды (Rearrange Commands) на вкладке Команды (Commands) диалогового окна Настройка (Customize). Откройте еще раз это окно и раскройте вкладку Команды. Щелкните на кнопке Упорядочить команды. Появится диалоговое окно Изменение порядка команд (Rearrange Commands) (рис, 14.10). В этом окне в раскрывающихся списках можно выбрать любую строку меню или панель инструментов. Слева появится макет выбранной панели с перечнем всех команд. Добавлять и удалять команды этой панели можно кнопками Добавить (Add) и Удалить (Delete). Кнопками Вверх (Move Up) и Вниз (Move Down) можно менять порядок следования команд на панели, выделив нужную команду. В этом окне есть также кнопка Изменить выделенный объект (Modify Selection) для доступа к контекстному меню и окну свойств панели.
Открыть... 1й11 £ох ранить Щ; Поискфайлов...
Вии;. ..^" Печать ij^ Прелвзрительный просмотр "t?;. Орфография.,,
|i
Вырезать
'•?!$: Копировать |& Вставить
id1
Рис. 14.10. Диалоговое окно Изменение порядка команд Изменить последовательность команд в меню и панелях инструментов можно, перемещая их мышью в режиме настройки, то есть при открытом диалоговом окне Настройка (Customize). Поэтому новое окно, по сути, дублирует уже существующие возможности Access.
Создание контекстных меню Контекстные меню появляются при щелчке на объекте правой кнопкой мыши. Процесс создания контекстных меню очень похож на создание обыч-
Создание панелей команд
437
ных строк меню, однако вы не увидите этих меню в общем списке панелей команд. Контекстное меню всегда связано с каким-либо объектом: формой, элементом управления, панелью команд и т. д. Создадим контекстное меню для формы ВзятьКнигу и включим в него команды, запускающие макросы, связанные с кнопками на форме. Это альтернативный способ выполнения действий в форме. 1. Откройте диалоговое окно Настройка (Customize). 2. Раскройте вкладку Панели инструментов (Toolbars) и кнопкой Создать (New), создайте новое меню Взять книгу. 3. Нажмите кнопку Свойства (Properties) и в диалоговом окне Свойства панели инструментов (Toolbar Properties) выберите в раскрывающемся списке тип (Туре) значение Контекстное меню (Popup). Панель инструментов преобразуется в контекстное меню, и вы получите предупреждение о том, что данное контекстное меню исчезнет с экрана. 4. Нажмите кнопку ОК и закройте окно свойств панели инструментов. Новля панель команд исчезла. 5. Выберите в списке Панели инструментов элемент Контекстные м е н ю (Shortcut Menus) (установите флажок). Тогда на экране появится специальная панель Контекстные меню (Shortcut Menus). Она содержит все контекстные меню Access. Создаваемые пользователем контекстные меню отображаются в меню Настраиваемый (Custom) (рис. 14.И). .базыданных" 9ильтр" Ферма" Индекс". Макрос" Моцувь" Запрос" Связь* Отчету. Таблица" ЛоосмотрмакегЭ"; Другой - [И астранваемь1й j -
Рис. 14.11. Панель инструментов Контекстные меню
Команды в контекстное меню добавляются точно так же, как в обычное меню. Нам нужны три команды: П Выбрать книгу — должна открываться форма НевыданныеКниги;
6. 7. 8. 9. 10. 11.
П Сохранить — должен запускаться макрос Формуляр.ВзятьКнигу; П Закрыть — должна выполняться команда Закрыть (Close) меню Файл (File). Для удобства добавления команд сдвиньте панель контекстных меню так, чтобы она не перекрывалась диалоговым окном Настройка (Customize). Выберите категорию Все формы (All Forms) и перенесите в меню Взять книгу форму НевыданныеКниги. Выберите категорию Все макросы (ALL Macros) и перенесите в меню макрос Формул яр, ВзятьКнигу. Выберите категорию Файл (File) и перенесите в меню команду Закрыть (Close). Измените названия команд меню так, как показано в списке (шаг 5). Закройте диалоговое окно Настройка (Customize).
438
Занятие 14. СЬорка приложения
Связывание меню, контекстных меню и панелей инструментов с формами и отчетами Созданные строки меню, контекстные меню и панели инструментов можно связывать с формами и отчетами, определив соответствующие свойства формы или отчета. В качестве примера свяжем созданное нами контекстное меню с формой ВзятьКнигу. 1. Откройте форму в режиме конструктора и диалоговое окно свойств формы. 2. Раскройте вкладку Другие (Other) (рис. 14.12).
Рис. 14.12. Связывание контекстного меню с формой
На этой вкладке есть два свойства для подключения контекстного меню: ГЛ свойство Контекстные меню (Shortcut Menu) разрешает или запрещает вывод на экран контекстного меню для этой формы; D свойство Контекстное меню (Shortcut Menu Bar), в котором указывается имя контекстного меню, подключаемого к форме. 3. Установите значение свойства Контекстное меню (Shortcut Menu Ваг) равным Взять книгу (свойство Контекстные меню по умолчанию имеет значение Да). Если специальное контекстное меню в поле Контекстное меню не указано, а поле Контекстные меню имеет значение Да, то при щелчке правой кнопкой мыши на этой форме будет выводиться стандартное контекстное меню.
Контекстное меню может быть связано не только с формой, но и с, элементом формы, так как элемент управления тоже имеет свойство Контекстное меню (Shortcut Menu Bar) на вкладке Другие (Others) (рис. 14.13),
Создание панелей команд
439
IF Поле со списком: ЧнтйтеДЬ Читатель
.
Макет ) Данньда ] События " Другие ]
Все
Имя , , , ..... . . . . ........... |ешт строки состояьы .......
Читатель
Р5.*,им ЕГ*, ,
Нет контроля
.................
-
. . . . . . Д. -Да,..,.,.. , Контекстше немю
......... ...........
о
|
Рис, 14.13. Свойства элемента управления формы
Аналогично связываются с формами строки меню и панели инструментов. Для этого используются соответствующие свойства формы: Строка м е н ю (Menu Bar) и Панель инструментов (Toolbar). Таким образом, с каждой формой может быть связана одна строка меню, одна панель инструментов и одно контекстное меню. Строка меню и панель инструментов отображаются, когда форма открывается в режиме формы, а контекстное меню — при щелчке правой кнопкой мыши на любом месте формы. У элемента управления формы есть только одно свойство — Контекстное меню. Это меню отображается щелчком правой кнопкой мыши на данном элементе управления. 4. Переключите форму ВзятьКнигу в режим формы и щелкните на ней право!1: кнопкой мыши. Появится созданное нами контекстное меню. 5. Закройте форму, сохранив изменения макета. Взять книгу
• Автор
Г Г 5! и-.? ,:< ч i F-II .и
'••( •*