Ирина Харитонова
САМОУЧИТЕЛЬ
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
"... -•
,<...,!..
С.
".I
ТШфаййов: JMicrosoFt Office Access (^mdb^adp;*.rndaj*,rnde;*,ade)
Рис. 1.6. Диалоговое окно открытия файла базы данных При выборе на панели адресов папки Журнал (My Recent Documents) показывается список ярлыков папок и файлов, которые недавно использовались. Ярлык Мое сетевое окружение (My Network Places) обеспечивает доступ к файлам, которые располагаются на всех доступных сетевых ресурсах. Найдите файл Борей.mdb (Northwind.mdb), учебную базу данных, которая поставляется вместе с Office Access. Эта база данных содержит сведения о деятельности торговой компании Northwind (Борей), занимающейся распространением продуктов по всему миру. При стандартной установке Access этот файл устанавливается в папке C:\Program Files\Microsoft Office\Office\Samples. Если же вы устанавливали Access в другое место, то файл учебной базы данных устанавливается во вложенную папку Office\Samples папки, выбранной при установке. Найдя этот файл, нажмите кнопку Открыть (Open) или просто дважды щелкните на нем. Прежде чем откроется окно базы данных, вы можете получить сообщение системы безопасности Microsoft Office о том, что небезопасные выражения в приложении Access не будут заблокированы. Это сообщение появляется к том случае, если на компьютере не стоит пакет обновления Microsoft Jet 4.0 Service
Запуск Access и открытие учебной базы данных
Праеье
Бчд
Вставка
2/
О.КЛЗ
Sir Борей : база данных (Фирма! Access 2000}
" -;:i :•,-Объекты
Сознание таблицы в режиме конструкто Создание таблицы с помощью мастера Создание таблицы путем ввода данных Доставка Заказано Заказы Клиенты Поставщики Сотруцники
Рис. 1.7. Окно базы данных Access 2003
Pack 8 или более поздней версии 1 . Если в данный момент вы не будете скачивать из интернета требуемый пакет обновлений, нажмите кнопку Да. Система безопасности еще раз предупредит вас о возможных небезопасных действиях приложения, и только если вы подтвердите, что все равно хотите посмотреть выбранный файл, наконец, появится заставка приложения. Нажмите кнопку ОК. В следующем окне, которое называется главной кнопочной формой и служит для доступа к основным функциям приложения, нажмите кнопку Окно базы д а н н ы х (Display Database Window). Теперь вы видите на экране главное окно Microsoft Office Access 2003 и окно Борей: база данных (Northwind: Database) (рис. 1.7). В заголовке второго окна указывается, что база дашшх имеет формат Access 2000. Несмотря на то, что уже в Access 2002 был новый формат файла, учебная база данных до сих пор имеет формат Access 2000, и при создании новой базы данных по умолчанию тоже создается база данных в формате
1
Надо сказать, что на дистрибутивном диске нужный пакет обновлений не поставляется. Поэтому, если вы захотите избавиться в дальнейшем от этого сообщения, а заодно и от тех возможных неполадок в работе приложения Access, список которых можно увидеть в отображаемом диалоговом окне, вам придется скачать этот пакет обновлений с неб-сайта Microsoft Update, ссылка на который тут же услужливо показывается.
2!i
Занятие 1. Установка и первые шаги
Access 2000. Правда, Access 2003, так же как и Access 2002, нормально работает с этим форматом и не требует его преобразования в более новый формат1. Если вы любопытны и, прежде чем нажать кнопку Открыть (Open), нажали стрелку справа от нее, вы обнаружите список, который говорит о том, что открыть базу данных можно в нескольких режимах. • Открыть (Open) — этот режим обеспечивает коллективный доступ к выбранной базе данных нескольких пользователей, причем каждый из них сможет не только просматривать данные, но и изменять их. • Открыть для чтения (Open Read-Only) — это тоже режим коллективного доступа, но обеспечивающий только просмотр объектов базы данных. • Монопольно (Open Exclusive) — в этом режиме вы будете единственным пользователем базы данных, одновременно с вами никакой другой пользователь не сможет ее открыть. • Монопольно для чтения {Open Exclusive Read-Only) — вы открываете базу данных только для просмотра и одновременно запрещаете всем другим пользователям открывать этот файл. По умолчанию база данных открывается в режиме коллективного доступа и может быть одновременно открыта с нескольких компьютеров.
Рабочая среда Access 2003 Вид главного окна Access аналогичен окнам других приложений Microsoft Office System 2003. В верхней части окна размещаются его заголовок, строка меню и панель инструментов База данных (Database), в нижней части — строка состояния. Но самым важным элементом интерфейса в среде Office Access является окно базы данных. Оно является контейнером, содержащим все объекты базы данных: таблицы, запросы, формы, отчеты, страницы, макросы и модули. Доступ к этим объектам осуществляется через окно базы данных 2 .
Меню и панели инструментов В Access 2003, как и в других приложениях Microsoft Office System 2003, используются два типа меню: раскрывающиеся и контекстные. Примером раскрывающегося меню является системное меню окна приложения, которое Для тех, кто не работал с предыдущими версиями Access, поясняю, что в версиях до Access 2000 включительно полноценно можно было работать только с «родным» форматом, а базу данных более раннего формата можно было открывать и просматривать, но нельзя было изменять. Поэтому в данном случае обращаю внимание на формат файла базы данных. -, Существует также программный способ доступа к объектам базы данных, но чтобы познакомиться с ним, нужно обратиться к книгам, ориентированным па опытного пользователя и программиста.
Рабочая среда Access 2003
29
появляется при щелчке на значке приложения в левом углу заголовка окна приложения или при нажатии комбинации клавиш Alt+Пробел, Контекстное меню появляется на экране при щелчке на выбранном объекте правой кнопкой мыши. Оно содержит перечень возможных действий с данным объектом в данном контексте. Строка меню под заголовком окна приложения содержит главное меню приложения, с помощью которого можно получить доступ к командам меню. Вид строки меню Access 2003 зависит от режима, в котором находится приложение. На рис. 1.7 строка меню приложения соответствует режиму «база данных», когда активным окном является окно базы данных. Ниже строки меню по умолчанию расположена панель инструментов с кнопками. Многие кнопки имеют тот же вид и назначение, что и в других приложениях Microsoft Office System, но, конечно, большинство кнопок предназначено для выполнения специфических функций Access. Кнопки панели инструмента дублируют часто используемые команды меню. Подведите к любой из кнопок указатель мыши и немного подождите. Появится всплывающая подсказка, которая объясняет ее назначение. В Access 2003 двадцать семь встроенных панелей инструментов, появляющихся на экране при различных режимах работы приложения. Кроме того, пользователь может создавать собственные панели инструментов. Если всплывающая подсказка не появляется, значит, этот режим отключен. Чтобы его включить, выполните команду Вид > Панели инструментов » Настройка (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- КодКпиента
Название ОбращатьсяК Должность Адрес Город Область №|Декс : ,,-,.<,
!
' £
|Текс !Текс ;Текс •Текс [Текс |Текс !Текс ]Текс Ttf L
".-|-':.|
овый овый овыи овыи овьй
j
.
•
•
.
-
•
'
-
- ШШШ
1 1 Щ
-:
|
-
:
-
| -
...Уникальный пятисимБольный код, образуемый ю названия .организации...
Улица илип/я.
ОВВ1Й
оасй овьй осыи
Область или республика.
[•bn-,iisOJi :
.Подрие* Зио'-*:--н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 -<'<••>••,.; i ? Длинное .целое НПрьга }иач5ни.ч 1
.• >ов гсде
Последовательны
; 01 . - : , '
- ,
•-.,
1 Ространс 2-Почта "
j (095)972-9931 1(095) 124-3199 r (095)2l"l-
Код поставщика 1 Да (Совпадения не допускаются)
Рис. 1.15. Многодокументное главное окно Access
'S*j. .;-
Рабочая среда Access 2003
37
конструктора, а некоторые — в режиме выполнения. Переключение между окнами может выполняться с помощью меню Окно (Windows), которое содержит список всех открытых объектов с указанием не только их названия, но и типа 1 . Активное окно в списке помечено установленным флажком. Удобно разместить на экране несколько окон можно, воспользовавшись командами меню Окно (Windows): Сверху вниз (Tile Vertically), Слева направо (Tile Horizontally), Каскадом (Cascade). На рис. 1.16 представлены окно базы данных и окна открытых объектов с режиме «слева направо». Такой режим иногда бывает очень удобен, так как объекты Access легко перетаскиваются мышью из окна в окно. А перетащив объект из окна базы данных на свободное место в поле главного окна Access, вы открываете его — это еще один способ открытия объекта. Ц2 Microюft Access -f -.fi
QKWS
.Справке
'.•
10246; Chartreuse verte ia248jNuNuCf Nuss-Noug 10246:Mishi Kobe Niku 1Q2.i8 Jack's New England." 10248 Carnembert Pierrot ip249:yaikoinensuk|3a 10249 Sir Rodney's Marma 10250 Chang ^ 10250I.Boston Crab Мва1 10250.Uncle Bob's Organic ТСгЖГСпоссЫ di погпа Al Jp251jChang 10251'Scottish Longbreac; 1025ZMascarpDre Fabiol> 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 -,. •
'• ••' ,
'..;•
г;. .. .
• ..
Окно
Справка
Ана/1ИЭ продаж В сводном СПИСКЕ нажмите индикатор развертывания (+) около имени НазванивПолучсгеля, чтобы просмотоеть заказы для данного клиента. Нажмите индикатор развертывания около имени сотруднииэ, чтобы просмотреть заказы данного сотрудника. Чтобы вызвать справку по изменению макета и прочим способам анализа данны* в списке, нажмите кнопку "Справка" на панели инструментов сводного списка.
^
- "
'ЦрЩ: ЫI
!ffl!HHMHI э,тнлП<ш¥Ч>Зггеля
3300 ЛОр
s'i'^ffifl
5"U4,DOp 9 40В',50.р 19408 .SDp бЭЗО^Шр 16410Дрр
i Рис. 1.19. Странииа доступа к данным с установленным фильтром
40
Занятие 1. Установка и первые шаги
справка по работе с этой таблицей. Щелкните на кнопке со стрелкой справа от слова Фамилия (LastName) и в раскрывшемся списке сначала снимите флажок у элемента Показать все (ALL), а потом установкой флажка пометьте две любые фамилии. После этого нажмите кнопку ОК. Результатом будет таблица, в которой содержатся данные только для выбранных сотрудников (рис. 1.19). В отличие от других объектов, страницы доступа к данным хранятся вне файла базы данных и могут, например, посылаться по электронной почте или публиковаться на веб-сервере. Более подробное знакомство со страницами доступа к данным произойдет на Занятии 12. 12. Закройте страницу А н а л и з продаж (AnaLyze SaLes). Еще два типа объектов — макросы и модули — открывать сейчас мы не предлагаем. Оба они представляют собой программы, которые позволяют существенно расширить функциональные возможности приложений, разрабатываемых в Microsoft Office Access. С макросами вы познакомитесь на Занятии 13, а модули, для создания которых требуются знания в области языков программирован и я , в рамках данного самоучителя рассматривать мы не будем. Объекты Access можно не только создавать или изменять. Их можно также удалять, переименовывать, копировать. В этом смысле с ними можно обращаться как с отдельными файлами. Не нужно сейчас удалять или переименовывать объекты в базе данных Борей, но познакомимся с тем, как это можно делать. На панели инструментов окна базы данных есть кнопка Удалить (Delete). Если щелкнуть на этой кнопке, то от вас потребуют подтверждения операции, и после этого выделенный в списке объект будет удален. Но для удаления объекта можно воспользоваться и стандартным способом, используя клавишу DeLete на клавиатуре. Чтобы переименовать объект, удобнее воспользоваться контекстным меню. Щелкните на том объекте, который нужно переименовать, правой кнопкой мыши и выберите в контекстном меню команду Переименовать (Rename) ('рис. 1.20). Если вы любите работать с клавиатурой и готовы запомнить нужные комбинации клавиш, выделите объект и нажмите клавишу F2.
После этого название объекта выделяется, и его можно изменить. Чтобы скопировать или переместить объект, можно воспользоваться стандартными командами копирования и вставки. Например, копировать таблицу в буфер обмена можно одним из многочисленных способов: • выделить эту таблицу в списке и нажать кнопку Копировать (Сору) на панели инструментов База д а н н ы х (Database) (под строкой меню); • щелкнуть правой кнопкой мыши на имени таблицы и в контекстном меню выбрать команду К о п и р о в а т ь (Сору); • выделить таблицу и нажать одну из комбинаций клавиш — CtrL+Ins или Ctrl+C; • выделить таблицу и выполнить команду Правка > Копировать (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
<'•$• Запуа и параметры •:ч^ Печать файлов -^-Создание баз данных иобъектов и работа с ними ?.м? Работа с данными с выражениями с проектами Microsoft Access ция 6as данных L i -|^ Обеспечение безопасностииконфиденииальноети :. --^Использование Microsoft Access при работе в Интернете ,-.'^ Программная поддержка ^Средства работы с конкретными языками ••^Microsoft"Access Visual Basic Reference •ф Microsoft ActiveX Data Objects (AOQ). V^ Microsoft DAQ3.№ -Я?'Справочник Microsoft Jet'SQL . ' . , . - i'^Jetandftepiication Objects ' :-. ^Microsoft Wsual Basic Docufnefitatiort ' %'Wcrosoft Office Visual Easic Reference
Рис. 1.26. Оглавление справочной системы Access Параметры слчжб
| Параметры отзьвое польэсватег
параметры содержимого в сети Пл^ Веб-узеп Microsoft Office Online содержит тысячи шаблонов, разделов ~w справки и клипов мультимедиа, которые вы можете исгюль5овать при работе над своими проектами.
Показать содержимое и ссылки с вебтузлд Microsoft Office Online
-
jR Двтоиатический поиск в сетевом содержимом при наличии подключения (•?.• Автоматически отображать справку по шаблону (при ее наличии) F? [Показывать ссылки на материэл=1 вей-узла Microscft: Office Online!
Рис. 1.27. Настройка отображения ссылок на ресурсы Microsoft Office в Интернете
иногда даже навязчиво — дает советы, напоминания. Чтобы просмотреть сонет помощника, нужно щелкнуть на значке горящей лампочки рядом с помощником. Однако режим его работы, в том числе и степень активности, настраивается. Активизируйте помощника, если он у вас спрятан или отключен. Для этого достаточно, например, выполнить команду Справка » Показать п о м о щ н и к а (Help > Show the Office Assistant), и помощник появится на экране. Если он уже актини-
48
Занятие 1. Установка и первые шаги
зирован, щелкните на нем правой кнопкой и выберите в контекстном меню команду Параметры (Options). Появится диалоговое окно П о м о щ н и к (Office Assistant). На вкладке Коллекция (Gallery) с помощью кнопок Далее (Next) и Назад (Back) можно выбрать тот персонаж, который вам более всего симпатичен, а на вкладке Параметры (Options) присутствует довольно большое количество флажков (рис. 1.28). Можно несколько утихомирить помощника, установив флажок отображать только важные советы (Only Show High Priority Tips), а можно, наоборот, включить еще и звуковое сопровождение (Make Sounds). Можно назначить ему вполне определенные функции, например, отображать информацию о комбинациях клавиш для используемых средств, установив флажок о сочетаниях клавиш (Keyboard Shortcuts), а можно вообще отключить.
. . . . .
!'.. .
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), если предположить, что таблица Заказы содержит записи о товарах, заказанных клиентами. Очевидно, один и тот же товар может содержаться в разных заказах, и в то же время один заказ может содержать много товаров. Такой тип отношения между таблицами называется «многие-ко-многим-». Если каждой записи в одной таблице соответствует только одна запись в другой таблице, то это отношение <<одии-к-одному». Такой тип отношений встречается реже. Это может быть, например, когда объект содержит большое число атрибутов и оказывается удойнее разнести их по разным таблицам, которые оказываются связанными отношением «один-к-одному», или нужно определить дополнительные атрибут >i для некоторых записей в основной таблице. Тогда эти дополнительные атрибуты помещают в другую таблицу и связывают с периом отношением «один-к-одному». Любая СУБД позволяет выполнить следующие операции с данными: • добавление записей в таблицу; • удаление записей из таблицы; • изменение значений некоторых полей в записях; • поиск записей, удовлетворяющих заданному условию. Для выполнения этих операций создаются запросы. Результатом выполнения запроса может быть либо извлечение некоторого множества записей, которое часто называют результирующим набором, либо изменение данных в таблицах. Для формулирования запросов к базе данных был создан специальный язык, название которого — язык структурированных запросов (Structured Query Language, SQL). Важной функцией СУБД является управление данными, под которым понимчют защиту данных от несанкционированного доступа, поддержку многопользовательского режима работы с данными, обеспечение целостности и согласованности данных.
54
Занятие 2. Создание базы данных
Защита от несанкционированного доступа состоит в том, что каждому пользователю разрешается видеть и изменять только те данные, которые определены его правами. Средства многопользовательского доступа обеспечивают одновременную работу с таблицами множества пользователей, и при этом они не позволяют нескольким пользователям одновременно изменить одни и те же данные. Средства обеспечения целостности и согласованности данных предотвращают их некорректные изменения, то есть такие изменения, которые могут привести к нарушению целостности, например, добавление записи, у которой не определено значение ключевого поля, или удаление записи в главной таблице, если эта запись имеет связанные записи в подчиненной таблице.
Различия между базами данных Access и таблицами Excel На первый взгляд, таблицы Access очень похожи на таблицы Excel. Однако между ними существуют принципиальные различия. Одно из них мы уже отмечали — для каждого столбца таблицы Access определен тип данных, тогда как в столбец таблицы Excel можно вводить разнородные данные. Другие различия не менее важны. • Access позволяет не просто вводить данные в таблицы, но и контролировать правильность этих данных. Для этого устанавливаются правила проверки на уровне таблиц. При этом, как бы вы ни вводили данные — прямо в таблицу, в форме или на странице доступа к данным, — Access не позволит сохранить н записи данные, нарушающие эти правила. • В таблицах Excel часто приходится держать повторяющиеся данные. Структуру таблиц базы данных разрабатывают таким образом, чтобы избежать дублирования информации. Это позволяет не только экономить память, но и увеличить скорость и точность обработки данных. • Access имеет очень развитую систему защиты от несанкционированного доступа, позволяя разным пользователям или группам пользователей назначать разные права доступа как к данным, так и к элементам интерфейса: формам, командам меню, отчетам. • В то же время Excel обладает прекрасными возможностями выполнения расчетов и анализа данных. Причем данные могут извлекаться не только из книг Excel, но и из баз данных Access.
Создание базы данных с использованием шаблона Теперь, когда вы познакомились с основными понятиями реляционных баз данных, можно приступить к созданию собственной базы данных, Чтобы максимально облегчить этот процесс неопытному пользователю, разработчики Access, кроме учебной базы данных Борей, создали несколько шаблонов для общеупотребительных задач. Новички могут воспользоваться этими шаблонами и затем адаптировать их к своим потребностям. Главное — это изучить, как
Создание базы данных с использованием шаблона
55
правильно разрабатывать структуру таблиц и устанавливать связи между ними, так как грамотно спроектированная база данных — залог успеха всей работы. Познакомимся с одним из таких шаблонов. Запустите Microsoft Office Access, как делали это на первом занятии, но в области задач Приступал к работе (Getting Started) выберите строку Создать файл (Create a new file). Появится новая область — Создание файла (New File). В верхней части этой области несколько задач позволяют создать чистую базу данных, а в нижней части находятся задачи, которые позволяют создать базу данных на основе существующего шаблона. Этот шаблон можно поискать в Интернете, а можно в папках своего компьютера. Выберите строку На моем компьютере (On my computer). Появится диалоговое окно Шаблоны (Templates) с двумя вкладками: Общие (General) и Базы д а н н ы х (Databases). 1. Раскройте вкладку Базы д а н н ы х (Databases), и вы увидите ярлыки с названиями имеющихся шаблонов (рис. 2.3).
Обо1ие
Ба*ы дачных
Главная
Заказы на работы
Контакты
Мероприятия
[Основные ( I фонды !
Прием заказов
Проекты
Расходы
Ресурсы
Склад
Просмотр
Отг-ена
Рис. 2.3. Диалоговое окно выбора шаблона
Дважды щелкните на ярлыке Заказы на работы (Order Entry). Появится диалоговое окно Файл новой базы д а н н ы х (File new database) с содержимым папки Л и ч н а я (Personal) или Мои документы (My Documents) (рис. 2.4). В этом окне можно выбрать папку, в которой будет сохранен файл базы данных, и задать имя этого файла. Можете оставить все предлагаемые по умолчанию значения и нажать кнопку Создать (Create). Запускается мастер создания базы данных, и появляется первое диалоговое окно, в котором приводятся краткие сведения о содержимом базы.
56
Занятие 2. Создание базы данных
Фаил новой базы данных Папка:
Pj] My Documents
!"|; ^Заказы на работыl.mdt окружение
Сод»-''
;
- ГИЯ фай т$: «База данных Microsoft Office Access (*.mdb)
• МП>>Ч..,
Рис. 2.4. Диалоговое окно создания базы данных
3. Ознакомившись с этой информацией, нажмите кнопку Далее (Next). Появляется второе диалоговое окно (рис. 2.5). В нем слева вы видите список таблиц, которые включены в шаблон базы данных. В правой части диалогового окна показывается список полей для выделенной в списке таблицы. Когда выделена первая таблица — Сведения о клиентах (Customer Information), справа видны поля этой таблицы. Сознание баз данный
ttl и l.^ilHW. •
Сведения о клиентах Сведения о работах Сведения о ресурсах Сведения о нужном оборудовании Сведения об оборудовании Сведения об оплате Сведения о сотрудниках Методы оплаты Сведения об организации
Ш' (•/Код клиента (7 Название
,/ -• : , ,. ,:. ;. * — * — — — 1
17 Имя )7 фамилия Р Адрес счета 17 Город 17регмон (7 Индекс |7:Странафегион
< Назад
Ц
|
т
jj-аягв > :
:
. „;„„м
Рис. 2.5. Выбор таблиц и их полей
Гот№0 ' - ' ? • - '- -; — ^1
Создание базы данных с использованием шаблона
57
4. Прокрутите список полей, и вы увидите, что почти все поля помечены установленными флажками. Эти поля будут включены в таблицы вашей базы данных. Можно установить флажки и остальных полей — в данной таблице это поле Заметки (Notes), — они тоже включаются в таблицу. Нажмите кнопку Далее (Next). Появится следующее диалоговое окно (рис. 2.6).
Диффузный
1ШШ39НМ1
Международный Наждачная бумага Официальным Про № пиленный Рисовая бумага Рисунок Суми Стандартный Чертеж
Рис. 2.6. Выбор стиля оформления экранных форм
5. В этом окне можно выбрать вид оформления экранных форм. По умолчанию предлагается стиль Стандартный (Standard). Выделяя разные стили, наблюдайте в левом поле, как будут выглядеть формы. Выберите любой понравившийся стиль и нажмите кнопку Next (Далее). Создание баз данным Выберите вид оформления отчета на печати.
Обычный Полужирный Сжатый Спокойный Строгий
Подпись данных %М Элемент денных
-< Назад'-
.&алее>
Рис. 2.7. Выбор стиля отчетов Access
58
Занятие 2. Создание базы данных
6. Б следующем диалоговом окне (рис, 2.7) точно так же выберите стиль отчетов и снова нажмите кнопку Далее (Next). 7. Появляется еще одно диалоговое окно (рис. 2.8), в котором можно задать название базы данных и файл логотипа, вставляемый в отчеты. Оставьте в этом окне предлагаемый вариант установки значений и нажмите кнопку Далее (Next). Сознание баз данных
j; (Заказы на работы!
I: (р
Рис. 2.8. Определение имени файла базы данных
Теперь все сведения собраны, и в последнем диалоговом окне предлагается либо сразу открыть созданную базу данных, либо отказаться от открытия (рис. 2.9). Нажмите кнопку Готово (Finish).
Рис. 2.9. Последнее диалоговое окно мастера создания баз данных
После этого нужно немного подождать, так как на создание базы данных требуется время. В течение этого времени на экране будет отображаться инфор-
Создание базы данных с использованием шаблона
59
мационное окно Создание баз д а н н ы х (Database Wizard), демонстрирующее ход выполнения процесса (рис. 2.10).
Рис. 2.10. Индикатор прсшесса мастера баз данных
9. В конце процесса мастер потребует ввести сведения о вашей организации, для чего будет выведена специальная форма (рис. 2.11). Заполните эту форму произвольным образом и закройте ее. Ш Сведения об органкэаиим
Рис. 2.11. Диалоговое окно информации об организации
Появится окно Главная кнопочная форма (Main Switchboard) (рис. 2.12). Это ок:ю является одной из форм созданной базы данных. Такая форма используется в приложениях Access для выполнения различных функций. ЗАДАНИЕ В нижней части главного окна Access должно быть видно окно базы данных в свернутом виде. Разверните его. Изучите списки объектов. Вы убедитесь, что имеете полноценное приложение, в котором присутствуют все основные объекты: таблицы, запросы, формы, отчеты.
Если вы не видите окна базы данных, нажмите на панели инструментов кнопку Окно базы данных (Database) Icgl
Теперь при открытом окне базы данных выполните команду Сервис » Схема данн ы х (Tools t Relationship). Появится окно Relationship (Схема данных), в котором в графическом виде представлены все таблицы базы данных и связи между ними. Эта схема показана на рис. 2.13: чтобы сделать ее нагляднее, мы перемес-
60
Занятие 2. Создание базы данных
3>afoi
flr-мо
Правка
-
:
-.;
•
•
|\,
.'V.'.'
•••:. -•-'-• • i
•
.
Рис. 2.12. Главная кнопочная форма базы данных
.ЛИЯ,,
Bjfflf if
КодЗаказа КодС отру дичка ОппачивэеныеЧдсы Ставка Прииечание
КодОплаты КодЭаказа СумнаОплаты ДэтаОпяаты НомерКарточки ИмяВладельцеКартомкн Срок Деист вияКарточки КодМетодаОгпаты
.
КодЮиагта j»J
Иия
КодСотрудника НомерЗгказа ДатаПопученио ДатаНа5начения Изготов>иель№1одель СернчныйНомер ОпнсашеНеисправности ДатаЗйвесшения Выдано КалоговаоСтавка
~Л КодМЕТодаОппаты дМетодаСппаты f^..| ^|Метт о дОппаты •$•]&% ! •ртсчка
Должность Рабочий Телефон Ставка
КодНеобжожипгвОборуддвдия КодЗаказа Ссоот лования Количество
1
М i
Рис. 2.13. Схема данных задачи
тили таблицы в поле окна. Вы можете сделать то же самое. Таблицы легко перемещаются мышью, если схватывать их за заголовок. Вес таблицы связаны между собой отношением «один-ко-многим». Связь со стороны «один» помечена значком 1, а со стороны «многие» — значком QD (бесконечность).
Создание базы данных без применения шаблона
61
ЗАДАНИЕ Разберитесь в структуре этой базы данных для закрепления сведений первой части занятия. По умолчанию новая база данных имеет формат Access 2000. Это означает, • то новая версия Access продолжает работать с файлами .mdb формата Acc»ss 2000. Более новый формат, который появился в Access 2002, позволяет некоторые операции выполнять более эффективно, поэтому вы можете создавать 1 базы данных в формате Access 2002 . Командой Сервис > Параметры (Tools * Options) откройте диалоговое окно Параметры (Options), перейдите на вкладку Другие (Advanced) и выберите в списке Формат файла по умолчанию (Default File Format) другой тип формата — Access 2002-2003 (рис. 2.14).
Еид Другие
вви^тра ] : №*ии таблицы | \ Формы и отчеты обеджа ошибок
j1
^ С?)фйг^зфи^ j: *-j;
'-.'дм^Ф'Файдап^уадалчани'о | Access 2002 - 2003 Pi-*>lf1 (Л rrii iTH.I ПО -,И,-'Л
Рис. 2.14. Диалоговое окно параметров
Создание базы данных без применения шаблона Начнем создавать свое собственное приложение, что называется, с нуля. Дня этого нужно создать пустой файл базы данных. Наше приложение предназначено для хранения данных о книгах в домашней или другой небольшой библиотеке. Назовем этот файл (и приложение) Библиотека. В Access 2003 формат файла базы данных не изменился — впервые за всю историю развития этой СУБД.
62
Занятие 2. Создание базы данных
1. Сначала закройте файл базы данных Заказы на работы, с которым работали до этого. 2. Выполните команду Файл > Создать (File * New) или нажмите кнопку Создать (New) панели инструментов Access База д а н н ы х (Database). Появится уже знакомая вам область задач Создание файла (New File). 3. Выберите в ней строку Новая база данных (Blank Database). Появляется диалоговое окно Файл новой базы д а н н ы х (File New Database) с содержимым папки Л и ч н а я или Мои документы (см. рис. 2.4). 4. В раскрывающемся списке Папка (Save in) выберите ланку, в которой будет храниться создаваемая база данных. Можете сделать это прямо в папке Мои документы. 5. В поле ввода Имя файла (File name) введите имя Библиотека и нажмите кнопку Создать (Create) 1 Появится окно Библиотека: Database. 6. По умолчанию в окне базы данных открыт список таблиц, который содержит только три ярлыка, позволяющие тремя разными способами создавать таблицы (на следующем занятии). Можно создать новую базу данных из уже существующего файла. Такая база данных будет представлять собой копию уже существующей. Для этого в области задач Создание файла (New File) нужно выбрать строку Из имеющегося файла (From Existing File), а затем в диалоговом окне Создание из имеющегося файла (New from Existing File) выбрать файл, копию которого вы хотите создать.
Создание проектов Access 2003 При создании новой базы данных вы могли обратить внимание, что в области задач Создание файла (New File) существуют и другие строки. Одна из них используется для создания страниц доступа к данным — Пустая страница доступа к данным (Blank Data Access Page), а две оставшихся — для проектов Access 2003. Проект Access 2003 — это тип файла Access (расширение .adp), представляющий собой клиентскую часть для доступа к серверу базы данных. И хотя разработка таких приложений выходит за рамки данной книги, кратко познакомимся с этим типом файлов. Основное отличие файла проекта от файла базы данных в том, что файл проекта не содержит таблиц. Таблицы должны быть размещены на сервере базы данных, и, как правило, это Microsoft SQL Server. В файле проекта находятся объекты, которые обеспечивают доступ к этим таблицам и образуют интерфейс приложения. Закройте базу данных Библиотека и попробуйте создать проект Access. Для этого; По умолчанию Access присваивает новой баае данных имя dbl, а если такой фай;| уже существует, то db2 и т. л.
Создание проектов Access 2003
63
1. Выполните команду Файл > Создать (File > New); 2. В области задач Создание файла (New File) выберите строчку Проект с н о в ы м и д а н н ы м и (Project using new data). В диалоговом окне Файл новой базы д а н н ы х (File New Database) введите имя файла проекта Тест. Этот файл получает расширение .adp. Нажмите кнопку Создать (Create). Через некоторое время появляется диалоговое окно Мастер базы данных Microsoft SQL Server (Microsoft SQL Server Database Wizard). В этом окне требуется ввести параметры, которые обеспечили бы соединение с сервером базы данных. 3. Закройте это окно кнопкой Отмена (Cancel): параметры соединения с сервером можно задать и позже. Появляется окно проекта Access 2003 (рис. 2.15).
Рис. 2.15. Окно проекта Access 2003
Окно проекта Access аналогично окну базы данных, но на панели объектов появился один новый объект — Схемы базы данных (Database Diagrams) — аналог схем баз данных Access, только в проекте, который может содержать очень большое количество таблиц, можно создать несколько таких схем. Этот объект, так же как и Таблицы (Tables) и Запросы (Queries), размещается не в файле проекта, а на сервере базы данных. Присоединить базу данных на сервере к существующему проекту Access 2003 можно с помощью команды Файл ^ Подключение (File f Connection), В диалоговом окне Data Links Properties (Свойства связи с д а н н ы м и ) (рис. 2.16) нужно установить параметры соединения с сервером: имя сервера, идентификатор и пароль пользователя и имя базы данных.
64
Занятие 2. Создание базы данных
Cowiecfior» Advaft=ed I Spectfy the IcJtawing <•:• 1. Select oterta a -SM 2. Enlec ireomiatffln to log on ID ihe setven. ; -. *"' Уье ^ndcws N Hntegta'sd secwly ' 5 * jjse sspeciScusefnanBaidpasswo "". i" :V л Цдег .name: |
;V
.;- -I™ BlarJs paE»v«d
":Г~ АВслч jawing passwotd
АНа^з э database fJe as a database name;
nnection
Caned
Рис. 2.16. Диалоговое окно мастера баз данных Microsoft SQL Server ЗАДАНИЕ Если в вашей организации есть сервер базы данных Microsoft SQL Server, попробуйте из проекта Access подключиться к одной из баз данных этого сервера. Для этого нужно получить у администратора соответствующие права и, возможно, воспользоваться его помощью при установке на сервер учебной базы данных. В качестве примера можно взять демонстрационную базу данных Pubs, которая создается на SQL Server при установке и содержит данные о книгах, их'авторахи издателях, ил и учебную базу данных NorthwindCS, входящую в комплект демонстрационных приложений Access 2003. При установке Access 2003 в папке Samples размещается сценарий установки этой базы данных на Microsoft SQL Server — файл NorthwindCS.sqL Он содержит набор предложений SQL, которые создают на сервере необходимые таблицы, представления, хранимые процедуры и загружают данные. Этот сценарий можно выполнить на сервере с помощью утилиты SQL Enterprise Manager, включенной в состав Microsoft SQL Server 2000.
Подведение итогов Итак, на этом занятии вы научились; • создавать новые файлы баз данных Access 2003; • с помощью мастера баз данных создавать базы данных по шаблону. При этом вы еще познакомились с основными понятиями реляционных баз данных и проектами Access 2003.
Часть II Работа с таблицами
3 Зак. 680
ЗАНЯТИЕ 3
Создание таблиц
ТЕМА ЗАНЯТИЯ На этом занятии мы создадим таблицы, необходимые для разработки приложения Библиотека. При этом вы узнаете: • как создавать таблицы различными способами; • как описать поля таблицы, определить их свойства, а также задать свойства самих таблиц; • зачем создаются ключевые поля и индексы; • каким образом можно задать условия проверки вводимых в таблицу данных; • что такое поля подстановок и как их использовать; • как определить связи между таблицами базы данных.
Создание таблии путем ввода данных
6/
Для выполнения упражнений данного занятия вам потребуется файл Библиоте1 ка.mdb, созданный на прошлом занятии . Вы можете предварительно познакомиться с теми таблицами, которые предстоит создать, открыв файл примера Библиотека2003.то!Ь.
Теперь запустите Access и откройте файл Библиотека.mdb.
Создание таблиц путем ввода данных Если таблица несложная, ее можно быстро создать путем ввода данных. Мы создадим таким способом таблицу Города. Эта таблица будет состоять из двух полой: одно из них будет содержать код города, а другое — его наименование. Такие таблицы обычно называются справочниками и используются, чтобы исключить многократны и ввод и хранение в базе данных одних и тех же значений. Например, в базе данных Библиотека будет таблица Издания, хранящая данные о книгах. В одном из полей нужно хранить название городи, в котором издана книга. Чтобы не вводить в каждой строке название городя, и создается справочник. В любой базе данных обычно присутствует несколько справочников, иногда много. Рекомендуется создавать справочник для тех полей таблицы, которые могут иметь ограниченный набор значений, например, Виды изданий или Категории товаров. Если в процессе работы могут понадобиться новые значения такого поля, значит, нужно создавать дополняемый справочник. В противном случае нужно запретить пользователю ввод в справочник новых записей.
Рекомендуется применять справочники для тех полей в таблицах, по которым может выполняться группировка данных при их обработке. Например, если нужно сгруппировать все книги по разделам и подсчитать, сколько книг присутствует в библиотеке по каждому разделу, стоит использовать справочник разделов. Применение справочников позволяет избежать случаев, когда пользователь вводит в поле неправильное значение, что может повлиять на результаты обработки данных.
Начнем создавать таблицу. 1. Раскройте список таблиц, щелкнув на ярлыке Таблицы (Tables). 2. Щелкните в списке таблиц на ярлыке Создание таблицы путем ввода д а н н ы х (Create Table by Entering Data). Появится пустая таблица со стандартными Примеры вы можете найти па сайте издательства www.piter.com на странице, посвященной этой книге.
68
Занятие 3. Создание таблиц
названиями столбцов: Поле! (Field 1), Поле2 (Field2) и т. д. (рис. 3.1). Первоначально создается таблица с 10 полями 1 . Будем вводить данные в поля этой таблицы.
1
.Москва
Jcnej'..
-
Рис. 3,1. Создание справочника путем ввода данных
3. В первой строке введите данные в Поле! (Fi'eldl) и Поле2 (Field2): 1 и Москва соответственно2. Во второй строке — 2 и СПб. 4. Аналогично можно ввести еще несколько строк с кодами и наименованиями городов. Важно, чтобы значения кодов в Поле! были разными для каждого города, так как код однозначно идентифицирует город, и это поле будет использоваться для связи с другими таблицами. Теперь переименуем заголовки столбцов. 5. Щелкните правой кнопкой мыши на заголовке первого столбца и выберите в контекстном меню команду Переименовать столбец (Rename Column). После этого стандартное название столбца выделяется, и вы можете вводить новое. Введите строку КодГорода. На рис. 3.1 видно только 7 из 10 полей, по, используя полосу прокрутки, можно увидеть все поля. Переход от поля к полю можно выполнять клавишами Enter или Tab, от строки к строке — клавишами со стрелками.
Создание таблиц путем ввода данных
69
Наименования полей таблицы могут содержать пробелы, что, однако, не рекомендуется. Дело в том, что в этом случае во всех выражениях, включающих названия полей и использующихся при создании запросов, форм и отчетов, а также в программах на языке Visual Basic для приложений названия полей с пробелами придется заключать в квадратные скобки. Чтобы избежать этого, принято наименования столбцов писать без пробела, и если оно состоит из нескольких слов, то каждое слово начинать с заглавной буквы. 6. Аналогично переименуйте второй столбец — Поле2, введя .строку Город. 7. Остальные столбцы нам не нужны, поэтому закройте таблицу, нажав кнопку закрытия окна в правом верхнем углу. 8. В ответ на вопрос Сохранить и з м е н е н и я макета или структуры таблицы <имя габлицы>? (Do you want to save changes to the design of table <имятаблицы>?) нажмите кнопку Да (Yes). Появится диалоговое окно Сохранение (Save As), в котором нужно ввести имя таблицы — Города (по умолчанию предлагается имя TabLel) (рис. 3.2). Затем нажмите кнопку ОК.
Города!
Рис. 3.2. Диалоговое окно сохранения таблицы
Появилось сообщение Ключевые поля не заданы (There is no primary key defined), совет и вопрос Создать ключевое поле сейчас? (Do you want to create a primary key now?). 9. Нажмите кнопку Нет (No), так как в противном случае Access создаст дополнительное поле, которое будет сделано ключевым. В таблице Города ключевым должно быть поле КодГорода, для чего позже мы специальным образом определим это поле (см. раздел «Ключевые поля и индексы»), 10. А пока просто выделите в списке таблицу Города (она должна быть единственной в списке) и нажмите кнопку Открыть (Open) на панели инструментов окна базы данных. Откроется таблица, которая должна выглядеть аналогично таблице, представленной на рис. 3.3. ЗАДАНИЕ Создайте путем ввода данных два справочника: Издательства с двумя полями — КодИздательства и Издательство, и Разделы, также с двумя полями — КодРазцела и Раздел. Справочник Издательства должен содержать список издательств, а Разделы — список разделов, по которым вы хотите группировать книги в библиотеке, например, история, психология, детективы, романы и т. д. Несколько сложнее структура еще одного справочника — МестаХранения. 8 нем нужно определить четыре поля — КодМеста (ключевое поле), Комната, Шкаф и Полка.
70
Занятие 3. Создание таблии К Города : таблица ц М осква 2! СПб ......
5 Нижний Новгород 6 Рязань У Уф'а"" 8: Казань 9^ Владимир 10|Углич 11= Ярославль : 12 Лондон 13: Брюссель 14: Амстердам 15 Житомир 16^ Ленинград 17 Калуга (Счетчик)
Рис. 3.3. Таблииа в режиме таблицы
Создание таблиц с помощью мастера Следующую таблицу, Авторы, мы создадим с помощью мастера. 1. Дважды щелкните на ярлыке Создание таблицы с помощью мастера (Create table by using wizard). Появится диалоговое окно Создание таблиц (Table Wizard). Установите в нем переключатель Личные (Personal), а в списке Образцы таблиц (Sample Tables) выделите таблицу Авторы (Authors) (рис. 3.4).
.ta^iit дни применя" при аден или мет, л-.-ч-ш до6.яв"Ть эг.з nc,i!(= n T.^i.nin.;'. | го МЕ;. .^жно иуде-, удалит
Журнал диеты Список вин Сведения о пленках ?f*f Фотографии
Книги
Имя Фамилия Национальность ДатаРождения Месторождения Образование Влияние ДатаСмерти
-•±J
1ИПТЛГГ1Я1+ШО
- .-
-
Рис. 3.4. Диалоговое окно мастера таблии
Создание таблии с помощью мастера
/1
В верхней части диалогового окна мастера находится подсказка, из которой понятно, что делать дальше. В списке Образцы полей (Sample Fields) выберите все необходимые поля и переместите их в список Поля новой таблицы (Fields in my new table). Делается это с помощью кнопок со стрелками между этими списками. При желании включить в свою таблицу все поля образца, щелкните на кнопке i'l-lj. Кнопка [PJ позволяет перемещать поля по очереди в выбранном вами порядке, Например, выделите поле КодАвтора (AuthorlD) и нажмите кнопку ЦЦ . Название поля переместится в правый список, Теперь выделите поле Фамилия (LastName) и опять нажмите кнопку ЦЦ. Продолжайте в том же духе, пока не переместите все необходимые поля (мы выбрали все поля, кроме полей Национальность (Nationality) и В л и я н и е (Majorlnfluences). Если вы переместили какое-то поле, а потом передумали, можно отказаться отсвоего выбора, воспользовавшись кнопками собратныни стрелками: лО и [F^j. В этом случае перемещение происходит из списка Поля новой таблицы (Fields in my new table) в список Образцы полей (Sample Fields).
Если вы хотите изменить название какого-то поля, его нужно выделить в списке Поля новой таблицы (Fields in my new table) и нажать кнопку Переимнновать поле (Rename Field). Появится диалоговое окно П е р е и м е н о в а н и е поля (Rename Field), в которое нужно ввести имя поля. 3. Когда выбраны все нужные поля, нажмите кнопку Далее (Next). Появится следующее диалоговое окно, в котором нужно указать имя таблицы и способ определения ключа (рис. 3,5). 4. Назовите таблицу Авторы и снова нажмите кнопку Далее (Next).
Авторы еаяе т каждую
014! и,5
\
Рис. 3.5. Определение имени таблииы и ключевого поля
5. На следующем шаге мастер предлагает установить связи с другими таблицами. Поскольку у нас пока нет таблиц, с которыми связана таблица Авторы, пропустите этот шаг, нажав кнопку Далее (Next).
72
Занятие 3. Создание таблии
6. На последнем шаге мастер предлагает определить действия после создания таблицы. И хотя мы не будем сейчас менять структуру таблицы, установите переключатель Изменить структуру таблицы (Modify the Table Design) и нажмите кнопку Готово (Finish). Таблица А в т о р ы откроется в режиме конструктора, и вы увидите ее структуру, то есть перечень полей и свойства каждого поля
(рис. 3.6). ЗАДАНИЕ Создайте с помощью мастера таблицу Издания, взяв в качестве образца таблицу Книги (Books). Список необходимых полей: КодКниги (переименуйте его в КодИздания), КодРаздела (TopicID), Название (Title), ГодИздания (CopyrightYear), Издательство (PublisherName) (переименуйте его в КодИздательства), МестоПубликации (Place1 OfPublication) (переименуйте его в КодГорода) , Издание (EditionNumber), ЦенаПокупки (РигсЬа5еРпсе),ТипОбложки (CoverType) ДатаПокупки (DatePurchased), ЧислоСтраниц (Pages), Заметки (Notes). Связи с другими таблицами пока не устанавливайте. Мы сделаем это позже в режиме Схема данных.
1КодДвтора Имя 1 ^ Фамилия ДатаРождения Месторождения
--
...
ДатэСмерти Фотография Заметки
1
••>••
•": -1 -::'Тш данных 1 Счетчик -Текстовый Текстовый - Дата/вреия Текстовый ! Текстовый i Дата/в рейв Попе объекта' • Попе MEMO
- '
.:: ? ;• "Сйисанае: -'
-'
• ' ? • ' - 1 • . . . . • -" l*.i j
'• * .
V;
S !••;/.. ,... id| I
Paawep-п^пя". - 1 о " ' д-иимое .целое _ _ НовЬв.ЗьфнЙ*"?'-; "• ": :'Последовательные Фоонат попа Н| Подпий£; .j:; . .-, ;. . .'. Код автора г i (Ссвпа де м няне допускаются) i. и
Рис. 3.6. Структура таблицы Авторы
Создание таблиц в режиме конструктора Теперь мы должны освоить режим конструктора. Это самый сложный способ создания таблиц, зато он позволяет точно определить все свойства таблицы и ее полей. С помощью конструктора мы создадим таблицу Читатели и отредактируем таблицу Издания, самостоятельно созданную вами. Кроме изменения имени, нужно еще изменить тип данных для этого поля, но это вы сделаете позже, когда познакомитесь с режимом конструктора таблиц.
Создание таблиц в режиме конструктора
73
Итак, дважды щелкните на ярлыке Создание таблицы с помощью конструктора (Create Table in Design View). Откроется пустое окно конструктора таблиц (рис. 3.7), в котором нужно определить структуру таблицы Читатели. В этой таблице будут содержаться сведения о читателях нашей библиотеки: фамилия, имя, отчество, год рождения, адрес и телефон.
Рис. 3.7. Создание новой таблицы в режиме конструктора
В верхней части окна конструктора находится таблица, состоящая из трех столбцов: в столбце Имя поля (Field Name) вводятся имена полей создаваемо] i таблицы, в столбце Тип данных (Data Type) нужно задать тип данных для каждого поля, в столбце О п и с а н и е (Description) можно ввести описания полей. В нижней части окна задаются свойства полей таблицы.
Определение полей таблицы Начнем определять поля таблицы Читатели. Сначала нужно позаботиться о том, чтобы в таблице было поле (или несколько полей), значения которых однозначно определяли бы каждого читателя в таблице. Поскольку ни одно из уже перечисленных полей таковым быть не может, введем специальное поле КодЧитателя и будем присваивать каждому читателю уникальный код. 1. Установите курсор в первую строку столбца И м я поля (Field N a m e ) и введите КодЧитателя. Теперь нужно определить тип этого поля. 2. Переместите курсор в столбец Тип д а н н ы х (Data Type), и вы увидите, что гю умолчанию ему присваивается тип Текстовый (Text).
74
Занятие 3. Создание таблиц
3. Щелкните на кнопке со стрелкой в правой части столбца — появится список типов данных, которые могут быть использованы в таблицах Access. Выберите в списке значение Счетчик (AutoNumber). В этом случае Access будет автоматически присваивать каждому читателю уникальный код, значение которого на 1 больше предыдущего значения. Обратите внимание на нижнюю часть окна. В ней в данный момент показаны присвоенные по умолчанию значения свойств поля К о д Ч и т а т е л я (рис. 3.8). Когда курсор устанавливается в ячейку со значением свойства, справа выводится справка, объясняющая это свойство: D свойство Размер поля (FieldSize) имеет значение Длинное целое (Long Integer). Такое значение позволяет в этом поле хранить целые числа в диапазоне от -2147483648 до 2147483647. Еще одно значение этого поля — Код репликации — используется, как правило, в тех случаях, когда создается приложение, в котором данные хранятся в нескольких файлах .mdb, и нужно синхронизировать эти базы данных. Такой процесс называется репликацией, отсюда и название значения поля. В этом случае при добавлении новой записи в таблицу Access генерирует значение счетчика, равное GUID — глобальному уникальному идентификатору. Это длинное число, которое никогда не может повториться, что обеспечивает уникальность записей в таблице даже в разных базах данных. Только в этом случае потом можно отличить данные, вводимые в одной базе, от данных, вводимых в другой базе.
D свойство Новые значения (New Values) определяет способ генерации значений этого поля для новых записей в таблице. Именно последовательный способ обеспечивает увеличение счетчика на 1 при вводе каждой новой записи. Однако есть возможность генерировать в качестве значения счетчика случайное число. Оба эти значения оставьте такими, как они установлены по умолчанию. П свойство Формат поля (Format) указывает, в каком формате будут выводиться данные при просмотре таблицы. В данном случае его можно не указывать. П свойство Подпись (Caption) позволяет определить заголовок поля, который будет выводиться в различных режимах, при просмотре таблицы, при печати отчетов и т. п. В данном случае введите в эту ячейку значение Код1. D свойство И н д е к с и р о в а н н о е поле (Indexed) позволяет указать необходимость создания индекса по данному полю. Раскройте список возможных значений для данного поля и выберите в нем No Duplicate (Совпадения не допускаются), так как нам нужно, чтобы значения в этом поле были уникальными. Не очень красиво, если везде будет вы политься имя поля — КодЧитателя. Вы помните, почему мы его так назвали?
Создание таблии в режиме конструктора
75
D свойство Смарт-теги (Smart tags): смарт-теги — это специальные элементы интерфейса, которые могут быть присоединены к полю таблицы. Их функции заключаются в автоматическом распознавании заранее заданного текста в процессе его ввода и выполнении некоторого заранее определенного действия. Например, при вводе текста в поле, с которым связан смарт-тег, этот смарт-тег автоматически активизируется и выводит поверх того, что есть на экране, какие-то дополнительные важные сведения об объекте. В процессе работы с Access вы познакомитесь с этими элементами, так как они определены для некоторых действий, выполняемых разработчиком в среде Access. Точно так же, как это сделано в Access, вы можете определить свои собственные смарт-теги, которые будут действовать в создаваемом вами приложении.
Смартмеги
Рис. 3.8. Свойства поля типа Счетчик
Свойства полей не одинаковы для полей с разными типами данных, и вы убедитесь в этом, начав вводить определение для следующего поля. 4. Установите курсор в столбец Имя поля (Field Name) на вторую строку и введите название следующего поля: Фамилия. Тип данных оставьте Текстовый (Text). Список свойств для типа поля Текстовый (Text) другой (рис. 3.9). 5. Свойство Размер поля (Field Size) определяет максимальное количество символов, которые можно внести в это поле (по умолчанию 50). Вы можете ввести меньшее значение, если хотите сэкономить память и считаете, что у вас не будет читателей с такими длинными фамилиями. Например, введите число 251. 6. Следующие несколько свойств можно не заполнять, в том числе и свойство Подпись (Caption) (везде в заголовках поля будет выводиться имя поля). А вот значение свойства Обязательное поле (Required) нужно изменить, сделав это поле обязательным. Тогда при вводе данных в таблицу Access будет всегда требовать ввести в это поле значение, и у вас не будет безымянных Вы можете увеличить это значение и позже, если это потребуется, даже когда в таблице будет уже много записей.
76
Занятие 3. Создание таблии
читателей. Значения остальных полей можно оставить теми, что предлагаются по умолчанию. 7. Введите аналогичным образом поля Имя, Отчество, ГодРождения, Адрес и Телефон.
Рис. 3.9. Свойства текстового поля
При определении поля ГодРождения нужно выбрать тип данных Числовой (Number), а в свойствах поля изменить значение свойства Размер поля (Field Size): заменить Длинное целое (Long Integer) (по умолчанию) на Целое (Integer). Короткие целые — это числовые значения в диапазоне от -32768 до 32767, и этого вполне достаточно, чтобы хранить четыре цифры года. Свойство Значение по умолчанию (Default Value) нужно очистить (предлагаемое значение 0),так как в противном случае, если вы не введете значение в поле ГодРождения при вводе данных о читателе, ему автоматически присвоится значение 0. Для свойства Подпись (Caption) введите значение Год рожд. Поле Адрес следует сделать подлиннее (100 символов), так как устанавливаемое по умолчанию значение, равное 50 символам, может оказаться недостаточным. Поле Телефон тоже текстовое и определяется так же, как Фамилия, Имя и т. д. Однако это поле обязательным не делайте, то есть не меняйте значение свойства Обязательное поле, установленное по умолчанию.
Ключевые поля и индексы Прежде чем сохранить таблицу, необходимо определить в ней ключевое поле. Как мы договорились, ключевым полем в таблице Читатели будет поле КодЧитателя. 1. Чтобы сделать это поле ключевым, выделите его, установив курсор в любом месте строки описания поля, затем найдите на панели инструментов кнопку с изображением ключика Щи щелкните на ней. Поле КодЧитателя помечается специальным значком — ключ в поле выделения в левой части окна (рис. 3.10).
Создание таблиц в режиме конструктора
77
Рис. 3.10. Создание ключевого поля
Если нужно определить ключевое поле в уже существующей таблице, найдите в ней поле, которое содержит уникальные значения (например, коды или номера). Если выбранное поле содержит повторяющиеся или пустые значения, его нельзя определить как ключевое. Нужно сначала устранить повторы путем изменения значений. Если устранить невозможно, следует либо добавить в таблицу поле счетчика и сделать его ключевым, л ибо определить составной ключ.
С целью ускорения поиска данных в любой СУБД используются индексы. Индекс является средством быстрого доступа к данным таблицы на основе значений одного или нескольких столбцов. Индекс представляет собой упорядоченный список значений полей, а также ссылок на те записи, в которых хранятся эти значения. Чтобы найти нужные записи, СУБД сначала ищет требуемое значение в индексе, а затем быстро отбирает соответствующие записи по ссылкам. Индексы бывают двух типов: простые и составные. Простые индексы содержат значения только одного столбца. Составной индекс строится по нескольким столбцам. В него можно включить до 10 полей. Примером составного индекса может быть индекс, построенный по полям Фамилия и Имя. Однако следует учитывать, что добавление индексов к таблице влияет на скорость сохранения записей, так как при вводе и изменении записей требуется
/8
Занятие 3. Создание таблиц
дополнительное время на обновление индексов. Поэтому индексы обычно рекомендуется создавать только для тех полей таблицы, по которым поиск записей ведется чаще всего. В Microsoft Access индексировать можно любые поля, кроме объектов OLE (OLE Object). Индекс (и простой, и составной) может быть уникальным. Уникальный индекс не позволяет хранить в индексированном поле одинаковые значения. Уникальный индекс автоматически создается для ключевого поля таблицы. 2. Так как поиск читателя, скорее всего, будет выполняться по фамилии, имеет смысл проиндексировать эту таблицу по полю Фамилия. Установите для этого поля значение свойства Индексированное поле (Indexed) равным Да (Допускаются совпадения) (Yes (Duplicates OK)). 3. Таблица создана, и можно закрыть окно конструктора. Для этого нажмите кнопку закрытия окна. На вопрос Сохранить изменения макета или структуры таблицы <имя таблицы>? (Do you want to save changes to the design of table <имя таблицы>?) ответьте Да (Yes). В окне Сохранить как (Save As) в поле Имя таблицы (Table Name) введите имя создаваемой таблицы Читатели и нажмите кнопку ОК.
Редактирование структуры таблицы в режиме конструктора В качестве примера изменим структуру таблицы Издания, которую вы должны были создать с помощью мастера. Нам придется изменить свойства некоторых полей и добавить недостающие поля. 1. Выделите таблицу Издания в списке и откройте ее в режиме конструктора, нажав кнопку Конструктор (Design). Структура таблицы должна быть такой, как на рис. 3.11. 2. Выделите поле КодИздания и введите значение свойства Подпись (Caption): Код издания. Тип данных поля ТилОбложки измените на Текстовый (Text), а поля КодГорода — на Числовой (Number).
Добавление полей таблицы Теперь добавим несколько полей: • Том — текстовое поле, в котором будет указываться номер для периодических изданий и том — для многотомных. •
КодМеста — числовое поле, в котором будут данные о месте хранения книги в библиотеке.
• ТипИздания — текстовое поле, в котором будут храниться значения: книга, журнал, газета. 1. Сначала выделите поле Название. Установите размер поля Название равным 100 символам и сделайте его обязательным, установив значение свойства Обязательное поле (Required) равным Да (Yes).
Редактирование структуры таблицы в режиме конструктора
79
Рис. 3.11. Структура таблицы
2. Поле Том поместим перед полем Издание. Чтобы вставить новое поле, выделите строку, перед которой нужно вставить поле (в данном случае Издание), и нажмите клавишу Insert. Появится свободная строка, в которой нужно определить имя поля Название и тип данных Текстовый (Text). Размер поля установите равным 10 символам. 3. Поле КодМеста вставьте перед полем Цена. Это поле связывает таблицу Издания с таблицей МестаХранения, так как его значениями будут являться значения столбца КодМеста таблицы МестаХранения. Для этого поля мы определим столбец подстановок.
Создание столбца подстановок Столбец подстановок представляет собой список значений, которые могут быть введены в текстовое или числовое поле. Обычно столбец подстановок создается для тех полей, значения которых представляют собой коды из справочника (как в нашем примере), то есть это ключи из другой таблицы. Столбец подстановок служит двум целям: • облегчает ввод данных в такое поле, так как он позволяет выбирать в списке не коды, а кодируемые значения (города, издательства, категории и т. д.); • при отображении таблицы в поле, для которого определен столбец подстановок, тоже показываются не коды, а кодируемые значения, что значительно удобнее.
80
Занятие 3. Создание таблиц
Кроме этого, столбец подстановок рекомендуется использовать для текстовых полей, которые имеют фиксированный набор значений. В этом случае в поле таблицы хранятся сами значения, но столбец подстановок позволяет контролировать правильность ввода этих значений. Б таблице Издания мы создадим столбцы подстановок того и другого типа. Столбцы подстановок рекомендуется создавать при определении структуры таблицы, тем более что для этого есть соответствующий мастер — мастер подстановок. 1. В столбце Тип д а н н ы х (Data Type) поля КодМеста выберите в списке значение Мастер подстановок (Lookup Wizard). 2. В диалоговом окне Мастер подстановок (Lookup Wizard) по умолчанию установлен переключатель Объект "столбец подстановки" будет использовать з н а ч е н и я из таблицы и л и запроса (I want the Lookup column to Look up the values in a table or query). Это именно то, что нам нужно, так как в данном случае мы должны использовать данные из таблицы МестаХранения. Нажмите кнопку Далее (Next). 3. В следующем диалоговом окне выберите таблицу МестаХранения и нажмите кнопку Далее (Next) (рис. 3.12). Создание подстановки
Таблица: Авторы Таблица; Города Таблица: Издательства Гаппица: МестзХране Таблица: Разделы Таблица: Читатели
Рис. 3.12. Выбор таблицы для столбиа подстановок
4. В списке Доступные поля (Available Fields) выводятся все поля таблицы МестаХранения (рис. 3.13). Переместите все эти поля в список Выбранные поля (Selected Fields) и нажмите кнопку Далее (Next). 5. В следующем диалоговом окне мастер предлагает определить порядок сортировки значений в столбце подстановок. Установите его, как показано на рис. 3.14, и нажмите кнопку Далее (Next). 6. Теперь все столбцы справочника МестаХранения видны так, как они будут отображаться в раскрывающемся списке (рис. 3.15). Столбец КодМеста скрыт. Этого можно добиться, установив флажок Скрыть ключевой столбец
Редактирование структуры таблииы в режиме конструктора
81
(Hide Key Column) (обычно он устанавливается по умолчанию). Ширину остальных столбцов можно отрегулировать, перемешая мышью границы столбцов. Установив нужную ирину столбцов, нажмите кнопку Далее (Next). Создание подстановки
<омната Шкаф Полка
22l]
Рис. 3.13.Выбор полей для подстановок
по убывало, Е»;яючьгО<цля до « (К'юп
Is; Полка
J
Рис. 3.14. Определение порядка сортировки списка
7. В последнем диалоговом окне нажмите кнопку Готово (Finish). После этого Access автоматически создает связь между таблицами Издантя и МестаХранения. 8. Ответьте утвердительно на вопрос о сохранении таблицы и раскройте вкладку Подстановка (Lookup) в нижней части окна конструктора. Эта вкладка содержит список свойств, которые определяют столбец подстановки:
82
Занятие 3. Создание таблии Создание подстановки
Большая ко мнат а. [Сере ант ко мн ата ] Сервант Маленькая комна
Рис. 3.15. Определение ширины столбцов
П свойство Тип элемента у п р а в л е н и я (Display Control) — определяет вид поля: обычное поле, список или поле со списком. В данном случае это Поле со списком (Combo Box). D свойство Т и п и с т о ч н и к а строк (Row Source Type) — может принимать три значения: Таблица или запрос (Table/Query), Список з н а ч е н и й (Value List) и Список полей (Field List). В данном случае источником строк для поля подстановки будет запрос. D свойство Источник строк (Row Source) - определяет источник данных, который в данном случае представляет собой инструкцию языка SQL, отбирающую записи из таблицы МестаХранения. П свойство B o u n d Column ( П р и с о е д и н е н н ы й столбец) — определяет номер столбца в раскрывающемся списке, значение из которого должно записываться в поле подстановки. В нашем случае это первый столбец, содержащий КодМеста. П свойство Число столбцов (Column Count) — определяет число выводимых столбцов в раскрывающемся списке. В нашем примере их четыре. П свойство Заглавия столбцов (Column Heads) — определяет, будут ли выводиться заголовки столбцов. Так как в нашем списке будет выводиться сразу несколько столбцов, лучше, чтобы их заголовки были видны. П свойство Ширина столбцов (Column Widths) — определяет ширину столбцов списка. Обратите внимание, что для первого столбца указана ширина 0 именно поэтому он и не будет отображаться. р свойство Число строк списка (List Rows) — определяет максимальное число строк в списке. Если количество элементов списка превысит указанное число строк, в списке появится полоса прокрутки. П свойство Ширина списка (List Width) - определяет ширину раскрывающегося списка.
Редактирование структуры таблицы в режиме конструктора
83
D свойство Ограничиться списком (Limit to List) — определяет, могут ли вводиться в поле значения, не являющиеся элементами списка. 9. Снова раскройте вкладку Общие (General) и удалите значение 0 из свойства Значение по умолчанию (Default Value). 10. Введите значение свойства Подпись (Caption): Место хранения. ЗАДАНИЕ Кроме поля КодМеста, в таблице Издания есть еще три поля, которые связаны с другими таблицами-справочниками: Код Раздел а, КодИздательства, КодГорода. Для каждого из этих полей можно тоже определить список подстановки. Сделайте это самостоятельно.
Чтобы воспользоваться мастером подстановок, измените тип данных для каждого из этих полей — установите курсор в это поле и выберите в списке значение Мастер подстановок (Lookup Wizard). Можно также раскрыть вкладку Подстановка (Lookup), изменить значение свойства Тип элемента управления (Display Control): Поле со списком (Combo Box) и установить вручную все значения свойств. На рис. 3.16 приведен пример заполнения свойств подстановки для поля КодРаздела. Щ Издания : таблица
Ипя толя j^_ КодИэданмя •jjfc КрдРаздела __ Название :'gi' Го дИ) дания _^_ КодИзда-ельства |Л КодГорода
t_ Той Издание ' Кс.дМеста 1^Цена ijfy ТипОбложки iiliJi ДатаПопупки §^; ЧислоСтраниц Замет! 1
\~Щ
^;:Ш5^№мыхСчетчик Числовой Текстов в и Числовой 1 Числовой Числовой Текстовый Числовой Числовой '"."".'" Денежный Текстовый Дата /время Числовой ПопеМЕМО
• -'
Общие
Щ! "• «гмСй«*« .1;
:: Ц 1 [ Ll^JU
s ' ' - - ^ | | | p f M | | : ' ;* :! ч' :.
- jlllll^ - - :
О ! { ••-••' Ц
-
:
|
Лодетамой)
Тип зле-«нта уфавпеник Ълесоспиекрм тг Tun ^CTiHi-'nr
1 :
|
, .
-: З^гтеиияЕТСлбиоа; > : '^ : .Нет1 ; .Ц*рМнасто1Йаае 6см;5см__ Ч-:1"*!:' OT?>V '/.пека '• ||ШШКШ|Г1 '.i ; "^ РАВТО
• HIM rtin.3 n-:.»*t , Lj.noflit ni о* SHWC* с :ys V-^втш npofanoe. Для отревем пс пиеиви
Рис. 3.16. Установка свойств поля подстановки
Осталось ввести последнее поле: ТипИздания. Добавим его в конец таблицы перед полем Заметки.
84
Занятие 3. Создание таблиц
11. Вставьте чистую строку перед строкой Заметки и введите в столбец Имя поля (Field Name): ТипИздания. Это поле также будет иметь список подстановок, только значения будут браться не из другой таблицы, а задаваться непосредственно при описании поля. 12. В столбце Тип д а н н ы х (Data Type) выберите Мастер подстановок (Lookup Wizard). В первом окне мастера установите переключатель Будет введен ф и к с и р о в а н н ы й набор з н а ч е н и й (I will type in the values that I want). 13. В следующем окне нужно ввести список возможных значений поля. Установите курсор в первую строку столбца и начинайте вводить значения: книга, журнал, газета (рис. 3.17). Создание подстановки
Ill О-ТОЦПВ 7ПИО;,Я I Ж»Ч!-И»1Я Л "пЧГ •!>..,,--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 ГодИздания<=Уеаг(Оа1еО) Здесь П Len — функция, определяющая длину символьной строки; П Str — функция, преобразовывающая число в символьную строку; П Trim — функция, обрезающая пробелы в начале и в конце строки 1 ; П Year — функция, возвращающая целое число, соответствующее году в дате; П Date — функция, возвращающая текущую дату. 2. Итак, введите эту строку в ячейку свойства Условие на значение (Validation Rule). 3. Значение следующего свойства — Сообщение об ошибке (Validation Text) — может содержать текст сообщения, например: Необходимо ввести 4-значное числ о, не превышающее значение текущего года! 4. Маску ввода обычно используют при вводе дат, тедефонов и других значений, имеющих определенный формат. Выделите поле ДатаПокупки и посмотрите значение свойства Маска ввода (Input Mask). Оно состоит из двух частей разделенных символом точка с запятой (;). П Первая часть, 99.99.00, состоит из символов, определяющих, что можно вводить в данную позицию поля: 9 означает, что можно вводить цифру или пробел, причем ввод не обязателен; 0 означает, что можно вводит],. только цифры и ввод обязателен; точка (.) является разделителем между цифрами числа, месяца и года и выводится на экран автоматически Дело в том, что функция Str, которая преобразует число в строку символов, в случае положительного числа возвращает строку, которая начинается с символа «пробел» (для отрицательных чисел на этом месте будет знак «минус»). Значит, при вводе четырех цифр года она вернет 5 символов, а не 4. Поэтому символ «пробел» нужно обрезатй.
86
Занятие 3. Создание таблиц
Таким образом, указанный формат маски означает, что число и месяц можно вводить как одной, так и двумя цифрами, а год обязательно двумя цифрами. D Вторая часть, 0, означает, что текстовые символы, в данном случае точки, сохраняются вместе с введенными значениями (в противном случае нужно указать 1 или не вводить вторую часть совсем). 5. Маску ввода можно задать вручную или с помощью мастера. В данном случае лучше сделать так, чтобы год отображался не двумя, а четырьмя цифрами. Поэтому установите вручную маску 99.99,0000;0. 1 6. Нажмите кнопку с тремя точками справа в свойстве Маска ввода (Input Mask) 7. Сначала Access потребует сохранить таблицу. Подтвердите сохранение. Затем появится диалоговое окно мастера, в котором выводится список стандартных масок для полей времени и даты (рис. 3.19). Этот список можно дополнять или изменять. Например, можно добавить маску ввода номера телефона.
• lpof,ep-T п. работу u,.tV.a,;, - т Щ г и чо-у • .о Р -юл к "ГЬобд*.
1пинныи формат времени Краткий формат даты Краткий формат времени Средний формат времени Средний формат даты
Рис. 3,19. Диалоговое окно мастера масок ввода
8. Закройте таблицу И з д а н и я и откройте в режиме конструктора таблицу Читатели, которая содержит поле Телефон. Маска ввода должна обеспечить возможность вводить только цифры номера, а остальные символы (скобки вокруг кода города, дефис между цифрами номера) будут добавляться автоматически. Чтобы задать маску, воспользуемся мастером масок ввода. 9. Выделите поле Телефон. Нажмите кнопку построителя Щ. В открывшемся диалоговом окне мастера (см. рис. 3.19) нажмите кнопку Список (Edit List). Эта кнопка называется кнопкой построителя, и она будет встречаться еще во многих местах.
Редактирование структуры таблицы в режиме конструктора
87
Появится диалоговое окно, в нижней части которого находится так называемый навигатор записей — набор кнопок, которые позволяют просматривать записи таблицы в форме. 10. Заполните поля в форме (рис. 3.20) и нажмите кнопку Закрыть (Close). В диалоговом окне со списком масок появится новое значение Телефон. Выделите это значение и нажмите кнопку Далее (Next). ! ' В нижней части окна есть поле Проба (Try It). Можно попробовать ввести в нем номер телефона и увидеть, как работает маска. После этого нажмите кнопку Готово (Finish). Сформированная символьная строка маски ввода отображается в свойстве Маска ввода (Input Mask) для поля Телефон: 000\-00\-00;;_. ! уi Измените или добавьте «асеи веода, отображаемые мастером.
Описание:
Телефрн
tooo-oo-oo
1тёкст/свободмыи 7Т • „...,.., ™~ •
Рис. 3.20. Диалоговое окно настройки масок ввода
12. Закройте таблицу Читатели. И последняя таблица, которая нам будет нужна, — это таблица Формуляры, хранящая данные о том, какие книги брал в библиотеке каждый читатель. Уже из этой фразы видно, что она должна быть связана с таблицей Читатели и с таблицей Издания. В формуляре мы хотели бы видеть для каждого читателя, какую книгу он взял, когда взял и когда вернул. Таким образом, получается, что таблица Формуляр должна иметь следующие поля: КодИздания, КодЧитателя, Дата Пол у ч е н и я , ДатаВозврата, ДатаВозвратаФакт, Примечание 1 . Каждый читатель может взять в библиотеке много книг, значит, в таблице Формуляр будет много записей с одним значением в поле КодЧитателл. С другой стороны, каждое издание могут взять последовательно несколько читателей, и с одним значением в поле КодИздания будет тоже много записей. И только пара полей КодИздания — КодЧитателя определяет однозначно книгу, которую читает каждый читатель. Таким образом, таблица Формуляр будет иметь составной ключ из двух полей: КодИздания и КодЧитателя. ЗАДАНИЕ Создайте самостоятельно таблицу Формуляры. Создайте столбец подстановок для полей КодИздания и КодЧитателя. 1
В поле ДатаВозврата мы будем вводить дату, когда книгу надо вернуть, а в поле ДатаВозвратаФакт — дату, когда она действительно была возвращена.
88
Занятие 3. Создание таблии
Чтобы определить составной ключ, выделите в списке полей обе строки: КодИздания и КодЧитателя и нажмите кнопку Ключевое поле (Primary Key). Значок ключевого поля одновременно появится у обеих строк. ЗАДАНИЕ 1. Не поленитесь, и установите или измените в конструкторе таблиц значения свойства Подпись для полей таблицы Авторы, которая была создана с помощью мастера. Это рекомендуется делать для всех полей, название которых состоит из нескольких слов. Вы сэкономите свое время, так как впоследствии при создании запросов, форм и отчетов не нужно будет править наименования полей — они сразу будут создаваться такими, как вы их обозначите в свойстве Подпись, 2. Измените тип данных для полей ГодРождения и ГодСмерти. Эти поля в шаблоне имели тип Дата/Время (Data/Time). Мы будем для простоты вводить только год рождения и смерти писателя. Поэтому это поле может иметь тип Числовой (Number), Вместо установленного по умолчанию значения поля Размер поля (Field Size) Long Integer введите просто Integer. 3. Удалите значения свойства Маска ввода (Input Mask) для полей ГодРождения и ГодСмерти, так как эти маски также подходили только для типа данных Data/Time. 4. Удалите значение 0 свойства DefaultValue для этих полей, которые по умолчанию присваиваются полям с типом данных Number.
Связывание таблиц Теперь, когда таблицы созданы, нужно установить связи между ними. Удобнее всего это делать на схеме данных. 1. Чтобы открыть окно схемы данных, выполните команду Сервис ^ Схема данных (Tools > Relationships). Откроется диалоговое окно Схема д а н н ы х (Relationships), в котором могут быть отображены некоторые таблицы 1 . 2. Нужно отобразить на схеме все наши таблицы, так как все они связаны между собой. Для этого щелкните правой кнопкой мыши на свободном поле на схеме и в контекстном меню выберите команду Добавить таблицу (Show Table). 3. Появится диалоговое окно Добавление таблицы (Show Table) со списком всех таблиц в базе данных (рис. 3.21), Выделите в этом списке, пользуясь клавишей Ctrl, те таблицы, которые отсутствуют на схеме, и нажмите кнопку Добавить (Add). Если вы не умеете пользоваться клавишей Ctrl добавляйте таблицы по очереди.
Какие и сколько, зависит от того, как пы их создавали. Если, создавая столбцы подстановки, вы пользовались мастером, эти таблицы появятся на схеме, в противном случае они не отображаются.
Связывание таблиц
89
Добавление таблицы | г^-ргкы ] 1 .-tfifMUt I н -5?пт'0.:ы
Издательства MeстаХранения Разделы Формуляры Читатели
Рис. 3.21. Добавление таблии к схеме данных
4. По окончании закройте окно Добавление таблицы (Show Table), щелкнув на кнопке З а к р ы т ь (Close). Ваша схема должна выглядеть примерно так, как представлено на рис. 3.22. Необходимо теперь установить связи между таблицами 1 .
Рис. 3.22. Окно связей
Установим связи между таблицами Читатели и Формуляр. Эти таблицы связаны отношением «один-ко-многим». Связь мы будем устанавливать графически, соединяя связанные поля. 5. Схватите и перетащите поле КодЧитателя в таблице Читатели (сторона «один») к таблице Формуляр. Отпустите кнопку мыши, когда указатель окажется над полем КодЧитателя. Появится диалоговое окно И з м е н е н и е связей (Edit Relationships) (рис. 3.23). Некоторые связи Access устанавливает автоматически.
90
Занятие 3. Создание таблии
Рис. 3.23. Диалоговое окно изменения связей
6. В первой строке таблицы отображаются связанные поля. Установите флажки Обеспечение целостности данных (Enforce Referential Integrity), каскадное обновление связанных полей (Cascade Update Related Fields) и каскадное удаление связанных записей (Cascade Delete Related Records). Нажмите кнопку Создать (Create). Окно закроется, а на схеме данных появится линия, соединяющая две таблицы. На стороне «один» стоит значок 1, а на стороне «многие» — со (рис. 3.24).
КодИздатя КодЧттателя ДатэПолучения ДатзВозврата ДатаБоэератаФакт Примечание
Поджигателя Фамилия я Ч8СТВО
ГодРождения Адрес Телефон
Рис. 3.24. Связь типа «один-ко-многим» между двумя таблииами
Обеспечение целостности данных Обеспечение целостности даипых означает систему правил, используемых для поддержания связей между записями в связанных таблицах, а также защиту от случайного удаления или изменения связанных данных. При установке соответствующего флажка работа с данными будет подчинена следующим правилам. • Невозможно ввести в связанное поле подчиненной таблицы значение, отсутствующее в связанном поле главной таблицы. Однако можно ввести пустое значение, показывающее, что для данной записи связь отсутствует. • Не допускается удаление записи из главной таблицы, если существуют связанные с ней записи в подчиненной таблице.
Обеспечение иелостности данных
91
• Невозможно изменить значение ключевого поля в главной таблице, если существуют записи, связанные с данной. Любая попытка выполнить действие, нарушающее одно из перечисленных правил, приведет к выводу на экран предупреждения, а само действие выполнено не будет. Флажки каскадное обновление с в я з а н н ы х полей (Cascade Update Related Fields) и каскадное удаление с в я з а н н ы х записей (Cascade Delete Related Records) позволяют преодолеть указанные ограничения, сохраняя при этом целостность данных. Если установлен флажок каскадное обновление с в я з а н н ы х полей (Cascade Update Related), то при попытке изменить значение связанного поля в главной таблице это значение будут также изменено во всех связанных таблицах, во всех записях, содержащих это значение в связанных полях. Например, вы изменили артикул у какого-то вида товара в таблице Т о в а р ы , а этот артикул уже встречался в записях в таблицах Заказы, Доставка, Склад и т. д. Значение именно этого артикула будет автоматически изменено во всех связанных записях этих таблиц. Если установлен флажок каскадное удаление с в я з а н н ы х з а п и с е й (Cascade Delete Related Records), то при удалении записи в главной таблице будут автоматически удалены все связанные записи в связанной таблице. Например, в только что определенной связи между таблицами Читатели и Формуляры мы установили этот флажок. Значит, при удалении из таблицы Читатели какой-то записи буду: автоматически удалены все записи из формуляра этого читателя. Это очень мощный аппарат Access, которым следует пользоваться, чтобы обеспечить корректность данных в таблицах базы данных. Однако очень осторожным нужно быть с флажком «каскадное удаление связанных записей» (Cascade Delete Related Records). В данном случае, если вы решили удалить из таблицы данные о каком-то читателе, скорее всего, вас уже не будет интересовать, какие книги он читал. Поэтому связанные записи из таблицы Формуляр можно вполне обоснованно удалить. Но так бывает не всегда. ЗАДАНИЕ Постройте самостоятельно связь между таблицами Издания и Формуляр (не ошибитесь в определении, какая из этих таблиц главная, а какая — подчиненная). На схеме данных можно не только создавать связи, но и редактировать их. Попробуем отредактировать связь между таблицами МестаХранения и Издания. Эта связь существует, но для нее не установлена проверка ссылочной целостности, поэтому связь на схеме имеет другой вид. Дважды щелкните на этой связи (линии, соединяющей таблицы). Появится уже знакомое вам окно И з м е н е н и е с в я зей (Edit Relationship). Установите в нем два флажка обеспечение целостности д а н ных: (Enforce Referential Integrity), каскадное обновление с в я з а н н ы х полей (Cascade Update Related Fields). Флажок каскадное удаление с в я з а н н ы х записей (Cascade Delete Related Records) не устанавливайте, ведь вы не хотите, чтобы при удалении
92
Занятие 3. Создание таблиц
записи о каком-то шкафе из базы исчезли все данные о книгах, находящихся в этом шкафу 1 . ЗАДАНИЕ Установите или отредактируйте самостоятельно связи междутаблицей Издания и справочниками Разделы, Города, Издательства.
У нас осталась не установленной только связь между таблицами Авторы и Издан и я . Связь эта, как вы понимаете, «многие-ко-многим», так как у каждой книги может быть несколько авторов, а с другой стороны, в библиотеке может быть много книг одного и того же автора. Как поступить в таком случае? Чтобы реализовать такую связь, полагается ввести дополнительную таблицу, которая бы содержала ключи обеих таблиц. Такая таблица должна иметь два поля: КодАвтора и КодИэдания. Связь между таблицей Авторы и этой таблицей будет «один-ко-многим», и связь между таблицей Издания и этой таблицей также будет «один-ко-многим». Таким образом, с введением новой таблицы (назовем ее АвторИздание) связь «многие-ко-многим* преобразуется в две связи «один-ко-многим». Так как в этой таблице не может быть несколько записей, которые имели бы одни и те же значения в обоих полях, то эти поля будут являться составным ключом таблицы. ЗАДАНИЕ Создайте самостоятельно таблицу АвторИздание. Оба поля в ней должны быть числовыми. При этом по умолчанию будет установлен размер поля Длинное целое (Long Integer). He меняйте значение этого свойства. Оно должно быть именно таким, чтобы правильно установились связи. Создайте для того и другого поля столбцы подстановок (можно воспользоваться мастером подстановок). Теперь добавьте таблицу АвторИздание в схему данных и установите связи с таблицами Авторы и Издания. Вы можете, не закрывая окно схемы данных, выполнить команду Окно > Библиотека: база данных (Window > Библиотека: Database) или просто нажать клавишу F11, чтобы открыть окно базы данных, и затем, уже известным способом, с помощью конструктора создать эту таблицу. Затем либо тем же способом, либо, щелкнув на кнопке Схема данных на панели задач, вернуться в окно Схема данных.
В результате вы получите примерно такую картину, как представленная на рис. 3.25. Трудно, конечно, разобраться в такой паутине. Однако все таблицы легко перемещаются мышью, если схватить заголовок и потянуть. Размеры таблиц можно также менять стандартным образом, потянув за границу. Еще немного времени, и картина будет совсем иной (рис. 3.26).
Правда, умная система перед удалением все-таки запросит у вас подтверждение уда-
Обеспечение иелостности данных
93
КодИздаия * КодЧигателя ДатаПолучен Дат а Воз врат а
т Рис. 3.25, Окно схемы данных
Название "одИздания <ол Издательства <одГорода i м
КодИэдагмя КодЧпэтелп ДатаПолучения ДатаВозерата ДатаВозвратаФа^т
Издание КодМеста Дена ТипОбложки ДатаПокупки ЧислоСтраниц ТипИздания Заметки
Код'-Мгателя Фамилия Имя Отчество ГодРэждемия Йдрес Телефон
КодАвтора КодИздамп
КолАвтара Иия Фамилия ГодРождения Го дС мер т и Месторождения Образование Фотография Заметки
1 1 Рис. 3.26. Упорядочение расположения таблиц, на поле схемы данных
Надеюсь, теперь вы видите, как ясно графически отображаются и сами таблицы, и связи между ними. 7. Закройте окно схемы данных.
94
Занятие 3. Создание таблиц
Подведение итогов Итак, на данном занятии вы научились: • создавать таблицы базы данных тремя разными способами; • создавать столбцы подстановок для полей, которые являются внешними ключами других таблиц; • создавать столбец подстановок, содержащий фиксированный список значений поля; • задавать ключевые и индексированные поля в таблице; • указывать условия правильности вводимых в поле данных; • с помощью мастера создавать маски ввода, упрощающие ввод данных в поле; • создавать схемы данных, отображающие таблицы базы данных и связи между ними. Хочется еще раз обратить внимание на то, как важно грамотно выполнить все процедуры создания и связывания таблиц, описанные в этом занятии. Поэтому не пренебрегайте советами и отнеситесь к этому этапу серьезно при создании любого приложения. В этом случае вам значительно проще будет создавать другие объекты: формы, отчеты, страницы доступа к данным.
ЗАНЯТИЕ 4
Ввод и редактирование данных ТЕМА ЗАНЯТИЯ В процессе этого занятия вы узнаете: • как вводить данные и таблицы Access и изменять внешний этих таблиц; • как перемещаться по записям в таблице, изменять и удалят]., записи; • как копировать данные из других таблиц, в том числе находящихся в другой базе данных Access или даже имеющих другой формат; • как импортировать данные из файлов других форматов; • что такое присоединенные таблицы и каковы особенности работы с ними.
96
Занятие 4. Ввод и редактирование данных
Для выполнения упражнений данного занятия вам потребуется файл Библиотека, mdb, а также файлы из архива примеров 1 . Поэтому вспомните, в какой папке они у вас находятся.
Ввод данных в режиме таблицы Существует несколько способов ввода данных в таблицы Access: • ввод записей в режиме таблицы; • ввод данных с помощью форм Access; • копирование данных из других таблиц; • импорт данных из внешних файлов; • присоединение внешних таблиц. В упражнениях этого занятия мы познакомимся почти со всеми этими способами, кроме ввода с помощью экранных форм — их мы будем создавать на Занятиях 8, 9 и 10. Режим таблицы обеспечивает простой и быстрый способ ввода данных в таблицу, однако он удобен только в случае небольших таблиц, когда большинство полей или даже все они видны на экране и количество записей тоже невелико. Кроме того, нужно хорошо знать структуру таблиц. Формы обычно обеспечивают ввод данных по одной записи, причем форма может быть сконструирована таким образом, что пользователь вводит данные одновременно в несколько таблиц, даже не подозревая об этом. Чтобы освоить режим таблицы, лучше использовать таблицы, уже имеющие записи, поэтому откройте файл БиблиотекаДанные.тс1Ь демонстрационного примера. Этот файл аналогичен файлу Библиотека.mdb, созданному на предыдущем занятии, но все таблицы его заполнены данными. Дважды щелкните на таблице Издания, чтобы открыть ее в режиме таблицы (рис. 4.1). В нижней части окна таблицы видно количество записей в таблице и номер текущей записи. В таблице примера 25 записей. Текущая запись помечается специальным значком (>) в области выделения (серая область слева). В текущей записи располагается курсор ввода. В окне отображается только часть таблицы. Чтобы просмотреть записи в таблице полностью, используйте полосы горизонтальной (внизу) и вертикальной (справа) прокрутки. Если таблица большая, для быстрого перехода в начало или в конец таблицы служат кнопки перемещения на нижней границе окна. Назначение кнопок перемещения приведено в табл. 4.1. Однако кнопки перемещения на следующую и предыдущую запись в этом режиме обычно не используются. Примеры вы можете найти на сайте издательства www.piter.com на странице, посвященной этой книге.
Ввод данных в режиме таблицы
1 Философия : "Утешение философией" и другие трактаты 2 Религия ;Теорения преподобного Максима Исповедника • [3 Религия !Творения преподобного Максима Исповедника : ; Чтения и рассказы по истории России А История ^.Художественная литературэ ; Белая гвардия; Мастер и Маргарита 6 Философия фвдр..... :Рубай 7 Поэзия 8 ХудожестБенная литература '. Медный всадник 9 Драматургия Драмы 10 Худржестввнная литература 'Африка 11. Философия 0 началзх \ Счастливые родители 12 Детская литература 13.Детская литература : Мы ждем ребенка 14 Художественная литература Евгений Онегин 15• Художественная[литература П.1г10.Щ?." ?ЕУ*ие 16 Фантастика Понедельник начинается е субботу 17 Детектиеы •Современный французский детективный роман 18 Фантастика Оправдание ВЕЧНОСТИ
97
1990.. 1Э931 1993-; : :!?39;
.. .w&l
1989; 19951 J967". 1990
2000 1999 \99ЁГ '9?? 1999 1992 "1989" 1994 *•!; *:1
Рис. 4.1. Таблииа, открытая в режиме таблииы Таблица 4.1. Кнопки перемещения по записям таблииы Кнопка
Описание Перемещение на первую запись таблицы Перемещение на предыдущую запись таблицы Перемещение на следующую запись таблицы Перемещение на последнюю запись таблицы Создание повой записи
Добавление записи 1. Для добавления новой записи к таблице щелкните на кнопке создания новой записи. Курсор переместится в конец таблицы и будет установлен в первом поле Счетчик ( A u t o N u m b e r ) новой записи. 2. В поле типа Счетчик (AutoNumber) ввод данных запрещен, поэтому перейдите в следующее поле, нажав клавишу Tab. 3. Для следующего поля (Раздел) у нас определен столбец подстановок, поэтому как только курсор попадает в это поле, справа появляется кнопка со стрелкой. Нажмите ее и в раскрывшемся списке разделов выберите нужный раздел, например, История (рис. 4.2). Выбранное значение отображается в поле Раздел записи, а в области выделения записи слева появился значок (карандаш), который означает, что запись редактируется. Одновременно появилось значение в поле К о д И з д а н и я — это отработал счетчик. 4 Зак. 680
98
Занятие 4. Ввод и редактирование данных
т Издания: таблице
.- : ':
Ш*Ш 9:Драматургия 10;Художественная литература 11 : Философия 12 Детская литература 13 Детская литература 14 Художественная литература 15 Художественная литература Ш.Фантастика М. Детективы 18! Фантастика 19] Детская литература 20: Психология 21'История 22; История 23: Искусство 24; Поэзия 25; Философия история История Психология Философия Детская литература Детективы •Математика Я| Художественная литератур; ШМУВШИШЦШа Фантастика т
Драмы .Африка ' О началах Счастливые родители Мы ждем ребенка Евгений Онегин Прощай оружие Понедельник начинается в субботу ; Современный французский детективный ромэн .Оправдание вечности : Разговор с матерью : Нравственные основы жизни ! Вечера с Петром Великим : Раздумья о России :Поззиясадов : Избранная поэзия ;0 небесах, о мире духов и об аде
1990!; 1982|: 2000; 1999;. 1999'
"1999:':
1999-' 1992;' 1989; 19941 1991 1
1998'
Рис. 4.2, Выбор в раскрывающемся списке подстановки
Если попробовать перейти на следующую строку, например, нажав клавишу 4, то на экране появится сообщение: Поле Издание.Название не может содержать значение Null, так как свойство Обязательное поле этого поля имеет значение Да. Введите значение в это поле. (The field Издание.Название cannot contain a Null value because the Required property for this field is set to True. Enter a value in this field.)- Это отработала одна из проверок правильности ввода записи в таблицу, так как именно при переходе на следующую запись Access выполняет сохранение записи в таблице. Введите значение в поле Название. Для перехода между полями одной записи нажимайте клавишу Tab или Enter. Для перехода в начало следующей записи — клавишу 4-и затем Ноте, 5. Введите год издания, при этом можно проверить, как работает проверка логического условия, заданного для значения этого поля. Введите, например, значение 98 или 2005, и вы увидите сообщение, которое сами задали: Необходимо ввести 4-х значную цифру, не превышающую з н а ч е н и я текущего года! Это очень удобное свойство раскрывающихся списков в Access. Нет необходимости всегда раскрывать списки, можно просто начинать ввод данных в поле, и по первым совпадающим буквам будет подставлено нужное значение. Если в списке типов изданий есть два слова, начинающихся с буквы «к», и первое подставленное слово не подходит,то вы должны вводить следующую букву, затем следующую, пока не подберется нужное слово.
Ввод данных в режиме таблицы
99
6. Вводите данные в остальные поля записи. Когда дойдете до поля Дата Покуп1 ки, появится маска ввода, заданная для поля даты . Введите цифры в те позиции, которые обозначены символом подчеркивания. 7. Проверка условия на значение поля выполняется при переходе к другому полю или к другой записи. Если введенное значение не соответствует задан ному условию, на экран выводится сообщение, указанное пользователем, или стандартное сообщение, если пользователь не определил свое. Таким обра зом, вы не сможете переместить курсор в другое поле, пока не исправите значение. 8. Поле Т и п И з д а н и я тоже имеет столбец подстановки. Не раскрывая список, введите первую букву: к. Сразу же в поле будет подставлено значение: книга. 9. Закончив ввод записи, перейдите на следующую строку. Если вы вводили данные в последнее поле записи, для этого достаточно тоже нажать клавишу Tab. Именно при этом переходе произойдет сохранение записи в базе данных. Таким образом мы проверили, как работают те механизмы, которые была заданы при определении структуры таблицы.
Редактирование записи Чтобы отредактировать существующую запись, достаточно поместить указатель на поле, данные в котором необходимо изменить, ввести новые данные и нажать клавишу Tab для перехода на следующее поле. Окончательно данные в записи будут изменены только после перехода на следующую или любую другую запись. До тех пор, пока работа выполняется над одной записью, все изменения можно отменить, нажав клавишу Esc. Отмена изменения в текущем поле производится также клавишей Esc. ЗАДАНИЕ Попробуйте отредактировать некоторые записи в таблице Издания и отменить изменения с помощью клавиши Esc. При необходимости внести изменения сразу в несколько записей, напри-мер, изменить место хранения ряда книг, используется запрос к базе данных специального вида — запрос на обновление. С такими запросами мы будем знакомиться на Занятии 7.
Удаление записи Чтобы удалить записи, нужно сначала выделить их, а затем нажать клавишу Delete. При этом Access запрашивает подтверждение, чтобы предотвратить случайное удаление (рис. 4.3). Если вы попали в это поле из предыдущего, нажав клавишу Tab, то сначала маски не видно. Она появится, как только »ы введете первую цифру. Если нужно ввести первые числа месяца, обязательно вводите первый 0.
1 00
Занятие 4. Ввод и редактирование данных Microsoft Office Aecesj
ll
f
Предлрин«1ае1сянотшпка уделить следующее чисто записей 1, ;> I .'.ч. г., •,!•-. "Л 1- • - • ! - ! ' . . . - • ' -.-.:;i у ..'!.• ' ^m p:-'t.--;e-ii-'f'y/.r'i н..-г.', i" s .м
;
j
Нет
Рис.4.3. Диалоговое окно подтверждения удаления записей Выделение записей выполняется аналогично тому, как это делается в электронной таблице: щелкните на области выделения первой записи и,удерживая кнопку, переместите указатель до последней выделяемой записи и отпустите кнопку.
1. Выделите в таблице И з д а н и я введенную новую запись или записи и удалите их. Эти записи удаляются из таблицы без труда, так как не имеют еще связанных записей в подчиненных таблицах, например, в таблице Формуляр. Однако если вы попробуете удалить какую-то другую запись о книге, которая уже выдавалась читателям, Access не позволит это сделать. Чтобы удалить запись из главной таблицы, нужно сначала удалить все связанные с ней запи1 си в подчиненной таблице . 2. Закройте таблицу Издания.
Ввод данных с помощью копирования Ввод данных в таблицу можно осуществлять не только непосредственно с клавиатуры, но и с помощью команд копирования. Скопируем данные из таблицы Разделы базы данных демонстрационного примера БиблиотекаДанные.тёЬ в соответствующую таблицу новой базы данных Библиотека.mdb. 1. Откройте таблицу Разделы в режиме таблицы. 2. Запустите еще один экземпляр Access 2003 и откройте в нем базу данных Библиотека.mdb. 3. Выделите в списке таблиц Разделы и откройте ее тоже в режиме таблицы. 4. Удалите из нее все записи, если они там есть. 5. Переключитесь в базу данных БиблиотекаДанные.гг^Ь и выделите в таблице Разделы все записи (рис. 4.4). Если только при определении сняли между этими таблицами не был установлен флажок каскадного удаления записей. Если же флажок каскадного удаления установлен, то удаляться будет запись в главной таблице и вес связанные с ней записи в подчиненной таблице.
Ввод данных с помошью копирования
gua
-
Зст^вка
Формат
1ОI
Цапнем
at u; '-'-- $
''•",, (1 sJ.'lM' ^
1 История 2. Психология 3 Философия 4 Детская литература 5 Детективы Б Математика 7 Художественная литература 8 Фантастика 9 Драматургия 10 Религия 11 Искусство 12 Поэзия (Счетчик)
Рис. 4.4. Копирование записей из другой таблииы Access 6. Скопируйте выделенные записи в буфер обмена, например, нажав комбинацию клавиш Ctrl+Ins или кнопку К о п и р о в а т ь (Сору) на панели инструментов, 7. Переключитесь в базу данных Б и б л и о т е к а . m d b и выделите первую строку в таблице Разделы. 8. Вставьте данные из буфера, нажав Shift+Ins или кнопку Insert (Вставить) на панели инструментов. Вы увидите сообщение: Предпринимается попытка вставить следующее число записей: 12. Вставить записи? (You are about to paste 12 record(s). Are you sure to want to paste these records?). Нажмите кнопку Да (Yes). Записи из буфера будут вставлены в новую таблицу.
Разумеется, можно копировать не все, а только выделенные записи, и только в том случае, если типы данных для всех полей совпадают в обеих таблицах.
Обратите внимание, что значения поля КодРаздела не копируются из буфера. Так происходит потому, что это поле является счетчиком и заполняется автоматически при добавлении записей в таблицу. Значение счетчика не уменьшается, когда из таблицы удаляются записи. Этим объясняются пропуски, которые могут быть в таких полях. Счетчик всегда имеет значение, которое было в последней записи, и при вставке новой записи оно будет увеличено на 1.
1 02
Занятие 4. Е!1вод и редактирование данных
Вы не сможете установить счетчик в определенное значение, но можете сбросить его, чтобы обеспечить нумерацию кодов с 1 или со значения последней существующей записи. Для этого нужно выполнить сжатие базы данных. Выполните команду меню Сервис > Служебные программы > Сжать и восстановить базу данных (Tools > Database Utilities > Compact and Repair Database).
Аналогично копируются данные не только из других таблиц Access, но и из таблиц других форматов, например, Excel. 1. Откройте файл Издательства.xls из демонстрационных примеров. Выделите в нем строки со 2-й по 21-ю в столбцах А и В и скопируйте их в буфер. 2. Откройте таблицу Издательства в базе данных Библиотека.mdb. Выделите в ней первую свободную строку (рис. 4.5).
-! :1'одИздетепьство ; Издательстес
te .
I ':
• и I И!
• i-:,-.,
I
I...-- - ,.
-'
!••
Щ
1 1
j'l I . i -
1 I
1
.<>.•!.
f |lrf : i б ив
Рис. 4.5. Вставка данных из таблицы Excel Перед копированием не обязательно удалять все уже существующие записи из таблиц Разделы или Издательства, но если в новых записях окажется какой-нибудь раздел, совпадающий с имеющимся в таблице, будет выдано сообщение об ошибке, и соответствующая запись не будет вставлена. Действительно, в справочнике разделов не должно быть повторяющихся значений, поэтому поле Раздел проиндексировано таким образом, что в нем не разрешены совпадающие значения (см. свойства этого поля). При этом все ошибочные записи попадут в специальную таблицу Ошибки вставки (Paste Errors), которая добавляется в список таблиц. Вы можете открыть эту таблицу и посмотреть эти записи. Пример таблицы Ошибки вставки представлен на рис. 4.6.
Ввод данных с помощью копирования
1 03
3. Вставьте из буфера данные. Выдается то же сообщение о попытке добавления записей, и все записи вставляются в таблицу Издательства. щ Ошибки вставки : таблица
Рис. 4.6. Таблииа ошибок вставки обмена (2 из 24)
Чтобы вновь показать эту область задач, выберите е меню "Правка" пункт "Буфер fice" или дважды нажмите Ctr!+C
Рис. 4.7. Область задач буфера обмена с 2 блоками информации
Буфер обмена в Microsoft Office 2003 позволяет собирать до 24 скопированных блоков. Выполните команду меню П р а в к а > Буфер обмена Office (Edit» 1 Office Clipboard). Появится область задач Буфер обмена (Clipboard) (рис. 4.7). С помощью этой панели удобно работать с содержимым буфера обмена. Все элементы, скопированные в буфер, отображаются на панели в графическом виде. При копировании двадцать пятого блока на экране появится предупреждение о том, что буфер обмена ограничен в объеме и следующая скопированная информация может быть помещена в буфер обмена только путем удаления первого вставленного элемента. В ответ на предупреждение можно
1 04
Занятие 4. Ввод и редактирование данных
нажать кнопку ОК, что приведет к удалению первого элемента, смещению всех элементов вперед и добавлению на последнее место только что скопированной информации. При выборке информации из буфера вставляется последний скопированный или вырезанный блок. Чтобы вставить любой из двадцати четырех блоков буфера, необходимо щелкнуть правой кнопкой мыши на значке, соответствующем этому блоку и выбрать в контекстном меню команду Вставить (Paste) или просто дважды на нем щелкнуть. ЗАДАНИЕ
Скопируйте из файла БиблиотекаДанные.тсШ справочник Города. При заполнении данными новой базы данных путем копирования данных или путем импорта из других баз данных, о котором мы будем говорить далее, сначала нужно заполнить справочники. Только после этого можно начинать вводить данные в основные таблицы, уже используя эти справочники для ускорения и облегчения ввода.
4. Закройте файл БиблиотекаДанные.тсШ. Файл Библиотека.mdb должен остаться открытым для дальнейших упражнений.
Импорт данных Вторым удобным способом перенесения данных является импорт. Импортировать данные можно из файлов различных форматов: другой базы данных Access, файла Excel, текстового файла, файла формата .dbf, веб-страниц и многих других. В упражнениях этого занятия мы будем импортировать таблицы из файла БиблиотекаДанные.тёЬ и из файла Excel, TO есть попробуем выполнить самые популярные операции. Если вам придется столкнуться с необходимостью импорта данных из других форматов, вы сможете сделать это с помощью навыков, полученных на данном занятии.
Импорт данных из таблицы Excel Сначала попробуем импортировать данные из файла Аеторы-xLs, который входит в демонстрационный пример1. 1. Выберите команду Файл > Внешние данные > Импорт (File > Get External Data V Import). Появится диалоговое окно Импорт (Import) (рис. 4.8). 2. Как и при открытии файла, по умолчанию в окне отображается содержимое папки Личная (Personal) или Мои документы {My Documents). Выберите в списке папку, в которую скопировали файлы демонстрационного примера. Примеры иы можете найти на сайте издательства www.piter.com па странице, посвященной этой книге.
Импорт данных
1 05
^1 Mil Pictures •jjj 6 иб nnoreKa.mdb 1
док с- • ы
аказы на работы! .mdb ст, ad
н,°, \ документы
Мой
<.,;-ты: • [i Имя файле: Г :•..-• '.-Ч. -.,. « Microsoft Office Access (*,mcb;*.eclpj*,mde;*.mde;*.acFe)l Microsoft Office Access (*,mdbj*,adp;*,rnda;*.mde;*,ade) dBASE 5 (*.dbf) dBASE III (*.dbf) dBASE IV (*.dbf) JExchanged
Рис. 4.8, Диалоговое окно импорта
3. В списке Тип файла (Files of type) выберите Microsoft Excel (*.xls) (по умолчанию показываются файлы Microsoft Access). В окне отобразятся все файлы *.xU. Обратите внимание на длинный раскрывающийся список форматов файлов. Он как раз и содержит все типы файлов, которые возможно импортировать в Access.
4. Выберите среди этих файлов Авторы-xls и нажмите кнопку Импорт (Import). Запускается мастер импорта электронных таблиц и выводится первое окно мастера (рис. 4.9). 5. В нижней части окна показан образец данных импортируемой таблицы. Прокрутите эти данные и убедитесь, что таблица имеет те же поля, что и таблица Access, в которую нужно импортировать данные (кроме поля КодАвтора, которого обычно в таблицах Excel не бывает). Нажмите кнопку Далее (Next). 6. В следующем диалоговом окне установите флажок Первая строка содержит заголовки столбцов (First Row Contains Column Headings) (рис. 4.10). Вы увидите, что первая строка на рисунке превратилась в заголовки столбцов. Снова нажмите кнопку Далее (Next). 7. Появится новое окно мастера. Установите в нем переключатель, указывающий, что вы хотите сохранить данные в уже существующей таблице, а в рас-
1 06
Занятие 4. Ввод и редактирование данных Ш Импорт электронной тавямцЫ;
."- :-, :,
/^Сг г
г
• ' |,
-
| .i
. . - . : • - Ш • 1 /•'.' ,.
.
• '
фамилия Боэций Накеим Исповедник Соловьев Булгаков Тлатон
4мя
.: I Серией |Лихаил 6
"од Рождения 7 од Смерти Чес то F 5
480 S80
525 662
Палест
1820 1391 -427
1879 1940
1оск.вг Киев
-347
Афины
*1J
им
±
Рис. 4.9. Выбор объекта для импорта Ш Импорт электронной таблицы тот фпй*ок аля ncnont.so&sntiq данных из пдавом стр=жи i
содержит saronoBichuii-o iuu<s
имя Н-; ."• ..• i Фамилия • - -:. -- • Год Рожцг кия - ГсдСнер^м Зоэций 180 525 Максим Исповедник 580 662 1 Соловьев . Сергей 1820 1879 Булгаков 1891 1 Них аил Платон -427 '« -3-57 ~ Александр 1ушкин 1799 1837 1 Q Д П
_
-
i
HecTof Палест Иосквэ Киев Афины Москва
!
. .,. т
Отмена 0'
Да пес >
d тi
4 •- • '• • j
Рис. 4.10. Определение заголовков столбиов
крыпающемся списке выберите имя таблицы Авторы (рис. 4.11). Нажмите кнопку Далее (Next). 8. В последнем окне мастера нажмите кнопку Готово ( F i n i s h ) . 9. Откройте таблицу Авторы и убедитесь, что все строки из таблицы Excel появились в базе данных. При этом автоматически установились значения в поле КодАвтора.
Импорт данных
107
В данном случае таблица Excel имеет только один лист; если их несколько, то список листов был бы виден в верхней части окна, и нужно было бы выбрать, какой лист предстоит импортировать. Кроме того, как видно из окна, можно импортировать не только лист целиком, но и именованный диапазон ячеек электронной таблицы. При импорте в уже существующую таблицу Access очень важно, чтобы имена столбцов и типы данных в этих столбцах совпадали у обеих таблиц. Кроме того, импортируются всегда все столбцы листа Excel (или именованного диапазона). Если таблица Excel имеет другую структуру, нужно выбрать переключатель «в новой таблице» (In a New Table). Тогда будет создана новая таблицы Access той же структуры, что и таблица Excel и в нее импортированы все данные. Затем можно путем копирования (например, только нужных столбцов) перенести данные из одной таблицы Access в другую.
1
Ш Импорт электронной таблицы и» данны* дшусвдется е ноеой'ияи в с
& в суи^ст^щем таблице; '
щ 1 1 3
:ергей
*J Михаил 1 1. Александр
т
]Авторы
jj.
фамилия : " • Зоэций Таксим Исповедник Соловьев Булгаков Платон Пушкин
[ГодРожаения ГоВСЙефТЯ
480 530 1820 1891 -427 1799
Рим
562
Палест Москве Киев Афины Яоег.ва
1379 1940
^347 1837
"1
-':*.
' Отмени .
'У ;."•
;
.,
;- i
:
•
-
| -
< [ 1;нзаД •
.
|
Дй^ч'- > -
| '
'
Г<"'Тс*о :•
:
•'
:
'
'-' '
1 "•
Рис. 4.11. Определение имени таблииы
Импорт таблицы Access Импорт таблиц из другого файла Access выполняется аналогично описанном;.' импорту из таблицы Excel. Только импортируется всегда таблица целиком, тс есть нельзя импортировать только данные и существующую таблицу. Если в базе данных уже существует таблица с тем же именем, что и импортируемая, создается новая таблица, которая будет иметь то же имя, но с добавленной в конце цифрой 1. Вы можете убедиться в этом, если попытаетесь импортировать одну из таблиц базы данных демонстрационного примера, например МестаХранения.
I 08
Занятие 4. Ввод и редактирование данных
1. Выберите команду Файл > Внешние данные » Импорт (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 |Хрисрп<Н| •Москов!
Чтения и рассказы по истории России 1940 Киев
!Киевс»Ш
-347?Афины 183/Москва
j Учился,
[
Белая гвардия; .Мастер и Маргарита 51 6: Александр
;
: Платон Пушкин
Евгений Онегин Медный всадник 1123:Нишапур :403; Афины.
т
I Учился ;fj
Рис. 4,16. Отображение подчиненной таблицы вставка подтаойикы
Paste Errors АвтсрИэдамие Авторы "орода Издательства ЧестаХранения
Рис. 4.17, Диалоговое окно вставки вложенной таблицы
4. Выберите в списке таблицу Формуляр и нажмите кнопку ОК. На экране отобразилась вложенная таблица со связанными записями из таблицы Формуляр. В результате прямо в таблице Издания можно посмотреть, кто из читателей брал это издание из библиотеки. 5. Выберите команду Формат > Подтаблица > Развернуть все (Format > Subdatasheet > Expand All). Развернутся подчиненные записи для всех записей основной таблицы (рис. 4.18). 6. Обратите внимание, что Б режиме отображения подтаблицы в каждой вложенной таблице последняя строка пустая (точнее, R ней отображаются только
I 14
Занятие 4. Ввод и редактирование даиных
значения по умолчанию), а в области выделения она помечена специальным значком — звездочкой (*). Это означает, что в подчиненную таблицу можно добавлять новые записи1.
Утешение философией и другие трактаты
Т в о р ен и я прел о до 6 н о го_М а кс и и а И с no s e д н и к а
2 Религия Вольман Наталья Микай/
:35.09.2000|
3; Религия
02.10.2000
15.10.2000!
Творения преподобного 1у1зксима Испоеедника
Бушманова Ирина Влади Игначенко Наталия Влад1
125.09.2000 •15.10.2000!
4 История
02.10.2000; 30.10.2000
30.10.2000:
"bi".i 1.2000!'
• Чтения и рассказы по истории России -^^.;
урэдшждеш .'•-•'
*
5 Художественная л^ература _____ Белая гвардия; Мастер и Маргарита
" '
"
Рис. 4.18. Развернутые записи полтаблицы 7. Командой Формат > Подтаблица > Свернуть все (Format > Subdatasheet > Collapse All) можно одновременно свернуть все подчиненные записи.
Настройка внешнего вида таблиц В Microsoft Office Access 2003 существует понятие макета таблицы. Макет таблицы - это вид, в котором данные отображаются в окне в режиме таблицы. По умолчанию формируется уже знакомый стандартный макет таблицы, но Access позволяет его изменить. При этом можно изменить его для всех таблиц базы данных, а можно настроить каждую таблицу индивидуально. Чтобы изменить макет для всех таблиц, нужно изменить параметры Access с помощью команды Сервис > Параметры (Tools > Options). Для изменения внешнего вида одной таблицы используются команды меню Формат (Format). 1. Выберите команду Формат ¥ Режим таблицы (Format > Datasheet)2. Появится диалоговое окно Формат таблицы (Datasheet Formatting) {рис. 4.19), Элементы этого окна позволяют изменить вид таблицы. Редактировать и удалять записи в подчиненной таблице тоже можно. Это возможно, только если на экране открыта таблица в режиме таблицы. У вас сейчас в режиме таблицы должна быть открыта таблица Издания.
Настройка внешнего вида таблиц
13
Формат таблицы Оформление •
115
Линии се тки М he r;!f..ii-.r.J Р по вертикали
,.;Р|,..
(1
.. I. .«I.....;.*».F;fiu,
{Граница таблицы
*
Сплошная линия
г Рис. 4.19. Диалоговое окно форматирования таблииы
2. Установите, например, переключатель приподнятое (Raised) в группе Оформление (Cell Effect). Наблюдайте в поле Образец (Sample), как при этом изменится вид таблииы. Можно убрать линии сетки и изменить их цвет, изменить цвет фона, вид границы и линий. Команда Формат > Шрифт (Format > Font) выводит на экран стандартное окно настройки шрифта, что позволяет выбрать нужный тип и размер шрифта, Вместо команд меню форматирования можно использовать панель инструментов Формат (режим таблицы) (Formatting (Datasheet)) (рис. 4.20). По умолчанию эта панель инструментов не отображается. Чтобы ее отобразить, выберите команду Вид > Панели инструментов > Настройка (View > Toolbars > Customize). В диалоговом окне Настройка (Customize) на вкладкеПанели инструментов (Toolbars) установите флажок Формат (режим таблицы) (Formatting Datasheet) (рис. 4.21). Нажмите кнопку Закрыть (Close).
; Код^етора
•Anal
-:ю
-:: ж к ч
Рис. 4.20. Панель инструментов форматирования
3. Высота строк таблицы легко регулируется путем перетаскивания мышью нижней границы строки. Подведите указатель к нижней границе первой строки в области выделения. Он должен превратиться в двунаправленную стрелку. Протащите границу вниз. Таблица может выглядеть так, как показано на рис. 4.22.
116
Занятие 4. Ввод и редактирование данных
ГЬчХ'.пыИ! ч •••'••-> п'.•": Предварительный просмотр "~ Работа с исходным текстом •? Разметка страницы Режим формы i . . Сводная диаграмма .; Сводные таблицы Связь Служебная программа 1 Служебная программа 2 ?i Строка меню f? Таблица в режиме таблицы ""фильтр [?; Формат (режии таблицы) П Формат (сводная таблица или диаграмм: ~ Формат (страница) ^ Г"; Формат (форма/от чет)
Рис. 4,21. Диалоговое окно настройки
И..г«,й»?дни.Ш
. "irij^h'l,!
Л М.:1П(П1я
^ -кип
1
f: >лан гвардий;
iv.TOfVH
I | | Й | | | гчпДНЧ^,
"L..
Рис. 4.22. Изменение внешнего вилатаблииы Все строки таблицы всегда имеют одну и ту же высоту, поэтому изменение высоты распространяется сразу на все строки таблицы.
4. Аналогично можно изменить ширину любого столбца таблицы. Подведите указатель к правой границе столбца Издательство в области заголовка так, чтобы указатель превратился в двунаправленную стрелку, и перетащите границу вправо, пока не получите нужную ширину.
Настройка внешнего вида таблии
1 I7
Самый быстрый способ установить ширину столбца так, чтобы были видны полностью все данные и заголовок, — подвести указатель к правой границе столбца в области заголовка и дважды щелкнуть правой кнопкой. Это соответствует установке ширины столбца По ширине данных (Best Fit) в диалоговом окне Ширина столбца (Column Width) (рис. 4.23), которое можно отобразить, выбрав команду Формат > Ширина столбца (Format > Column Width).
Рис. 4.23. Диалоговое окно ширины столбиа
Если таблица широкая и не все столбцы помещаются на экране, можно скрыть некоторые столбцы, оставив самые важные 1 . 5. Выделите столбец Издательство в таблице Издания, щелкнув на его заголовке. 6. Выберите команду Формат > Скрыть столбцы (Format t Hide Columns) (рис. 4.24).
Фориат Ц\$зукх1 Ш
CJJJSHC
Окно
ШРиФтРежим таблицы..
. у Высота строки... ! т Издания : таблица
*
| ffl
2
•-'••С,; Ширина столбца.. . . Переименовать столбец 1 Фило.;^ J Скрыть столбиы • '.^ Отобразить столбцы...
Религия
•.?'= Закрепите столбцы ffij"
3.
Релягия
J Освобоаить все столбцы
S3.
4 Истчри.н •
Ш.
5 Худ^жес^те
Ш;
6 'Оилософи
Ш. '
7 Поэзия
Ш;
8 Художесп
;>" Поатаблица
•)_ Э1»«ы ЛЫП ~А
Рис. 4.24. Команда скрытия столбиов Так обычно делают при просмотре таблицы. При вводе данных лучше видеть tscc столбцы.
118
Занятие 4. Ввод и редактирование данных
Скрыть столбец можно также, перетащив мышью правую границу столбца к левой так, чтобы они превратились в одну линию.
7. Чтобы вновь отобразить скрытый столбец, выберите команду Формат > Отобразить столбцы (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 Современный французский детективный роман
•<""J
,' 1990:Наука | 1993;Мартис •'•'< ТЭЭЗ'Мартис ;•'•••' 1ЭВЭ;Праеда 1983;Мастацкэя г 1969|Прогресс j; 1995; Невский кур 1967;Лениздэт 1990 Чаука '"1'э92":Наука" ' |s 2CDO; .Амфора т~"
1999; э
1999 игюл Knaci" 1999. Амфора 1999; Амфора 1992;Гегга Fanlas 19В9;Правдэ 199Д:Ди-дик 1991;ИздательстЕ '
: Оправдание вечности ; Разговор с матерью i Нравственные основы жизни : Вечера с Петром Великим 'Раздумья о России : Поэзия садов
- !
-i
i
—
123
2000; Эксмо-Прес 1999[3олотая алл 1998- Согласие ,. -
-
-
-
..
(В-
£J-
F'WMM feulMlt.
Рис. 5.2. Таблица, развернутая до максимального размера
I
см
i
-* . ^1 »J "S *
ч
Л *d-^. *^ ч-Л ~*
? члдйздалир)
: "
^i ~VJ '• s.^ '"'
СЗРЯИС
Окно
£rpawa
l-ai-^.T
13: Детская .литература 12;Детская литература 19: Детская литература .Э^Драматургия 23 Искусство 22 История 21; История 4; История 24; Поэзия 7^ Поэзия
r
*;| its! *'!
20i Психология 2: Религия Э'Религия
!«; '*il Ж| ;^1 •+-1 *:: :^| £; -.*}
18;Фантэстика 16^Фантастика 1| Философия 6:Философия 11 : Философия 25;Философия 6; Худ охественная. литература 14! Художественная литература 5!Художвствечиая литература
iwii-t" »j" "" )Г~ :
~"Т * ' *r j>+-i из а
«,:=,-• №<:<.
- , S X;
•i Hi^-MHin
Соереиеннын французский детективный рсман
'*;i ^j *| fl '*il :+;' Щ '•К .*!! .*•!
..
t Л
Мы ждеи ребенка Счастливые родители Разговор с матерью Драмы Поэзия садов Раздумья о России Вечера с Петроы Великим Чтения и рассказы по истории России Избранная поэзия Рубай Нравственные основы жизни Творения преподобного Максима Исповедника Творения преподобного Максима Исповедника Оправдание вечности Понедельник начинается в субботу "Утешение философией" и другие трактаты Фадр 0 началах 0 небесах, о мире духов и об аде Медный всадник Евгений Онегин Белая гвардия; Wazrep и Маргарита
f о;, >1-ц шил .-"-з^згельсч * 1989 Правда |-; ' 1993 Рипол Knacil; 1991 Иэдате/ьстЕ?. ".1330 Наука '__ ' ' , |' 1998 Согласие 1999. Золотая а."л •; 2000 Эксмо-Прес '% 1989 Правда -,'а 5000 Панорам 1995 Невский кур™' 1994 Онацтва ;• 1993 Мартис ; '.; : 1993 Мартис ? ] 1994 Ди-дик •; 1992 Terra Fanlas 1990 Наука if : 19В9 Прогресс .; : 2000 Амфора |. ; 1999 Амфора .j. • 19Б7 Ле.ниэдат 1999 Амфора .. .| 1988 Маетэцкая i^i
• • ; :::;•;;.; т
Рис. 5.3. Таблииа Издания, отсортированная по полю Разделы
1 24
Занятие 5. Поиск и сортировка данных Значения поля Раздел сортируются по наименованию раздела, хотя на самом деле в поле Раздел содержатся не наименования разделов, а их коды, Однако при отображении таблицы на экране Access использует значения из столбца подстановки, который мы определили при создании таблицы Издания.
Б таблицах, содержащих большое количество записей, установите индекс для тех полей, по которым собираетесь выполнять сортировку, — эта операция будет выполняться значительно быстрее.
Итак, мы отсортировали таблицу И з д а н и я по текстовому полю — разделы отображаются в порядке алфавита.- Теперь отсортируем ее по числовому полю. 4. Щелкните на любой строке столбца Цена и нажмите кнопку Сортировка по убыванию (Sort Descending) на панели инструментов. Все записи в таблице выстроятся в порядке убывания цены издания (рис. 5.4). • [Издания : -габяиал] Вставка
^водат"
.
> + ___.. +
1998; Согласие 1969: Прогресс
•s-t. +
1999:Рипсл Клэс( 2000; Амфора
'Москва СПб
2000 Панорама 1994'Ди-дик
.МР.9М?.. Москва
1999. Золотая алл СПб 1994 Юнацтва Минск 1993 Мартис „Москва 1993 Мартис ^Москва 1995: Невский кур ! СПб 1999; 'ТМосква
У. *
2000; Эксмо-Прес : СПб 1999!Аы$рра СПб 1992:Наука Москва 1990! Наука Москва 199Э Амфора " СПб
|^ » Г.:; * t ; * J -+•
,'
; I,-,
Мещ £§Щ '-- Ц<НЗ • ' Большая ко
'Москва Ленинград
ЭЕ31 жесткая Ш
:
Большая ш | 125,ррр. „жесткая, Ж 1 24 ДОр. ' Жесткий |' 1 Большая го ] Большая ко j i.Q3/Xip. жесткая |; Большая ко ; 102.000. ^жесткая |!: 1 Большая ко : 74,00р. ; жесткая,1:! ;
|1
|1
Большая ко Большая ко Большая ко
1 2 12
; ; :
70.00р. ;Ж8сткая 58,'ЭОр. : жесткая :. 57,00р. ! мягкая ;
Большая ко 2 Маленькая i : Большая ко ! Маленькая i ; Большая ко
57,00р. ; мягкая 55,00р мягкая
'|
50,00р. жесткая 50,00р. жесткая 43,JOp жесткая 25,00р. жесткая • 24,00р. жесткая > 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
| жесткая
•-- <
57,00р мягкая в суперобложке : S7,ODp. ИЯ!?' : 4,DOp жесткий ; 3,30р. жесткая 125,00р. жесткая, суперобложка ! 55,00р. нягкая
Ленинград Москва Москва Москва Москва
СПБ спе
] ?
Яоиек Сб»»к .
Звиенэ
". j •
•
.
ф-ягкэя
*
:. Э£р|*К<*Н4. ": {мягкая е суперобложке 1
not***'1-" |[№дания7та5пйца _^J ' -
т
3
:
on*.!
—
-
1
: ff^f ijSS^™ ^ '-• ? 1 1 Г" С учетам aernrrga Г~ , ' .- -
Минск
' •"" -•
Большая ко Маленькая i
СПб СПб • Москва №«« .HJJ.J j
I 'j
Большая ко Большая ко э 'Ш1-ШШ »| 25-; ;
- •
JLJ
: :
а
жесткая 50.00р. жесткая 70,00р жесткая 150,00р женкая .„-A-.-j.i,.J!...JJ..A.J
11.02.1lfe1' u^.n.liS" . 14.05.1!^' ' 12.05.1!{' • 14.05.!!;-. 02 Q2 1i. Q5.D6 1!^ 06.061!;
22 ОЛ 1'
"•J Наит даяа *--•. | \
:
Москва
\ ;..-. . . • • ; • 01.01 1!:
" 23QS.U: '
21 09.1: - .
1203 1!
мная:
12 03 Г
тяя-
21 09. V
•
11 09.1! ' • 21.09.1' 2В C9.2I •• 15 12.1!^ ^ : . ; . . : . . ..J^t
Рис. 5.10. Замена найденного фрагмента текста
Использование фильтров для поиска группы записей Если в таблице много записей, работать с такой таблицей трудно, даже просматривать долго. Обычно на экране отображают не все записи, а только группы записей, отобранных но определенному критерию. Этот процесс называется
5 Зак. 680
1 30 Занятие 5. Поиск и сортировка данных фильтрацией. В Microsoft Office Access 2003 предусмотрено четыре способа отбора записей с помощью фильтров: фильтр по выделенному фрагменту, фильтр по форме *, «фильтр для» и расширенный фильтр. При работе с фильтрами используются три кнопки панели инструментов; Г|*1 — Фильтр по выделенному (Filter by Selection); Щ — Изменить фильтр (Filter by Form); JV - Применить фильтр (Apply Filter), она же Удалить фильтр (Remove Filter). Самым простым способом фильтрации является применение фильтра по выделенному. 1. Щелкните на любой ячейке столбца Раздел со значением Философия. 2. Нажмите на панели инструментов кнопку Фильтр по в ы д е л е н н о м у (Filter by Selection). Будут отобраны все записи, имеющие в поле Раздел значение Ф и л о с о ф и я (рис. 5.11). Обратите внимание, что рядом с кнопками перемещения по записям на нижней границе окна появилось слово Ф и л ь т р (Filtered). Таким образом, глядя на таблицу, всегда можно видеть, все ли записи отображаются в данный момент. Число 4 указывает количество отобранных записей.
Рис. 5.11. Применение фильтра по выделенному Фильтры сохраняются автоматически при сохранении таблицы или формы. При повторном открытии таблицы или формы можно снова применить сохраненный фильтр. 3. Нажмите кнопку В и д (View) панели инструментов, чтобы переключиться в окно конструктора. 4. Если на экране нет окна Свойства таблицы (Table Properties), нажмите на панели инструментов кнопку Свойства (Properties) j*». В справке по русской версии Access 2003 он называется обычным фильтром.
Использование фильтров для поиска группы записей
5. 6. 7.
8.
1 31
Свойство Фильтр (Filter) таблицы имеет следующее значение (рис. 5.12): С (1_оо)<ир_КодРаздела. Раздел="Философия")) Выражение слева от знака равенства (=) — значение из столбца подстановки поля Раздел. При сохранении таблицы установленный фильтр сохраняется в свойстве Фильтр (Filter) и может быть снова применен. Закройте таблицу И з д а н и я . Ответьте Да (Yes) на вопрос, нужно ли сохранять макет таблицы. Откройте таблицу снова — отобразятся все записи. Нажмите на панели инструментов кнопку Применить фильтр (Apply Filter) снова будет применен тот же фильтр. Кнопка Применить фильтр (Apply Filter) находится в положении «нажата». Чтобы удалить фильтр, нажмите ту же кнопку еще раз — она теперь превратилась в кнопку Удалить фильтр (Remove Filter) 'Свойства таблицы
РежЩ-ПО ,-маячан1#с-:. ,..-, -, , -. Релим таблиц
Рис. 5.12. Установка свойства Фильтр таблицы Если образец для отбора записей не виден в столбце таблицы, можно применить фильтр по заданному условию. Он позволяет ввести вручную образец текста для отбора. 1. Щелкните правой кнопкой мыши на любой строке столбца Издательство. Откроется контекстное меню. 2. Введите в поле Фильтр для (Filter for) строку наука (рис. 5.13) и нажмите клавишу Enter. Будут отобраны только книги издательства «Наука» (рис. 5.14). Если нажать клавишу Tab, а не Enter, контекстное меню не исчезает с экрана и можно вводить другие критерии отбора. При нажатии клавиши Tab выборки все время будут обновляться. 3. Удалите фильтр.
I 32
Занятие 5. Поиск и сортировка данных
В поле Фильтр для (Filter for) можно указывать не только конкретные значения, но и выражения, требующие вычислен и и (о выражениях см. Занятие б).
Фи.льтр по выделенному Исключить выделенное
"Щ-.- УДаЛ1/ТЬ ФИЛЬТр
||4
Сортировка по возрастанию
f \,
Сортировка по убыванию
!$&'•'• Вырезать :
"Л
Копировать
Рис. 5.13. Установка «Фильтра для;
Африка Драмы "Утешение философией" и другие трактаты
Рис. 5.14. Отфильтрованные записи
При необходимости установит], более сложный фильтр, например, состоящий из двух и более условий отбора, применяют фильтр по форме. 1. Нажмите кнопку И з м е н и т ь фильтр (Filter by Form) на панели инструментов. Появляется форма — специальное окно для изменения фильтра (рис. 5.15). Форма содержит линейку полей таблицы. Б любое ил этих полей можно ввести или выбрать в списке значение, которое и будет являться условием отбора. Если условия внести в несколько полей, то отбираться будут те записи, которые удовлетворяют всем заданным условиям, то есть И первому, И второму И т. д. Для отбора записей, удовлетворяющих одному условию ИЛИ другому, раскрывается другая вкладка формы (нужно щелкнуть на ярлычке И л и (Or) н нижней части формы), и второе условие задается на ней.
Использование фильтров для поиска группы записей
133
При вводе условий отбора в поля формы можно использовать любые выражения, которые возможны a Access.
История Психология Философия Детская литература Детективы Математика Художественная литератур; Фантастика
!
Рис. 5.15. Окно изменения фильтра 2. Выберите в списке в поле Раздел значение История, а в списке в поле Издательство — Правда. 3. Раскройте вторую вкладку, щелкнув на ярлычке Или (Or). 4. Выберите в списке в поле Раздел значение Философия, а в списке в поле Издательство — Наука. 5. Нажмите кнопку П р и м е н е н и е фильтра (Apply Fitter) панели инструментов. Будут отобраны две записи (рис. 5.16).
j Философия 4 История
"Утешение философией" и другие трактаты
1990'Наука
Чтения и рассказы по истории России
1939 Правда
1
Рис. 5.16. Применение фильтра по форме 6. Нажмите еще раз кнопку Изменить фильтр (Filter by Form). Перед изменением условий можно очистить все поля в форме. Для этого используется кнопка панели инструментов Очистить бланк (Clear Grid) gfj. Фильтр со сложными условиями отбора рекомендуется сохранить в виде запроса. Тогда в любой момент его можно применить снова. 7. Нажмите на панели инструментов кнопку С о х р а н и т ь как запрос Д (Save as Query). 8. Появится диалоговое окно Сохранение в виде запроса (Save as Query) (рис. 5.17).
1 34
Занятие 5. Поиск и сортировка данных
•Образец фильтра по форме
Рис. 5.17. Диалоговое окно сохранения в виде запроса
9. Введите имя запроса Образец фильтра по форме и нажмите кнопку ОК. 10. Очистите поля фильтра, нажав кнопку Очистить бланк (Clear Grid). 11. Для повторной установки сохраненного в виде запроса фильтра достаточно в форме фильтра нажать кнопку Загрузить из запроса (Load from Query) Цр. Откроется диалоговое окно П р и м е н я е м ы й фильтр (Applicable Filter) со списком сохраненных фильтров (рис. 5.18). Выберите нужный фильтр и нажмите кнопку ОК. Все условия фильтра снова появляются в полях формы. 12. Закройте окно изменения фильтра и удалите фильтр, нажав на панели ин: струментов кнопку Удалить фильтр (Remove Filter) p7 ЗАДАНИЕ
Отберите все книги издательства «Наука», используя фильтр по выделенному. Применяемый фильтр
Рис. 5.18. Диалоговое окно применяемого фильтра
Печать, экспорт и рассылка таблиц Отобранные с помощью фильтра данные (как, впрочем, и таблицы целиком) можно печатать, копировать, экспортировать и рассылать по электронной почте. Чтобы напечатать таблицу, удобнее всего использовать кнопку Печать (Print) на панели инструментов |Ш| Печатается вся таблица или только отобранные записи, если установлен фильтр. Но прежде чем выполнить печать, можно посмотреть, как будет выглядеть таблица в напечатанном виде.
Печать, экспорт и рассылка таблиц
1 35
E|M»cioto(t Acceit -(Формуляры ибяица) Сервис
QKKO
Дправкэ
- _ в X
Закрыть . .ЦстансВкв \
Рис. 5.19. Окно предварительного просмотра документа
Для этого воспользуйтесь кнопкой Предварительный просмотр (Print Preview) на панели инструментов !Щ1 На экране появляется окно предварительного просмотра и панель инструментов Предварительный просмотр (Print Preview) (рис. 5.19). В нижней части окна есть кнопки перемещения по страницам, аналогичные кнопкам перемещения по записям в режиме таблицы. Указатель приобрел форму лупы со знаком плюс (+) в центре. 1. Щелкните на таблице, масштаб изображения увеличится (рис. 5.20). Видно, что вся таблица на одной странице не помещается. 2. Нажмите на панели инструментов кнопку Две страницы (Two pages) На экране одновременно будут показаны две страницы (рис. 5.21) — таблица разбита на две части. Это не очень удобно. Попробуем разместить всю таблицу на одной странице альбомной ориентации. 3„ Выберите команду меню Файл > Параметры страницы (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ера«мамо Л<ш«д*ъ><1* чаиини
• Волыни На« . бояьман Или
21.09 iMU IS.M 2WQ 14.10 ЖС
16 10.20BO 3D 10.2000. Ol'.llVlDDO
wjjg.soto^ " 3D .Н.2DDD' ' 24.00 idio' 08 ID MOD'
на им • • Ст 1
Рис. 5.25, Экспорт данных в Word
2. Аналогично происходит экспорт таблицы в файл Excel. Выберите команду Анализ в MS Excel (Analyze It With MS Excel). Создается файл Формуляр.xLs, этот файл открывается, и в нем отображается таблица Формуляр (рис. 5.26).
Печать, экспорт и рассылка таблии 1
Ш(*Щ1
ls
1Ш Micioioll Excel - fopus""** * *j Ч-aii
Пг'.-вг-г, fcjti-.
ScffBKa 1 Ф-оЕздат -" C|BS*t
-• .-; ' >; ; t , „•) . v , ; m
139
''!',
Данные
- 10
Aii^
Окно т
Елравкл
ffl^tttHVH
» ; Ж iff : Ч <. & :•Sail t»5. [5*.
1
. в X^ *J . ^в.о/ ;р1 л . ,')a . S3 • Ж (» i* -_i. •** Т ,
i-
4
Издание
1 ^Творения преподобного Максима Исповедника Всль-лан Наталья Михайловна 1творения преподобного Максима Исгтоведнииа Бушманова Ирин» Влади мир оен а [Творения преподобного Максима Исповедника Игначенко Наталия Владимировна
25.09 2000. 25.09 2000' 15.10.2000;
02.10.2000 | р2.10.2Срр; 30.10.2000;;
|Африка'"" |Африка ,ip начал ах
Вольиан Наталья Михайловна .Файзрахианов Айрат Фаткеракиэнович; |ФайзрахнаноЕi Айрат ФаткерахманреичД
23.09.20001 30.09.2000} 24.03.2000:
11.10,20001 07.10.2000^ 12.10-.2pOOj
Вольиан Наталья Сергеевна Вольман Наталья Мшайловна Файзрахиэнов Айрат Фатхврахманович [
06.10.200JD: 25.09.2000; 23.09.2000:
13.1p,3Xp| 2510.2000.: 23-10-2000
^Понедельник начинается в субботу 1Поэзня садов lПоэзия садов
Рис. 5,26. Экспорт данных в Excel
Еще один вариант сохранения таблицы в виде отдельного файла — преобразование ее в формат HTML. 1. Выберите команду Файл > Экспорт (File > Export). Появится диалоговое окно Экспорт объекта (Export Object) (рис. 5.27).
Pictures лфавитный каталог.НЫ лФав^ный каталогРадеЗ html
г
Документы HTML (".html,
Рис. 5,27. Диалоговое окно экспорта объекта
1 40
Занятие 5. Поиск и сортировка данных
2. В поле Тип файла (Save as type) выделите элемент Документы HTML (HTML Documents). 3. Выберите папку, н которой необходимо сохранить экспортированный объект. 4. В поле И м я файла (File Name) введите имя файла. 5. Установите флажки Сохранить формат (Save formatted), если таблицу нужно сохранить в формате, близком ее внешнему виду н режиме таблицы, и Автозагрузка (Autostart), чтобы созданная в результате экспорта веб-страница сразу же была открыта в программе просмотра веб-страниц. Параметры вывода » формате Hf ML:
Выберите коднро&ку дпя сохра £*" по умолчанию
файла:
Г Юм-год ?~ Юникод (UTF-8) . -::
Рис. 5.28. Диалоговое окно параметров вывода в формате HTML
щ j CADoOimenti and SeltmgsVidrripnpstrcilor^My Dосип*п1ЛФ адуляры html
'|
("IT^DSMoa
1
Ф.р. п-ляры
Читатель •Творения преподобного Максима Исповедника Творения преподобного Максима Исповедника Творения преподобного ;Максима Исповедника Африка Африка Ю началах ^'Понедельник начинается в •субботу .Поэзия садов ^Поэзия садов
,.;:,';,, „,.';;!,, Х;:;;;;;:.:
Вольман Наталья Михайловна Бушманова Ирина Владимировна
25.09 2000:
Игначенко Наталич Владимировна Вольман Наталья Михайловна Фэторахманов Айоат Фаткерашанович Фэйзрахианов Айрат Фатхерайманпви1-! Вольыан Наталья Сергеевна
15 10.2000:
30.102000!
23.092000-
11 10.2000;
30.09.2000:
07 10.2000;
2409.2000;
12.10.2000'
Вольиан Наталья Мииайловна Файэрахмэнов Айрат Фатаерашановнч
02 10 2000
15 10.2000
25ЖЗТОГ''Ж'1 0.2000
30.102000
Примечание
01 11 2000
'•
-1
30.10.2000
\ f
ое 10.2000; 13Ю2000: 25.09.2000;
11
25.102000;
23Ю.2000Г'' 'zs'.'ib.fooo'
'
ЗОЖ2000
РИС. 5.29. Таблииа Формуляр, экспортированная в формат HTML
-
Подведение итогов
1 41
6. Нажмите кнопку Экспорт всех. На экране появится диалоговое окно Параметры вывода в формате HTML (HTML Output Options) (рис. 5.28). 7. В этом окне можно указать шаблон HTML, который будет использоваться для формирования веб-страницы, и тип кодировки страницы. Оставьте вес значения по умолчанию, тогда у веб-страницы будет стандартное оформление. Нажмите кнопку ОК. Результат экспорта показан на рис. 5.29. Таблицы Access, а также результаты выборки, могут быть отправлены вашш:; адресатам по электронной почте для ознакомления, анализа и т. д. 1. Выберите команду Файл * Отправить (File > Send To). 2. В раскрывающемся меню выберите команду Сообщение как вложение (Mail Recipient). 3. В окне Отправка по почте (Send) выберите тип файла, например, Microsoft Excel (*.xls) (рис. 5.30). Отправка по почте HTML (*.htm; *,html) J Microsoft Excel 5-7 (*.xls) Text Files (*.bd) Microsoft Excel 97-2003 (*.xis) Microsoft ExceU*.xls) Rich Text Format (*.rtf)
ок
Рис. 5.30. Диалоговое окно отправки 4. Нажмите кнопку ОК и выполните стандартную процедуру отправки почтового сообщения. ЗАДАНИЕ Используя фильтр по форме, отберите книги, купленные в 2000 году. Экспортируйте результат в файл .xls.
Подведение итогов Итак, на данном занятии вы научились: • сортировать таблицу но разным столбцам (текстовым, числовым, дате); • искать нужную запись по образцу в выбранном поле и во всей таблице;
1 42
• • • • • •
Занятие 5. Поиск и сортировка данных
выполнять замену найденных вхождений образца; устанавливать фильтр по выделенному и «фильтр для»; создавать и применять фильтр по форме; сохранять и вновь использовать фильтр; печатать таблицу или группу отобранных записей; экспортировать отобранные записи в документ Word, таблицу Excel, страницу HTML; • рассылать данные таблицы Access no электронной почте.
III
ЗАНЯТИЕ 6
Создание
и выполнение запросов на выборку ТЕМА ЗАНЯТИЯ
На этом занятии вы узнаете: • что такое запрос и чем он отличается от фильтра; • как создать новый запрос; • как выполнит], запрос; • как изменить уже существующий запрос и проверить его результат; • как сортируются записи в запросе; • какими могут быть условия отбора записей в запросе; • как создаются выражения в Access; • что такое внешнее и внутреннее объединение таблиц в запросе; • как создавать вычисляемые поля в запросе; • как создать и выполнить запрос с параметрами.
Запросы и фильтры
1 45
Для выполнения упражнений данного занятия вам потребуется файл БиблиотекаДанные.тсШ 1 . Откройте его перед началом занятия.
Запросы и фильтры На прошлых занятиях мы рассмотрели, какие действия можно выполнять с таблицами Access, открытыми в режиме таблицы. Таких действий, на первый взгляд, достаточно, чтобы решить почти все задачи, которые требуются при обработке данных. Однако таблицы — это только один из семи основных объектов Access. И теперь мы познакомимся со следующим объектом — запросом. Запрос в какой-то степени аналогичен фильтру, так как одна из основных функций запроса — найти и отобрать нужные данные в базе данных. Однако они позволяют выполнять и много других действий. Запросы используются для просмотра, анализа и изменения данных одной или нескольких таблиц. Например, можно использовать запрос для отображения данных одной или нескольких таблиц и отсортировать их в определенном порядке, выполнить вычисления над группой записей. Запросы могут служить источником данных для форм и отчетов Access. Сам запрос не содержит данных, по позволяет выбирать данные из таблиц и выполнять над ними операции. В Microsoft Office Access 2003 существует несколько видов запросов: • запросы к серверу, позволяющие осуществлять выборку данных с сервера; • запросы автоподстановки, позволяющие автоматически заполнять поля новой записи; • запросы выборки, осуществляющие выборку данных из таблиц; • запросы изменения, позволяющие модифицировать ;шнные в таблицах (в том числе удалять, обновлять и добавлять записи); • запросы создания таблицы, позволяющие создать новую таблицу на основе данных одной или нескольких существующих таблиц: • перекрестные запросы — аналог сводных таблиц Excel, позволяющие анализировать данные, содержащиеся в таблицах. Запрос на выборку содержит условия отбора данных и возвращает выборку, соответствующую указанным условиям, без изменения возвращаемых данных. Основное сходство между запросами на выборку и фильтрами заключается в том, что в том и другом случае производится извлечение подмножества записей из базовой таблицы или запроса. Основные отличия запросов и фильтров заключаются в следующем: • фильтры не позволяют отбирать данные одновременно из нескольких с ;язанных таблиц — запрос главным образом для этого и используется; 1
Примеры вы можете найти па сайте издательства www.piter.com на странице, посвященной этой книге.
1 46
Занятие 6, Создание и выполнение запросов на выборку
• фильтры отображают все поля таблицы, из которой извлекаются данные в запросе можно указать, какие поля вы хотели бы видеть на экране в конечном результате; • фильтры не являются отдельным объектом в окне базы данных, поэтому если мы хотим сохранить фильтр (то есгь сохранить те условия, которые мы указывали в фильтре), он сохраняется в виде запроса 1 ; • фильтры не позволяют вычислять суммы, средние значения, подсчитывать количество записей и проводить другие вычисления над группами записей; • фильтры могут применяться к таблице, результатам запроса, к форме, но пе могут быть источником записей для формы или отчета — запросы часто используются как источник записей форм и отчетов. Уяснив, чем отличается новый объект от уже известных нам фильтров, приступим к его изучению.
Создание простого запроса с помощью мастера Как всегда, проще всего познакомиться с объектом, создав его с помощью мастера. Первый запрос, который просто напрашивается, должен объединить таблицы Издания и Авторы, так как несколько странно выглядит таблица изданий, в которой не видно авторов2. 1. Щелкните на ярлыке Запросы (Query) панели объектов окна базы данных, чтобы раскрыть список запросов. Этот список пока содержит только сохраненный нами на прошлом занятии фильтр для таблицы Ф о р м у л я р (рис. 6.1). 2. Дважды щелкните на значке Создание запроса с п о м о щ ь ю мастера (Create query by u s i n g wizard). Запускается мастер запросов, и на экране появляется диалоговое окно Создание простых запросов (Simple Query Wizard) (рис. 6.2). 3. В поле со списком Таблицы и запросы (Tables/Queries) выберите таблицу Авторы. 4. С помощью клавиш со стрелками вправо и влево переместите из списка Доступные поля (Available Fields) в список Выбранные поля (Selected Fields) два поля; Имя и Фамилия. Порядок выбора полей важен, так как именно в этом порядке они будут отображаться в результате запроса.
Вы можете сказать, что фильтр сохраняется о свойствах таблицы. Да, это так, но там сохраняется только последний применяемый к пей фильтр. С точки зрения структуры базы данных ничего странного нет — два разных объекта со своими атрибутами хранятся в двух разных таблицах, и это правильно.
Создание простого запроса с помощью мастера
1 4/
р БмбяиотекаДанные : база д
Рис. 6,1. Раскрытый список запросов
--, -' .:- • 1 • ; .;; аыбфдае поля для запросив " ' ' ": ? - ' ;
Имя Фамилия
одРо*дзнид одСмерти Месторождения Образование Фотография
| -J.
OtHSHS
готово
Рис. 6.2. Первое диалоговое окно мастера простых запросов 5. В том же поле со списком Таблицы и запросы (Tables/Queries) выберите таблицу Издания. 6. Переместите из списка Доступные поля (Available Fields) в список Выбранные поля (Selected Fields) поля Название, ГодИздания, КодИздательства, КодГорода (рис. 6.3). Нажмите кнопку Далее (Next).
7. В следующем окне требуется выбрать тип запроса: подробный или итоговый (рис. 6.4). Оставьте переключатель по умолчанию подробный (Detail) (с итоговым мы познакомимся позднее) и нажмите кнопку Далее (Next).
1 4о
Занятие 6. Создание и выполнение запросов на выборку Создание простыи запросов Выберите поля для мпрюса, .;Дог.у<зсжт£я выбор несколь
"3
|Т а б лица: Издания : ,,
. :--,
КодИздания КодРаздела
Фамилия Название ГодИзданпя КодИздательства
Издание Код Мее т а Цена Тип Об ложки ДагаПокупкм
Рис. 6.3. Список отобранных полей из таблии Авторы и Издания
HI
' Др' .v-.Li-'H.-!''-nLir.i!.[;iiU.r-!eT:
' , ' • 1 1
•-..)>. '.л 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. Запрос в режиме таблииы
С результирующим набором запроса (далее будем говорить просто «с зап' юсом*) работают так же, как с обычной таблицей в режиме таблицы, то с<:ть записи можно сортировать, фильтровать, выполнять поиск, печатать, копировать и т. д.
I 50
Занятие 6. Создание и выполнение запросов на выборку
10. Щелкните на любой строке в поле Фамилия и нажмите кнопку Сортировка по возрастанию (Sort Ascending). Записи будут отсортированы по фамилиям авторов (рис. 6.7). |jp И здани*ЛАвторЫ : запрос на выборку :
'
Хорхе Луис Михаил Франциск Даниил Ольга Дмитрий
Андрей Адам Франческо ; •
I
:
f
\!' | •;• Ц . " Наэеая^« [ ' ™ . .. , ,.^ },.Гой stf дани> ..Издал^ {Борхес •Оправдание вечности 1994 : Боэций -"Утешение философией" и другие трактаты l'99D Наука р '•. ! Булгаков Белая гвардия; Мастер и Маргарита 193В Maciai^l; ;Вейс Нравственные основы жизни 1994 Юнзцт;|^; i Гранин •Вечера с Петром В-зликим 2000 ЭКСМО-Г . : Еремеева ;Мы ждем ребенка 1999 Шихачев • Раздумья о России 1999 Золотз | :Максим Испов Цворения преподобного Максима Исповедника 1993 Марти! .-".'; Максим Испов !Творения преподобного Максима Исповедника 1993 Марти! " J Митрошенков !Мы ждем ребенка 1999 Рипол ;.; :Мицкееич [Избранная поэзия 2000 Панор; ";: : :0риген ;0 началам 2000 Амфор :? ' ; Петрарка : Африка Наука 1 'llnq • I
нТ*.
- ЕШ1 ИМШ
•
Рис. 6.7. Отсортированный запрос
Если книга имеет нескольких авторов, она будет отображена несколькими строками, причем они будут не рядом. Пример: «Мы ждем ребенка», Ольга Еремеева и Андрей Митрошенков.
11. Закройте окно запроса. На вопрос о сохранении макета ответьте Да (Yes). Название созданного памп запроса появилось в списке запросов.
Использование конструктора для создания запроса Второй способ создания запросов заключается в самостоятельном создании запроса в режиме конструктора. Этот способ позволяет создать более сложные запросы, но требует большей квалификации пользователя. Допустим, вы хотите посмотреть, какие книги определенного автора есть в библиотеке. 1. Выберите значок Создание запроса в режиме Конструктора (Create query in Design view) и списке запросов окна базы данных. Появляется окно конструктора таблиц и поверх него диалоговое окно Д о б а в л е н и е т а б л и ц ы (Show Table) (рис. 6,8). 2. В окне Добавление таблицы (Show Table) есть три вкладки: на одной отображается список таблиц, на другой — список запросов, а на третьей для удобства
Использование конструктора для создания запроса
1 J>1
выведен перечень таблиц и запросов вместе. Пока мы будем создавать запросы только на базе таблиц. Дело в том, что запрос в Access во многих случаях выступает полным аналогом таблицы, поэтому он может служить базой для другого запроса, формы или отчета.
АеторИздзние Авторы
Города Издания Издательства Местахрамения Разделы Формуляры Читатели
Рис. 6.8. Добавление таблииы в запрос
3. Выберите таблицы, которые должны участвовать в запросе. Выделите в списке на вкладке Таблицы (Tables) элементы А в т о р ы , АвторИздание, Издания и нажмите кнопку Д о б а в и т ь (Add). Для выделения нескольких не рядом расположенных элементов списка удерживайте клавишу Ctrl.
4. Нажмите кнопку Закрыть (Close). 5. В верхней части окна конструктора отображаются все три выбранные таблицы. Переместите их в поле окна так, чтобы были видны и таблицы, и связи между ними (рис. 6.9). Окно конструктора запроса состоит из двух областей. Верхняя область представляет собой свободное поле, в котором размещаются таблицы-источники данных. Эта область напоминает окно Схемы д а н н ы х (Relationships). Нижняя часть называется бланком запроса и заполняется в процессе конструирования запроса.
1 52
Занятие 6. Создание и выполнение запросов на выборку
ЙР Запрос! : запрос на выборки
- :
'
-
,-. *• i
*
J
^3
—J
КодАвтораЖ "" - - ~ КодАвтора Имя КодИэда>мя Фамилия 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 <ниги по авторам ; запрос на выборка
РТ ТГ-
1
• | Еремеева Ольга : Митрошенков Андрей :Спок Бенджамин Софокл Дмитрий ! Гранин Даниил Дмитрий ^Лихачев Соловьев Сергей : Мицкевич Дцам .Хайям Омар •Вейс Франциск : Максим Исп'ов i Максим Испов : Борхес Хорхе Луис : Стругацкий Аркадий .Стругацкий Борис ; Боэций |0риген
Детская литература Детская литература Детская литература Драматургия Искусство История История История Поэзия Поэзия Психология Религия Религия Фантастика Фантастика Фантастика Философия Философия 1>"•-'•=
"<J
Н
l
J
<
Мы ждем ребенка _Мы ждем ребенка Разговор с матерью Драмы Поэзия садов Вечера с Петром Великим Раздумья о России Чтения и рассказы по истории Избранная поэзия Рубай Нравственные основы жизни Творения преподобного Макси Творения преподобного Макси Оправдание вечности Понедельник начинается в суб Понедельник начинается в суб "Утешение философией" и друг 0 началах 1. , 1
•
,:
Большая комната ;.fi Большая комната -:f Большая комната | : ; Маленькая комнат -Щ Большая комната I"1-" Маленькая комнат •*"• Большая комната Jii. Маленькая комнат J Большая комната j. Маленькая комнат ' Большая комната \ : Богьшая комната ;-! Большая комната ";:Большзя комната Большая комната ^ Большая комната -" Большая комната :' Богьшая комната *-.
Рис. 6.17. Сортировка по двум столбиам
Отбор записей по нескольким условиям В бланке запроса можно вводить несколько условий отбора. Проверка этих условий будет выполняться по-разному, в зависимости от того, куда вы введете эти условия. 1. Снова переключитесь в режим конструктора, нажав кнопку Вид (View). 2. Введите в строку Условия отбора (Criteria) столбца Раздел слово История, а строкой ниже Философия (рис. 6.18). (Кавычки можно не вводить, они будут подставлены автоматически.) 3. Выполните запрос, нажав кнопку View (Вид). Результат запроса представлен на рис. 6.19. Отбираются все книги, которые входят в раздел «История» ИЛИ «Философия».
1 58
Занятие 6. Создание и выполнение запросов на выборку (jjji Книги ло йвтирам : запрос на выборк» *
1 \i ^ " • • ^ • ч
КодАвтора КодИэдашя
ФэМИТИЙ
-•••
5*j
f
1
ТипИздзнм
*
Г'юдсл
,.,:±1±^Д1:. | ; || 1 . | |'i *
.
'
Ж ———|
Раздел
Фамилия Авторь
Разделы по возрастанию
.
..
..
Название
Авторы
Издания
по возрастанию
а
0
В
'
•»1я
КодМеста Издания
а
"
И
"история Wei!' "филосо( эия"
>г
^ :1 Рис. 6.18. Добавление условии отбора в запрос
Гранин
Да-шил
!Вечера с Петром Великим
Ли/а'-.ев Соловьев
Дмитрий Сезгнй
!Раздумья о России Большая комната ^Чтения л рассказы по иста^ии I Маленькая комнат
Боэций
Маленькая коинат
;"Утешенне философией" и друг Большая комната
Оригвн
;0 началах
Платон СведеьБор г
Эиэьуэль
Большая комната
"Федр Большая комната Ю небесак, о мире ду«ов и об ; Большая комната
Рис. 6.19. Результат выполнения запроса на выборку 4. Переключитесь снова в режим конструктора. 5. Теперь отберем книги по истории ИЛИ по философии И христианству. Введите в ту же строку, где введено условие Философия, но в столбце Заметки, выражение * х р и с т и а н с * и нажмите клавишу Enter или Tab. Выражение будет преобразовано следующим образом: Like " * х р и с т и а н с * " (рис. 6.20).
-
.
.
. ,
Раздел Разделы
Фамилия
Имя
АЕТСрЫ
Авторы
по еоэрэстан!*э
по возраст-а-мю
.
0
1
0
И
Название Издания
0
КодМестэ Издания
В
•
•
Издания
*
г
"ист ори ч" "философия"
!У
Like "'хаисгиачс* " |.
Ж
Рис. 6.20. Установка нескольких условий отбора, связанных по ИЛИ и по И
Редактирование запроса
1 59
6. Выполните запрос, нажав кнопку Вид (View). Результат выполнения запроса представлен на рис. 6.21. Отобраны 3 книги по истории и одна по философии и христианству. Кинги по авторам : запрос на выбор» История Транин История Лихачев История ^Соловьев Философия :0ригеи
;Даннм JВечера с Петром Велики i Дмитрий Раздумья о России Большая ко 'Чтения и рассказы по истор Маленькая : Сергей ]_| _;О началах .Большая ко
:В сборник включены наиболее популярные п|: ;Трактат одного из основателей христианского
Рис. 6.21. Отбор записей по нескольким условиям, связанным по ИЛИ и по И
Итак, запомните. Если нужно установить несколько условий отбора, причем должны выполняться условие! Йусловие2 ЯусловиеЗ и т. д., все эти условия нужно писать в одной строке. Если нужно, чтобы выполнялись условие! ИЛИ условие2 ЯЛЯусловиеЗ, записывайте каждое из них в отдельной строке.
Окно SQL Режим конструктора позволяет в удобной и простой графической форме сконструировать инструкцию SQL (языка структурированных запросов), которая и выполняется процессором базы данных Access. Вы можете даже увидеть эту инструкцию. 1. Переключитесь в режим конструктора. 2. Щелкните на стрелке кнопки Вид (View) и выберите в списке Режим SQL (SQL View) (рис. 6.22). Появится диалоговое окно с инструкцией SQL, выражающей созданный вами запрос. Это инструкция SELECT, означающая запрос выборки. После слова SELECT перечисляются все поля, которые включены в запрос. Далее идет слово FROM,
И» Книги по авторам : запрос на выбери: SELECT Разделы, Раздел, Авторы Фамилия, Авторы.Имя, Издания.Название, Издания.КодМеста, Издания.Заметки FROM Разделы INNER JOIN (Издания INNER JOIN (Автора INNER JOIN АвторИздание ON Авторы, Код Автора = АвтсрИздание.КодАвтора) ON Издания. Ко дИэ дани я = АвторИздание,КодИздания) ON еаздел=1 КодРзздела = Издания.КодРаэдепа MHERE (((разделы,Раздел)="история")) OR (((Paзделы.Раздел)="философия") AND ((Издания,Эа^етж) Liks ""'христиане*")) ORDER 6V Разделы Раздел, Авторы.Фамилия;
Рис. 6.22. Режим SQL
1 60
Занятие 6. Создание и выполнение запросов на выборку
и после него указываются таблицы, из которых извлекаются данные. Эти таблицы объединяются в запросе с помощью связанных полей. Следующая часть инструкции начинается со слова W H E R E и содержит условия отбора. Последняя часть ORDER BY определяет порядок сортировки записей в результате запроса. Именно это предложение сохраняется, когда вы сохраняете запрос. Данные при этом остаются в своих таблицах. При выполнении запроса они собираются из всех таблиц, являющихся источниками данных для запроса, и отображаются на экране. Поэтому результаты многократного выполнения одного и того же запроса могут быть различны, если между запусками этого запроса изменялись данные в таблицах-источниках.
В предыдущих версиях Access размер шрифта в окне SQ.L был очень маленький (8), и текст запроса был трудночитаемым. Теперь появилась возможность настраивать размер шрифта и гарнитуру в окне настроек Access. 3. Выполните команду Сервис > П а р а м е т р ы (Tools > Options). Появится диалоговое окно настройки параметров Параметры (Options). 4. Раскройте вкладку Таблицы и запросы (Tables/Queries) с параметрами режимов создания таблиц и запросов. В поле Размер (Size) группы Ш р и ф т е конструкторе запросов (Query Design Font) (рис. 6.23) установите значение 12 и нажмите КНОПКУ ОК.
!UM ! ilSpi ; П; .-IK-, •>;" .:-• . ApyrteМемшунаредные '
' им'МцЫ ?.а6пшы й запросы
Разм?р*,= тп;Л гчэ умот-йннге текстовое; (50 1 ; «испоесе:
дпинноецелое
рге ихсйдашт;
Idi ЩщШМ -.^n. •.-;,, /ске предаст ащляются орава. .елыа v Д -V : ; .-: ;-.' '=:•
k' i-JL Ш..'ЛИМег* , ;
i.!,.-. д ! , ( , ' - .
". :-
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 <= (меньше или равно) #01.02.03#
Чтобы увидеть региональные настройки Windows, откройте панель управления (например. Пуск > Панель управления). На панели управления дважды щелкните на ярлыке Язык и региональные стандарты. В появившемся диалоговом окне Язык и региональные стандарты откройте вкладку Дата.
Еще один вид оператора сравнения 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
<
<0
Значение меньше 0 (отрицательное число)
<=
<- #31.12.99»
Значение в поле типа дата меньше или равно 31 декабря 1999 года
&
"[Страна]" & "," & "[Город]"
Оператор слияния двух строковых выражений. В приведенном примере объединяет поля Страна п Город через запятую
And
Like '"антич*" A n d Like "*сосуд* м
В результат запроса включаются записи, удовлетворяющие одновременно и одному, и другому условию. Позволяет отобрать записи, которые содержат в заданном поле подстроку «амтич» //подстроку «сосуд* (при поиске информации об а н т и ч н ы х сосудах)
Or
" П у ш к и н " Or "Достоевский"
В результат запроса включаются записи, которые удовлетворяют хотя бы одному из указанных условий. Значение ноля должно быть либо «Пушкин», /[ибо «Достоевский»
' Not
Not "фольклор"
В результат запроса включаются только записи, не содержащие указанное значение в ноле
*,/,+.
[Цена] * [Количество]
Арифметические операторы умножения, деления, сложения и вычитания соответственно
DateQ
>= 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 ]<адИздания
г- к. f
*I
Г ч из "Издания", е которых окшнные по-тсоаладаюТ'
Рис. 6.28. Диалоговое окно параметров объединения
4. Задайте левое внешнее объединение, выбрав переключатель 2. Нажмите кнопку ОК для закрытия диалогового окна. При этом на конце линии соединения появится стрелка в сторону таблицы «многие» (АвторИздание), что указывает на левое внешнее,соединение (рис. 6.29). В пашей базе данные таблиц Издания и Авторы связаны косвенно, через таблицу связи А в т о р И з д а н и е . Поэтому, чтобы запрос был создан правильно, необходимо установить внешнее объединение и между таблицами А в т о р ы и Ав-
1 68
Занятие 6. Создание и выполнение запросов на выборку
(Р Книги по авторам : запрос на
датаПокупн числоСтра ТипИздан!
. ;,
.-•
'
"
.
•
'
.
Раздел Разделы по возрастанию 0
Фзмили ц Авторы по возрастанию
Название Издания
Имя
Авторы
0
0
0
—
П -".:--
. . . . .
•щ
•
>Г^
ЫЛ Рис. 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<»цюс1: запрос на
Гранин Даниил Лихачев Дмитрий
Оправдание вечности Вечера с Петром Великим Поэзия садов 0 небесах. о мире Д. у ков и об аде
1994 2000 1998 1999
Ди-дик Эксмо-Прес Согласие Амфора
Москва СПб .Москва
Рис. 6.45. Книги, поступившие за 1999 год
Подведение итогов Итак, на данном занятии вы научились: • создавать запросы с помощью мастера и с помощью конструктора; • просматривать результат выполнения запроса; • изменять запрос с помощью конструктора; • устанавливать порядок сортировки и условия отбора записей в запросе; • включать поля в запрос и исключать их из него;
Подведение итогов
• • • • •
1> 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<)
Возвращает значение поля из последней записи результирующего набора
MaxQ
Возвращает максимальное значение из набора, содержащегося в указанном поле
MinQ
Возвращает минимальное значение из набора, содержащегося в указанном поле ,
StDevQ StDevPQ
Возвращают смещенное и несмещенное значения среднеквадратичного отклонения, вычисляемого по набору значений, содержащихся в указанном поле
Sum()
Возвращает сумму набора значений, содержащихся и заданном поле
Var()
Возвращают значения смещенной и несмещенной дисперсии, вычисляемой по набору значений, содержащихся в указанном поле
VarP()
Попробуем применить еще одну статистическую функцию: Avg{). Вспомним созданный ранее запрос Задерживающие книги. Сделаем запрос, считающий, сколько дней в среднем держит книги каждый читатель нашей библиотеки.
Расчет итоговых значений
1 85
1. Откройте запрос Задерживающие книги в режиме конструктора и удалите из него все условия отбора. 2. Закройте запрос и сохраните его. Щелкните на ярлыке Создание запроса в режиме конструктора (Create Query in Design View). В диалоговом окне Добавление таблицы (Show Table) раскройте вкладку Queries (Запросы) и выберите запрос Задерживающие книги (рис. 7.6). Нажмите кнопку Добавить (Add). Добавление таблицы .,:,,
it
. lli.rj.4l
Ш .'.. г .
Задерживающие гнигм д а ния&Авторы Книги по авторам Образец фильтра по форме Поступления за период
Рис. 7.6. Выбор запроса в качестве источника данных
Закройте окно Добавление таблицы (Show Table). 3. Включите в бланк запроса поля КодЧитателя и Д н и (вычисляемое поле, показывающее количество дней, которое книга была на руках у читателя). Ыр Запрос! : запрос на выборку -.-
.-.' --.
.-
.-
:.
.
.-
-
КодЧитателя ДатаПо лучения ДатаВозвратаФакт
\-
Дни -
: -
-, :
.
I I
Г. *' I:
_
_.
.,
,
,
•
| -
КодЧитатвпя
lfc ШБ-ЭЧ >|;;;,.1:л,ии
—
—
—
-|
—
.
•-,
;
—
Г
Задерживающие книги
Задерживающие книги
Группировка
Avg|
0
Т
- ~
Дни
' "" ^
0
П
П
- П. , ; - F ' i . 'Т г | ,
*н
-
Рис. 7.7, Использование функиии Avg() в запросе
ii
1 86
Занятие 7. Анализ и изменение данных с помошью запросов
Щелкните на панели инструментов на кнопке Г р у п п о в ы е о п е р а ц и и (Totals). В строке Групповая операция (Total) столбца Д н и выберите в списке функцию Avg() (рис. 7.7). Нажмите на панели инструментов кнопку Запуск (Run) и посмотрите на результат запроса. Для каждого читателя библиотеки отображается, сколько дней в среднем он держит книги (рис. 7.8). 4. Закройте этот запрос и сохраните его под именем Средние сроки н а л и ч и я к н и г на руках. jP Запрос"! : запрос на выборку Бушманова Ирина Владимировна Файзвахманов Айват Фатхеоахманович
Рис. 7.8. Результат использования статистической функиии AvgO в запросе
Анализ данных с помощью сводной таблицы Пока мы делали только достаточно простые операции с группировкой данных в запросе и расчетом итоговых значений. Но еще в версии Access 2002 появился новый мощный аппарат анализа данных — Сводные таблицы (Pivot Tables), аналог сводных таблиц, давно существующих в Excel. Умелое использование этих таблиц позволит просматривать данные в различных разрезах и с разной степенью детализации. Переходим к рассмотрению сводных таблиц. В Access всегда существовал и сохранился в версии Microsoft Office Access 2003 перекрестный тип запроса (Crosstab Query), упрощенный вариант сводных таблиц. Теперь этот запрос не актуален, поэтому рассматривать его мы не будем. Если вы все-таки захотите узнать, как он строится, можете воспользоваться мастером перекрестного запроса, вызываемым из диалогового окна Новый запрос (New Query). Это окно вызывается кнопкой Создать (New) в окне базы данных.
Создание сводной таблицы Применение сводных таблиц удобно, когда в базе данных есть таблицы с большим количеством записей, которые просто невозможно проанализировать без специальных средств. Поэтому, чтобы научиться создавать такие таблицы, мы будем использовать учебную базу данных Борей.mdb (Northwind.mdb). Б ней есть достаточно большие таблицы Заказы (Orders) и Заказано (Order Details) с данными о заказах, которые поступали на фирму Борей (Northwind). 1. Откройте учебную базу данных Борей.mdb (Northwind.mdb). 2. Щелкните на ярлычке Запросы (Queries), чтобы открыть список запросов.
Анализ данных с помошью сводной таблииы
1 о/
3. Найдите и выполните запрос Счета (Invoices), дважды щелкнув на нем. Вы увидите таблицу, содержащую более двух тысяч записей и много полей с разнообразной информацией о заказах клиентов: данные о клиенте, время заказа, кто принял заказ, какие продукты были заказаны и т. д. Эти данные мы и попробуем проанализировать. Пусть вас не смущает, что записи в ней относятся к 1996, 1997, 1998 годам — видимо, с тех пор как эта база данных была создана, данные в таблицах не изменялись. 4. Щелкните на стрелке на кнопке Вид (View) и выберите в раскрывшемся списке элемент Сводная таблица (PivotTable). На экране появится окно с макетом сводной таблицы с четырьмя областями: П самая верхняя горизонтальная полоса называется областью фильтра, здесь будут находиться поля, по которым вы сможете фильтровать данные; П вторая горизонтальная полоса — прообраз заголовков столбцов таблицы; П вертикальная полоса слева будет содержать заголовки строк; П средняя большая область — область данных, будет содержать собственно данные. Справа вы должны увидеть отдельное окно — Список полей сводной таблицы (Pivot Table Field List) с перечнем полей запроса (рис. 7.9).
Получатель Адрес получателя Город получателя Область получателя Индекс получателя С т сана получателя КодКпиентв Клиенты. На юани е Адрес Город Область Индекс Страна Продавец
Рис. 7.9. Макет сводной таблицы
Для отображения окна Список полей сводной таблицы нажмите на панели инструментов кнопку Поля (Field List) Щ1
1 88
Занятие 7. Анализ и изменение данных с помошью запросов
В верхней части диалогового окна Access появилась специальная панель инструментов Сводные таблицы (PivotTable) с кнопками выполнения действий со сводной таблицей. Мы познакомимся с ними по мере освоения этих действий. Итак, мы хотим видеть в таблице суммы всех размещенных на фирме заказов клиентов, причем в строках мы будем группировать данные по продукту, а в столбцах — по годам. 5. Сначала определим строки таблицы. Найдите в списке полей запроса в окне Список полей сводной таблицы (Pivot Table Field List) поле Марка (ProductName) и перетащите его мышью в облает]) заголовков строк — вертикальную область у левого края формы (рис. 7.10). В этой области появится столбец Марка (ProductName) со списком всех продуктов. Определим столбцы таблицы. Найдите в списке в окне Список полей сводной таблицы поле Дата размещения по месяцам (OrderDate by Month) и перетащите его в область заголовков столбцов (рис. 7.10). Появятся три столбца, которые будут содержать сгруппированные по годам данные и один столбец итоговый по строке. .
: запрос на выборкч
I .... ^
r r
-
I.*'-
,
-
-
.'
'
. ; j .,,, |
, - ._•[ •"•:-.' ; ,s Caniarvofi.Tlgfets Chanrj
-. . .
:
. *! }-t\ ,; ^ . щ
• 1
i , i
;;•-,..!•
>. . • ,
,*
Рис. 7.10. Определение строк и столбиов сводной таблицы
6. Строки и столбцы определены, нужно определить, что будет отображаться в самой таблице. Найдите в окне С п и с о к полей сводной т а б л и ц ы поле Цена (Extended Price) и переместите в центральную область (рис. 7.11). Все заказы сгруппированы, и вы видите, что, например, продукт Aniseed Syrup был в трех заказах в 1996 г., в шести заказах — в 1997 г. и в одном в 1998 г. В этой таблице не хватает итоговых значений — их легко получить. 7. Щелкните на заголовке любого столбца с надписью Цена. Все столбцы, кроме последнего, итогового, окажутся выделенными. Нажмите на панели
Анализ данных с помошью сводной таблииы
(Р Счета : запрос на выборку
F.?vnn f^T
HE-PS гатите сед л пг;л« фидыиа Годы l;j : !% • .
Щ! fiHirMi
1 ]и:. ,•
| ГЩ
.. ,
345.30р.,
ЮО.ООр ;
ao.oop.j
юо.оор. i 80,00p.! 80,00p.; •• 100,00р.!
100,00р.;
loo.oop.; 100,00p.j
ibd Дор. i
AniSfefed Зушр
:
Beaton i ^
| | _
;
_
.
, _ ^ _ _
'"'Гцциг iiru'-ii
Je|a - Hefw|^ 100,00р.;
I
i
100,00р.! jS 55.30р. 136.60р | 170 ,00 p.; 0,00р. 170,00р.! i i j 136,00р. . 136.00p; 170,00р.! 170,00р.; : 136,00p.i 4g : 77,00p. 96 ,50 p.! 95,50p.! : 96 ,50 p. i . 96 .50 p.; [I 77,00р. 77,00p. 77 .00 p.! 96 ,50 p.! 96 ,50 p.! ; 96,50p.i ^.Jj^JZffi.
ll
-j
Рис. 7.11. Сводная таблица для запроса Счета Счета : запрос на выборку
425,30р. ""19Т,ЗОр:
йзэдар;
ernbefl f-i,- •,_: .li; -I'villl T|j-.(.-,
...-:.;'. : i | i .
., ..r.iir;
660,00р.' 918.CiOpV
2"487,орр!:
'ЮОДОр.; 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|;•••••<' "joo'.cop*' ^P-pOp" '"1эо.с)ОрГ"" . З^ШР-
456 .Шр.; 4SBJ3up. 215,00р.: 215,ЬЬр.' : 132,50р. 132,50р. 250,00р.; 250,00р. 280,00р.' 1 053,50р.: " "1 333,50р. 345",30р. " " 345,30р. 55,30р. 5530р. 534,50р. 534,50(5. '"' 320 ДОр. | 320"фр! 238'.Шр""'" 288ДОр.' 140,00р.' 140.00р. " 92,00р.:" " 92ДОр." "Э48ДОр.Е " 346ДОр! 210,00р.' 210,00р. 340ДОр/ 340,00р.
I
Рис. 7.15. Сводная таблица продаж в разрезе клиентов и товаров Есть и другие способы фильтровать данные в таблице. 1. Удалите столбец с наименованиями клиентов. Выделите этот столбец и в контекстном меню выберите команду Удалить (Remove). 2. Выделите столбец Марка (ProductName), щелкнув на его заголовке. На панели инструментов нажмите кнопку Показать верхние и нижние элементы (Show Top/Bottom Item) Затем выберите в списке элемент Показать только в е р х н и й элемент (Show Only the Top) и далее 5 (рис. 7.16). В результате будет отобрано только пять продуктов с наибольшим значением в столбце Общие итоги (Grand Total). В заголовке столбца Марка (ProductName) появился значок фильтра (рис. 7.17). 3. Снимается такой фильтр той же кнопкой, но выбрать в списке нужно команду Показать все (Show All).
Изменение структуры сводной таблицы Преимущество использования сводных таблиц в простоте трансформации. Простым перетаскиванием полей из области в область можно получать разные виды таблиц, меняя местами столбцы и строки, фильтры и столбцы, добавляя и удаляя поля любой области. При этом вы будете получать различные виды представления данных, что и обеспечивает их всесторонний анализ. 1. Переместите поле Продавец (Salesperson) из области фильтра в область столбцов.
Анализ данных с помошью сводной таблицы
1 93
Рис, 7.16, Фильтрация данных по максимальным значениям «Я Счета : запрос на выборку
R! 1996 4
Ц
3546,OQp.|
i',, Mt; '[tin;,' CvMiWo. "((»,,,•
•566,00p ; 90iO,OOp. 9365,ODp:" " "э;367Д1р."
т
3 960,00p.l
14"850,QOpi:
Щ
8432,COp.i 23574,Юр ;
21 6р7,Шр.: Вв"271';Юр"
8 600,00р.;
19292,QQp 22278,00р 27 610pOp.
28985,ODp.: 59024,[X)p 73492,60р.Г 165337.SDp
Рис. 7,17. Установка фильтра по максимальному значению объемов продаж 2. Переместите поле Годы (Year) в область фильтра. 3. Добавьте поле Получатель (Company Name) в область строк. 4. Удалите поле М а р к а (ProductName) из области строк, перетащив этот столбец за пределы сводной таблицы (при этом рядом с указателем появится изображение креста). Столбец исчезнет. 5. Установите фильтр по продавцам, выбрав из общего списка пар}' фамилий. 6. Установите фильтр по годам, отобрав данные только за 1998 год. Вы должны получить таблицу, которая будет выглядеть как на рис. 7.18.
При перетаскивании полей обращайте внимание на форму указателя, изменяющуюся над разным и областям и таблицы. Указатель над элементом, который можно перетащить, приобретает форму крестика. При перетаскивании элемента указатель выглядит как миниатюрный макет сводной таблицы, и над той областью таблицы, где можно отпустить перемещаемый элементна этом значке подкрашивается соответствующая область. 7 Зак 680
1 94
Занятие 7. Анализ и изменение данных с помошью запросов
ш Счета: запрос на выборку т
Стрднд получателя :Дята jia шещеи ня по иесяцам -
l952.Cpp.952,00p 762"J3Qp 762,80p!; 781,50р. 781.50р.: 77,50p '
i-.-fiv: Hanrjel • i- r:-,, ^ f ! y : . i i i i ' in . 1:1 ••.
ri5S,oop. 1 586,OQp. '3SB8'flpp"
. . i! L. i i ' « v
435'Sbp"
:
:
""1586Д)р.': 3568,0pp.";
435 №_
Рис. 7.18. Трансформированная структура сводной таблицы
Изменение уровня детализации данных Чтобы посмотреть, как легко менять уровень детализации отображаемых в сводной таблице данных, нужно снова поменять местами поля Годы (Years) и Продавец (Salesperson) и снять все фильтры (нажмите на панели инструментов кнопку Автофильтр (AutoFilter)). В заголовке столбцов слева от числа, обозначающего год, находится значок плюса в квадратике. Это маркер развертывания. Он показывает, что сейчас отображаются данные только самого верхнего уровня детализации. 1. Щелкните на маркере, например, 1998 года. Появятся четыре столбца, в которых будут отображаться данные за квартал и один итоговый столбец за год. 2. Щелкните маркер развертывания в столбце Кв1 (Qrtl), и таблица развернется по месяцам (рис. 7.19). 3. Чтобы раскрыть данные сразу по всем кварталам, выделите заголовок Кварталы (Quarters) (он находится рядом с заголовком Годы). При этом окажутся выделенными заголовки сразу всех кварталов 1998 года (см. рис. 7.19). Теперь на панели инструментов нажмите кнопку Развернуть (Expand) Обратите внимание, что кроме данных по каждому месяцу, выводятся также промежуточные итоги за квартал и за год. 4. Чтобы снова свернуть таблицу, щелкните на заголовке Годы (Years). Будут выделены все заголовки, содержащие год. Нажмите кнопку Свернуть (Collapse) слева от кнопки Развернуть |ccfl
Анализ данных с помощью сводной таблицы
1 95
т Счета : запрос на выборки
jiua "Цека" С^мыэ 'Ц«н«" С/кма "L(fens' С/ннч
":'.,:
i *.'i,' . i : . . : : i
от
1 343,10р. 168,00р.
з"1э"4,зОр.:"
ззо",оор
3 34В,50р . 2276,00р. " Д 5 3 5 Шр 599|00p'i 954,00р ;
"_6983.50р 2424,40р. 7 273,00р
320.00р. !169,20р
88Q,9Qp.;
625, ббр!
706 flUp И 71С,ООр Ц.
1 097, 50 р 843,50р' 725,00р
Э30,00| 1 417,5Г1|. 3893,601 " i'350",DO|r " '| 0"ООДО|.
"1 62^,до р
5 231,00р. 2679,00р.
706,00р • 71б,00р'|
70,'бОр'"" 490flOp.":
267,00pj"
" 1 453JDGp.i" 3985,00р.;
;
"7о",оор"; '
3210,00|.
;
3965,00р
ij.
Рис. 7.19, Детализаиия данных по столбиам сводной таблииы
Детализировать данные по любому столбцу или строке таблицы можно с помощью кнопочек со значками «->> и «+>>. 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... .-.!!-?
--' .-:,., «,,'Д а^
щ\
Да <#С1, 01,1999*
^и
ш.
Рис. 7.33. Создание запроса обновления данных На панели инструментов нажмите кнопку Запуск ( R u n ) ¥Ш и выполните прос.
V'
Изменение данных с помошью запросов
207
В данном случае для выполнения запроса нужно нажать именно кнопку Запуск (Run), так как требуется не просто переключиться в режим таблицы, а выполнить действия над данными. Access выдает сообщение о количестве обновляемых записей (рис. 7.34). 6. Подтвердите выполнение обновления.
Будет обновлено следующее ч-каа запрей: 4. Поста пожатий гюжи Vi--'" отмена г,-i-f:).,)!"-' ШШ ••.••wwivm.
Рис. 7.34. Предупреждающее сообщение о числе обновляемых записей №!
Одним из важных правил во время работы с запросами изменения (обновления, добавления, удаления) является обязательное создание резервной копии таблицы, в которую необходимо внести изменения. Дело в том, что исправления, внесенные запросами изменения, необратимы, к тому же часто нелегко обнаружить записи, измененные ошибочным запросом.
7. Сохраните запрос, дав ему имя Запрос на обновление, и закройте. В списке запросов появился запрос с другим значком (рис. 7.35). Восклицательный знак в значке означает запрос изменения, а карандашик — тип запроса — обновление. Ш Библиотека Данные : база данных (формат Access 2BOO]
1Р !у ?Ыяи1й»гИ$ ^У £р
Создание запроса в режиме конструктора Создание запроса с помощью мастера Задерживающие ^ниги
Издания&Двторы Отчеты
"J
1
Книги по авторам Количество изданий по разделам Образец Фильтра по Форме Поступления за период Средние сроки наличия книг на руках
Рис. 7.35. Запрос обновления в окне базы данных Раскройте список таблиц в окне базы данных и откройте таблицу Издания. Убедитесь, что у записей, имеющих значение в поле Д а т а П о к у п к и меньше 01.01.1999, флажок Списано установлен (рис. 7.36).
208
Занятие 7. Анализ и изменение данных с помошью запросов
.жесткая, суперобложка мягкая Жесткий .жесткая, а сверху мягкая жесткая жесткая жесткая жесткая жесткая жесткая
t*j
Н
1405.1998 '28.051998 "21.09.199В '21.09.1999 11.09.199В; 21.09.1999! 28.03.2000: 15.12.1999; 15.09.2000' 20.09.1999
Г -• i/ij !*!>':- 1!
620 550 430 80 630 356 592 556
книга книга книга книга книга книга книга книга
^В сборник включены 1333 четверо Российская энциклопедия для па( ; Швейцарский философ иссладуэт-
... .й„ ..
D К семантике садрер:парковы* сти Библиотека славянской литератур1 •Личная библиотека Борхеса
ш
,П
•
П О " D
.11
Рис. 7.36. Результат запроса обновления записей 9. Закройте таблицу Издания.
Запрос создания новой таблицы В следующем упражнении мы должны скопировать записи о книгах, которые пометили как списанные, в другую таблицу, чтобы не удалять их совсем. Однако такую таблицу нужно еще создать, и сделать это можно также с помощью запроса, При этом необходимо выполнить те же три шага: • создать запрос выборки; • преобразовать запрос выборки в запрос изменения, задав место размещения новой таблицы; • выполнить запрос изменения, тем самым поместив отобранные записи в новую таблицу. ЗАДАНИЕ Создайте самостоятельно запрос выборки. Для этого можно слегка изменить уже имеющийся запрос Книги по авторам. Откройте его в режиме конструктора и добавьте в бланк запроса ряд полей. Первым должно идти поле КодИздания из таблицы Издания. После поля Название должны идти все остальные поля таблицы Издания, кроме КодМеста, которое нас теперь не интересует. Обязательно включите поле Списано, так как именно по нему нужно отбирать записи. Введите условие отбора и выполните запрос, чтобы убедиться, что действительно отбираются записи с пометкой Списано. Снимите для поля Списано флажок Вывод на экран (Show) и командой Файл > Сохранить как (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д.- | ,<£.;•!>_-<-* к ..c>'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 «,. •>:•
Код Издания Издания
: ЦВбсв .;; <И
Кед Издания
Раэдег Раздегы по возрастанию Раздег
-
..
— — -"'" " •' • "- ' — ш- ^^ =- — *' Автор [Фамипи Название ГодИздания К.одИздатепьсиз 73 Издания Издания Издания по возрастанию .VАвтор Название ГодИздания КодИздатепьс1;з
:
LS iLlliMMMMj
^
Рис. 7.48. Запрос добавления
Нажмите кнопку Запуск (Run), чтобы выполнить запрос. Прежде чем новые записи будут добавлены в таблицу, появляется сообщение о числе добавляющихся записей. Записи будут добавлены только после нажатия кнопки Да (Yes). Если нажать кнопку Нет (No), вставка записей будет отменена. Из таблицы Издания записи при этом удалены не будут. Вы можете в этом убедиться, открыв ее.
216
Занятие 7. Анализ и изменение данных с помошью запросов
Сохраните запрос, выполнив команду Файл > Сохранить как (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 п;>кбаие
•
Рис, 8.18. Определение значении переключателей
Изберите тип }"лементае управления:
**
__j
:
п$рек 155*4этеш .
ЬЫ! Г
'•" £Л"шленний f nfiKiuHfi^
•
f
с ге-1*к>
Г"
" Оттеиа
Рис. 8.19. Определение типа элемента управления и способа оформления
5. Выберем тип элемента управления (по умолчанию мастер предлагает использовать Переключатель) и оформление элементов управления. Элементы управления предназначены именно для улучшения внешнего вида формы, и есть несколько типов оформления. Вы можете попробовать все виды и посмот-
236
Занятие 8. Знакомство с формами и элементами управления
реть на образце слева, как они могут выглядеть. Выберите понравившийся вариант и перейдите к следующему шагу. 6. Остается только определить имя группы — Тип оплаты, и группа готова. Нажмите кнопку Готово (Finish) (рис. 8,20). На форме появилась группа с тремя переключателями. Группа выделена, обратите внимание на ее свойства. Создание грчппы переключателей Введите подпись длягруплш леег<лючагепей: |Тип оплаты] Ун«- * и-. |с| В ua-.xsWj необходимей- ддч со.;,д^ми«
атрзфс^ rip вветрайге группы
'. -
: .
' -
Отмена-
< Назад
Готово -• |
..
Рис. 8.20. Определение подписи
7, В окне Свойства (Properties) раскройте вкладку Все (AIL). Имя группы установлено стандартным (рис. 8.21). Его лучше изменить, чтобы оно совпадало с именем поля таблицы, с которым связана эта группа. Введите значение свойства Имя (Name): ТипОплаты. Свойство Значение по у м о л ч а н и ю (Default Value) имеет значение 1. Свойство Д а н н ы е (Control Source) сейчас пусто. В реальных формах оно должно содержать имя поля, которое связано с данной группой. gT Грдпги: Группа13 » Типопп<1гы. '"'
RJM'lr oiU
jagjrpynnai; Да«=1е | События I Другие Е , , TpynnalS
ppj Щйзгзгаад ^r4- 'iMrtss .:..,,, fl
" ftapTt*:
Рис. 8.21. Свойства группы
Щелчком (не на подписи) выберите первый элемент управления в группе. В окне Свойства отобразятся сиопства этого элемента. Откройте вкладку Данные.
Режим конструктора форм
237
Первое свойство на этой вкладке — З н а ч е н и е параметра (Option Value), в данном случае равное 1. Обратите внимание, что на этой вкладке отсутствует свойство Д а н н ы е (Control Source), в котором для присоединенных элементов управления указывается имя поля в базовой таблице или запросе, связанном с данным элементом управления. Значит, элемент выбора не связан с полем в таблице, с ним связана сама группа. Свойство Значение параметра для каждого элемента управления в группе должно быть задано обязательно, оно должно быть целым числом, и каждый элемент управления должен иметь свое значение. В нашем примере заданы следующие значения свойства З н а ч е н и е параметра: 1 — н а л и ч н ы е . 2 — б е з н а л и ч н ы е , 3 — бартер. Когда пользователь выбирает переключатель в группе, значение элемента управления Группа переключателей (Option Group) становится равным значению параметра выбранного переключателя. Оно сохранится в поле таблицы, которое указано в качестве источника данных для группы (см. свойства Данные (Control Source) группы на рис. 8.21). Если пользователь не выбрал ни один из элементов управления, входящих в группу, и не задано значение по умолчанию для группы, то значением группы будет Null. Чтобы выбрать в режиме конструктора формы элемент управления Группа переключателей (Option Group), а не элемент управления в группе, нужно щелкнуть на рамке группы. В окне Свойства при этом снова будут отображаться свойства группы. Можно произвольно переместить элементы управления в группе, например, разместить все переключатели в одну линию по горизонтали или расположить подписи под переключателями. Как перемещать элементы управления и их подписи, мы узнаем в конце данного урока. Элемент управления Список
_______
Элемент управления Список (List Box) представляет собой один из вариантов перечня возможных значений для поля базовой таблицы или запроса. Пользователь может выбрать в этом списке одно или несколько значений. Этот элемент управления используется, если список значений невелик, так как он должен помещаться в ограниченную область формы. Если же значений много лучше использовать другой элемент управления — Поле со списком (Combo Box) который в свернутом виде занимает на экране столько же места, сколько обычное текстовое поле. Примеры списка и поля со списком показаны в форме на рис. 8.22. Список может состоять из одного или нескольких столбцов. При этом в связанном поле таблицы будет запоминаться только значение выбранной строки и одного из столбцов — любого, который вы определите. Иногда Список (List Box) используется для отображения данных в виде таблицы, содержащей несколько столбцов. В этом случае он является свободным и служит именно для отображения данных, а не для выбора. Можно создать функцию, которая будет вызываться, когда пользователь выделяет строку EI таком списке. Эта функция может обрабатывать данные из выделен ной строки, но непосредственно данные в списке редактироваться не могут.
238
Занятие 8. Знакомство с формами и элементами управления Ш Список и Поле со списком : Форма Книга Журнал Газета Альбом
невский курьер|
Рис. 8.22. Элементы управления Список и Поле со списком
Как и у любого элемента управления, внешний вид и содержимое списка определяются его свойствами, которые можно задать либо вручную, либо с помощью мастера при размещении списка в форме. Мастер, запросив нужную информацию, определит большую часть свойств. Свойства списка представлены на рис. 8.23. Поскольку на последующих занятиях мы будем создавать много списков и полей со списками, мы не будем сейчас рассматривать работу мастера, а остановимся на важнейших свойствах этого элемента управления. •ГСписок: ТипИэдания ТипИздания '-] .'-Дшные ] События
т| Другие -/
Тип--«точима с грек, , Wr.Tr.4HiH- строк
Все ; |
ОСписок значении У" Книга"; "Ж ур нал"; "Г а зе т а";" А пьбо м" ' 2,54см
] ___ Нет "'
..
Режим пред У-слоеяе из
Не
Тгй -г сгрда.м Ш'Л оч«н йь»од ма SKE^H . , . ,
Рис. 8.23. Свойства элемента управления Список
1. Свойство Имя (Name) — название данного элемента управления. Это имя используется во всех ссылках на этот элемент управления в программах и макросах, поэтому не ленитесь и дайте ему значащее понятное имя. 2. Свойство Д а н н ы е (ControlSource) — имя поля в базовой таблице или запросе, которое будет содержать значение, выбранное в списке. (Если список является
Режим конструктора форм
2л 9
свободным, то есть не должен быть связан с полем в таблице, свойство Данн ы е остается пустым.) 3. Два следующих свойства, Тип и с т о ч н и к а строк (Row Source Type) и Источник строк (Row Source) определяют источник данных для списка. Например, в элементе управления ТипИздания типом источника строк является Список знамений (Value List). Этот список задается в свойстве Источник строк (Row Source). Элементами списка являются символьные строки, а разделителями являются символы точка с запятой (;). Длина списка ограничена максимальной длиной строки списка 2048 символов. Другие типы источников строк будут описаны чуть позже. 4. Свойство Число столбце в'(Column Count) определяет число столбцов в списке. В данном примере его значение 1. 5. Свойства З а г л а в и я столбцов (Column Heads) и Ш и р и н а столбцов (Column Width) определяют, будут ли выводиться на экран заголовки столбцов списка и какова ширина столбцов. Заглавия столбцов обычно выводятся, если список состоит из нескольких столбцов. Если значение свойства З а г л а в и я столбцов равно Да и источником данных является Список з н а ч е н и й , то в начале перечня значений списка нужно предусмотреть и заголовки столбцов. Например, список Комната;
Шкаф;
545:1:545;2;546;1;54б;2;54б;3
будет состоять из двух столбцов, которые имеют заголовки Комната и Шкаф. В первом столбце будет отображаться номер комнаты, а во втором — номер шкафа. Свойство Ш и р и н а столбцов (Column W i d t h ) в данном примере должно иметь значение 2. Если список состоит из нескольких столбцов и общая ширина этих столбцов превышает ширину области отображения списка, столбцы будут отсечены справа, и появится горизонтальная полоса прокрутки. 6. Свойство П р и с о е д и н е н н ы й столбец (Bound Column) показывает номер столбца списка, значение которого будет сохраняться в поле базовой таблицы. Если это свойство установить равным 0, значением элемента Список (List Box) станет не значение, а индекс (порядковый номер) выбранного элемента в списке. Кроме Списка з н а ч е н и й (Value List), существуют еще три типа источника строк для элемента управления Список (List Box). I. Таблица или запрос. Список часто используется для ввода данных в такое поле таблицы, значения которого ограничиваются списком значений из справочника, то есть другой таблицы. Например, то же поле ТипИздания можно было определить иначе — считать его числовым и внешним ключом к таб-ii ице-справочнику Т и п И з д а н и я . Справочник Т и п И з д а н и я содержит четыре записи с теми же значениями, что и приведенный выше список, и кодами 1, 2, :i и 4 соответственно. Тогда свойства элемента управления Т и п И з д а н и л могли бы иметь значения, представленные на рис. 8.24. Значением свойства Т и п источн и к а строк (Row Source Type) является Таблица или запрос (Table/Query), а значением свойства И с т о ч н и к строк ( R o w Source) — инструкция SQL SELECT [Тип-
240
Занятие 8. Знакомство с формами и элементами управления
Издания].[Код], [ТипИздания].[Название] FROM [ТипИздания]. Свойство Число столбцов (Column Count) имеет значение 2, значит, в списке будет два столбца (в инструкции SELECT выбираются два поля), однако свойство Ш и р и н а столбцов (Column W i d t h ) определяет ширину первого столбца 0, поэтому он не будет виден на экране. Тем не менее, именно первый столбец является присоединенным к полю таблицы, вследствие чего выбранное значение кода будет записываться в базовую таблицу формы. Это указывается в свойстве Присоед и н е н н ы й столбец (Bound Column). Это поле создано с помощью мастера, но вместо инструкции SQL в данном случае можно было бы просто указать имя таблицы ТипИздания. Список, базирующийся на таблице или сохраненном запросе, будет работать быстрее, чем список, у которого источник строк задан в виде инструкции SQL. Поесть и минус в использовании в качестве значения Источник строк имени таблицы: если структура таблицы изменится, список может перестать работать из-за смещения столбцов. Поэтому оптимальным вариантом является использование сохраненного запроса (Query). fcfe Список: ТипИздзвмя
событии
другие
&<••:-•-
Г ТппИздания.КодТипа, .ТипИзд^ 2
•,ji », ;. ;-Нет контроля М.:т ема влечение,
. ^iu
Т...КС1 '-ГрСКП „ОГТОЙИКЯ .
Вывод на э-;рак Ре*ии вывода
,
д.;п:г;ги.,...:.":.,,,. Бловдровка
Да .Нет
Перевод по таЬ,,
ш
Рис. 8.24. Свойства элемента управления Список
Еще два типа источника строк используются реже, но, тем не менее, знать о них полезно. 2. Список полей. Этот тип источника строк предназначен для вывода в списке имен полей таблицы или запроса. Б этом случае значение свойства Тип источн и к а строк (RowSource Type) нужно установить равным значению Список полей
Режим конструктора форм
241
(Field List), а значение свойства Источник строк (Row Source) — значению имени таблицы или запроса. Имена полей будут выводиться в списке в том порядке, в котором они перечисляются в таблице или запросе. 3. Определяемая пользователем функция. Список может быть заполнен программным путем с помощью некоторой функции, написанной на языке VBA. Имя этой функции указывается в качестве значения свойства Тип источника строк (Row Source Type). Свойство Источник строк (Row Source) при этом должно остаться пустым. Элемент управления Список (List Box) позволяет выбрать сразу несколько значений. Такая возможность требуется довольно часто, скажем, когда задаются критерии отбора записей. Например, нужно выдать читателю сразу несколько книг. Имеет смысл дать пользователю возможность выбрать сразу все нужные книги, а потом выполнить операцию выдачи, то есть один раз указать, кому, когда и на какой срок они выдаются. Чтобы указать возможность выбора сразу нескольких значений списка, нужно изменить значение свойства Несвязное выделение (MuLtiSelect). Его можно найти на вкладке Другие (Other) или Все (АИ) окна Свойства (Properties). По умолчанию это свойство имеет значение Отсутствует (None), и в этом случае разрешается выбрать только один элемент списка. Но если вы измените его на Простой (Simple), пользователю разрешается множественный выбор просто щелчком на нужных элементах списка, а если на Со связным выбором (Extended), будет разрешено использование клавиш Shift и Ctrl для выделения смежных и несмежных элементов, как почти во всех списках Windows. Результаты выбора хранятся в специальном массиве и могут быть использованы для обработки программами VBA. Элемент управления Поле со списком Элемент управления Поле со списком (Combo Box) очень похож на Список (List Box). Применяется он в формах с той же самой целью, чтобы значение поля в таблице не вводилось вручную, а выбиралось в заданном списке значений. Но существует четыре различия между этими элементами управления: • поскольку элемент управления Поле со списком (Combo Box) является сочетанием двух элементов — Поле и Список, — он позволяет не только выбирать значение в списке, но и вводить его прямо в поле ввода, но эту возможность можно и запретить; • Поле со списком не накладывает таких ограничений на длину списка, как Список (List Box), так как в нем отображается только текущее значение, а остальные значения выводятся, когда пользователь щелкает на стрелке с правой стороны поля1; • Поле со списком позволяет выбрать в списке только один элемент, а Список (List Box), как было уже показано, несколько; •<
Другое название такого элемента — раскрывающийся список.
242
Замятие 8. Знакомство с формами и элементами управления
• оба элемента допускают возможность поиска нужного значения в списке, однако выполняется этот поиск по-разному. При работе со списком, если фокус находится в списке и пользователь вводит с клавиатуры какой-нибудь символ, то ищется первый элемент списка, который начинается с этого символа. При вводе следующего символа снова ищется элемент списка, у которого этот символ является первым. При работе с полем со списком, если пользователь вводит символ, будет происходить поиск элемента списка, начинающегося с этого символа, Когда пользователь введет второй символ, будет происходить поиск элемента, который начинается с двух введенных символов, — и так далее. Основные свойства элемента управления Поле со списком такие же, как и у элемента Список. Однако у него есть дополнительные свойства, которые определяют формат вывода данных в текстовую часть поля: Формат поля (Format), Число десятичных знаков (Decimal Places) и Маска ввода (Input Mask). И еще два свойства, которых нет у элемента управления Слисок, и которые связаны с возможностью ввода данных в текстовую часть поля со списком: • О г р а н и ч и т ь с я списком (Limit ToList). Если это свойство имеет значение Да, пользователь не сможет ввести в поле значение, не содержащееся и списке, — Access выдаст сообщение об ошибке. Если это свойство имеет значение Нет, список может дополняться значениями, которые пользователь вводит в текстовую часть ноля со списком. • Автоподстановка (AutoExpand). По умолчанию это свойство имеет значение Да, что обеспечивает удобный выбор в списке. Можно просто вводить нужные символы в текстовую часть поля, и Access автоматически подставит в поле то значение списка, у которого первые символы совпадают с введенными. Эту функцию можно отключить — но зачем... Обычно поле со списком используется для тех полей базовой таблицы, значениями которых являются внешние ключи,то есть первичные ключи записей в связанной таблице. Такие поля в таблице определяют как поля подстановок. В этом случае мастер форм при создании формы автоматически создаст для таких полей элементы управления Поле со списком и задаст их свойства. При отображении их в формах или таблицах выводится информация, понятная пользователю, например, фамилия сотрудника, а в связанном поле таблицы запоминается не само это значение, а ключ (идентификатор сотрудника). Поэтому поле в таблице будет иметь тип данных Числовой (Integer или Long integer), хотя отображаться в поле будут текстовые данные. Об этом нужно всегда помнить.
Если в режиме конструктора вы хотите создать элемент управления Поле со списком для поля таблицы, содержащего подстановку, лучше делать это путем перетаскивания поля из окна Список полей (Field List), так как в этом случае все свойства элемента будут заданы автоматически.
243 А КОИ
____---~-^~
, располагают-
Э , , ^ ^ ^
ер
'
Т1Я
Но и Дстъге
шагу-
„«л Button) И
яо^7г-*рор ок к ^*РУ г:т' ' °-
выб
'мо*»ъ ът0(„е«>- Ч*°-
е
Ра
'vn lecture} /: " " "иказагьвг*
Sg?fg§iPHS=S5= 1
ss—isr::^^ ВД
^ » flbSL 3°Р Св^о^е^РИСун0^ «з люлп
Обра5
м а
с
ец
Режим конструктора форм
Рис. 8.27. Свойства элемента управления Кнопка
Если вы хотите заменить рисунок, щелкните на кнопке построителя справа от свойства Рисунок и в окне, аналогичном тому, что предлагал мастер, выберите другой рисунок. Если появится желание заменить рисунок надписью, удалите значение свойства Рисунок, тогда на кнопке вместо рисунка появится -надпись, заданная свойством Подпись (Caption), в нашем примере Кнопка. Можно сделать кнопку прозрачной, установив ее свойство Прозрачный (Transparent). Такая кнопка невидима для пользователя, однако она является активной. Это позволяет получить интересные визуальные эффекты. Например, если поместить ее поверх какого-нибудь графического изображения, то при щелчке мышью на этом изображении кнопка будет срабатывать и будут выполняться нужные действия. Так можно, например, создать и оживить карту или какую-то схему. Существуют свойства элемента управления Кнопка, которые позволяют сделать его невидимым или недоступным. Это свойства Вывод на экран (Visible) и Доступ (Enabled). Когда кнопка недоступна (свойство Доступ (Enabled) имеет значение Нет (No)), она видима, но нажать ее нельзя — говорят, что на нее невозможно установить фокус. Такая кнопка визуально отличается от обычной кнопки (обратите внимание на кнопку Выбрать на рис. 8.28). Эти свойства обычно устанавливаются при проектировании формы, а потом изменяются динамически с по1 мощью макроса или программы VBA . Еще одно свойство, на которое хотелось бы обратить внимание, это Режим вывода (DisplayWhen). По умолчанию это свойство имеет значение Всегда (Always). Однако вы можете изменить его на Только на экран (Screen Only). Тогда при печати формы кнопки печататься не будут — они там и не нужны. Эти свойства есть и у других элементов управления. И они также могут динамически изменяться в зависимости от условий.
246
Занятие 8. Знакомство с формами и элементами управления
Читатель
Издание Д-ara возврата
18.07.2003
Сохранить
Рис. 8.28. Лостулные и недоступные кнопки на форме
Кнопки удобно использовать при работе с мышью, щелчком «нажимая» их. Но обычно в форме требуется и способ выполнения действия, связанного с кнопкой, с клавиатуры. Для этого используют клавиши доступа. Кнопке назначается некоторая буква, при нажатии на клавиатуре комбинации клавиш А(1+<буква> имитируется «нажатие* соответствующей кнопки. 1. Удалите рисунок с кнопки, которую вы создали. 2, Измените значение свойства Подпись (Caption). Для этого введите слово &Печать. Знаком амперсанд (&) мы пометили букву Л. Эта буква при отображении кнопки на форме будет подчеркнута (рис. 8.29). Теперь чтобы выбрать кнопку, достаточно нажать Alt+П).
Макет Имя Подпись,,, Рисунок Тип рисунка По умолчанию, .
Собьп-ид j •-. , - i". , ; ."!. Кнопка . , +,,,г&Лечагь .Внедренный^ Нет Не г
Рнс. 8.29. Назначение кнопке клавиши лоступа Мастер кнопок в результате создает не только сам элемент управления на форме, но и процедуры, которые будут выполнять выбранные вами стандартные действия. Знакомство с текстами этих процедур может быть прекрасным начальным уроком для освоения программирования на VBA, которое значительно расширит ваши возможности по созданию приложений Access.
Режим конструктора форм
i47
Элементы управления Свободная рамка объекта и Присоединенная рамка объекта ___ Существует несколько элементов упраслсния, которые позволяют разместит!. в форме объекты, созданные в других приложениях: документ Word, таблицу Excel или рисунок. К таким элементам управления относятся Свободная рамка объекта ( U n b o u n d Object Frame) и Присоединенная рамка объекта (Bound Object Frame). Свободная рамка объекта содержит объекты, которые хранятся либо в самой форме, либо во внешнем файле, и независимо от того, какая запись отображается в форме, объект будет отображаться один и тот же. Этот объект может быть изменен прямо из формы с помощью того приложения, в котором он был создан. Присоединенная рамка объекта содержит объекты, которые либо сами хранятся в таблице Access в поле, имеющем тип данных Поле объекта OLE (OLE Object), либо в таблице хранятся ссылки на эти объекты. Поэтому присоединенная рамка объекта имеет в качестве источника данных поле в базовой таблице, и при переходе от записи к записи объект в присоединенной рамке будет изменяться. Типичный пример такого элемента управления — поле Фотография таблицы Авторы в нашем приложении. Вставим рисунок из файла в свободную рамку объекта на форме. 1. Щелкните на панели элементов на кнопке Свободная р а м к а объекта ( U n b o u n d Object Frame) Затем перетащите этот элемент на левую границу формы. Запустится мастер, и появится диалоговое окно, л котором нужно определить тот объект, который будет представлен элементом Свободная р а м к а объекта. Можно выбрать тип объекта, создать этот объект и далее по указаниям мастера вписать его в рамку объекта (рис. 8.30). А можно указать файл, содержащий нужный объект, и связать его с элементом управления Свободная рамка объекта. Мы будем вставлять рисунок из файла.
'
•' • л Г) >• Щфа
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 виде з«а-«<з
Реэуяьтдт '
Рис. 8.31. Создание элемента управления Свободная рамка объекта из файла
~— Финикийские ко.чонии около 550 доп.
кглч '.I.L
Фрагмент •••, Фотография Microsoft Photo Editor 3.0 , , , . . . " , , " " Двойным нажатием кнопки , ф 4 •> :i • :- Содержимое , , . , , . , , . Автоматическое 8; Связанны и |Все"
Л 20 :" h06J irj !^нГт ИВсегда
Рис, 8.32. Свойства элемента управления Свободная рамка объекта
Режим конструктора форм
249
Обратите внимание на флажок Связь (Link). Если установить этот флажок, объект, в данном случае рисунок, не будет внедряться, то есть сохраняться в форме. В форме будет сохранен только путь к этому файлу, который сейчас отображается в поле Файл (File). Это очень удобно, если объекты, которые встраиваются в форму, будут часто меняться. Зато если файл, содержащий объект, переместить в другую папку, Access не сможет его найти и отобразить в нужном месте. Если флажок не устанавливать, копия объекта из указанного файла будет содержаться в форме, поэтому он будет всегда доступен. 4. Установите флажок и нажмите кнопку ОК. На форме появится прямоугольная область с выбранным рисунком. Посмотрите свойства этого элемента управления (рис. 8.32). Свойство Тип OLE (OLE Type) имеет значение Связанный (Linked). Свойство Документ-источник (Source Doc) — путь к файлу, содержащему рисунок. Свойство Параметры обновления (Update Options) имеет значение Автоматическое. Значит, при каждом открытии формы будет проверяться связь с указанным файлом, и рисунок в рамке будет обновляться, если был изменен файл, Изменить рисунок можно прямо из формы в режиме конструктора. Свойство Автоматический запуск имеет по умолчанию значение Д в о й н ы м нажатием кнопки. 5. Щелкните дважды на рисунке. Должно открыться приложение, которое на вашем компьютере используется для создания и редактирования рисунка, например, Microsoft Photo Editor. 6. Измените рисунок, например, вырезав из него какой-то фрагмент, и выйдите из графического редактора, выполнив команду Файл > Закрыть. Рисунок в рамке обновится. Поместив такую карту на форму, можно оживить ее, разместив поверх нее прозрачные кнопки, тогда при щелчке на надписи на карте будут открываться формы, в которых можно выводить данные о соответствующем населенном пункте, острове, реке и т. д, С другим элементом П р и с о е д и н е н н а я рамка объекта (Bound Object Frame) мы познакомимся подробнее при создании формы Автор, в которой мы разместим фотографии авторов. Элемент управления Рисунок Элемент управления Рисунок (Image) тоже используется для вставки в форму графических файлов. Он очень близок по своему назначению и свойствам к элементу Свободная рамка объекта ( U n b o u n d Object Frame), но требует меньше системных ресурсов и работает быстрее. Но элемент Свободная р а м к а объекта может отображать самые разные типы объектов (не только рисунки): таблицы Excel, документы Word и ряд других. Форматы графических файлов, которые поддерживаются программой Access, разнообразны — это растровые рисунки, мета-
250
Занятие 8. Знакомство с формами и элементами управления
файлы, снимки я др. Мы узнаем, как использовать этот элемент управления, на Занятии 11, когда будем создавать логотип в отчете. Элемент управления Разрыв страницы
Иногда в форме требуется вывести такое большое количество полей, что они но могут поместиться в пределах одного экрана. Тогда делают многостраничную форму, то есть разбивают форму на несколько страниц. Иначе придется выполнять прокрутку длинной формы на экране, что, конечно, неудобно. Разделение на страницы может выполняться двумя способами. Один из них — это использование элемента управления Р а з р ы в с т р а н и ц ы (PageBreak). Этот элемент отображается на форме в режиме конструктора и виде пяти горизонтально расположенных точек у левого ее края и разделяет страницы. При работе с формой пользователь может перемещаться по страницам формы клавишами PgUp и PgDn. Этот элемент управления существовал еще в первых версиях Access и сейчас уже является архаичным. Для работы с формами с большим количеством полей гораздо удобнее другой элемент управления — Вкладка (Tab Control). Элемент управления Вкладка
____^_
Элемент управления Вкладка (Tab Control) позволяет создать форму с вкладками, как в уже знакомых вам формах Windows. Форма с вкладками представляет собой контейнер, содержащий определенное количество элементов управления — Вкладок (Pages). Все остальные элементы управления размещаются на этих страницах. В каждый момент времени отображается только одна вкладка. Переключение между ними выполняется с помощью ярлычков или кнопок, которые размещаются в верхней части вкладки. Когда пользователь щелкает на ярлычке, вкладка с этим ярлычком выводится на передний план, а остальные вкладки скрываются. На рис. 8.33 показано, как выглядит форма с набором вкладок, и свойства этого элемента управления. Ш В кладки : форма
M5KST
• . •
Имя i.,, « >:ir'>.fi rocToiMi-i.-j '.'h.(>-|.- l-fl'Tf.-;:! • • '--'.ч. •.,-«: i . . . . Доступ '>'•>- .ид re Tab .S-i.1.ft'. ..-I..- i.VjIlO 1\чЬ
TabQIO .... ...
• i. i.iu >; i s OTi Высота Тип-Фона " i . . . " . . Не.;гопвк& zr(iW. - Стиль i , , Оысотадрпь1чка".
,,'1 Всегда -Да ,!•. О ?Р.1?9см Е^бси ' |9^С21см п |б,рПт " 'Обычный :
:Нет
. ЯрЯЬ1ЧКИ
i Рис. 8.33. Элемент управления Вкладка и его свойства
Режим конструктора форм
251
1. Перетащите на форму с панели элементов элемент управления Вкладка (Tab Control) ГЦ. По умолчанию сразу будет создан набор, состоящий из двух вкладок: Вкладка! и Вкладка2. Нужно уметь выделять весь набор и отдельную вкладку, чтобы устанавливать их свойства. Чтобы выделить весь набор, нужно щелкнуть на любой из границ вкладки. Если щелкнуть па ярлыке, будет выделена соответствующая вкладка. По умолчанию выделен набор вкладок, и в заголовке окна свойств отображается Набор вкладок (Tab Controls). Свойство Стиль (Style) определяет, что будет использоваться для переключения между страницами: Я р л ы ч к и (Tabs) или Кнопки (Buttons). Чаще используют ярлычки, на которых могут размещаться как надписи, так и рисунки, а также надписи и рисунки вместе. 2. Щелкните на ярлычке первой «кладки. В окне свойств появится заголовок Вкладка и свойства именно этой вкладки. По умолчанию свойство Рисунок (Picture) имеет значение отсутствует (None). Рисунок размещается на ярлычке так же, как и на элементе управления Кнопка (Command Button). 3. Щелкните на кнопке построителя рядом со свойством Рисунок. В диалоговом окне (рис. 8.34) выберите подходящий рисунок и нажмите кнопку ОК, Рисунок будет размещен на кнопке перед надписью. Ш Рисунки ВыбермГа рИсуийКИЙПий?в:илннанЦ|1Те егойа диекда.
MS Ехсе MS FoxPro MS Project MS Schedule + MS Word SQL Автоотчет
Рис. 8.34. Выбор рисунка для ярлычка вкладки
Надпись на ярлычке определяется значением свойства Подпись (Caption). Как ни странно, чтобы разместить на ярлычке один рисунок, нужно обязательно ввести в свойство Подпись хотя бы один пробел. В противном случае выводится стандартный текст — Вкладка! (Pagel). 4. Выделите снова весь набор вкладок. Если требуется много вкладок, можно расположить их в несколько рядов, для чего нужно присвоить свойству Н е с к о л ь к о строк (MultiRow) значение Да (Yes).
252
Занятие 8. Знакомство с формами и элементами управления
Иногда ярлычки вкладок скрывают, для чего свойству Стиль (Style) для набора вкладок устанавливают значение отсутствует (None). Б этом случае переключение вкладок выполняется программно, пользователь видит только разные группы полей, выводимые в одной и той же форме. По такому принципу строятся все мастера. В набор вкладок можно легко добавлять новые вкладки и удалять уже существующие. 5. Сейчас у вас выделен весь набор вкладок. Выполните команду главного меню Access Вставка > Вкладка (Insert > Page). Новая вкладка вставляется последней. 6. Чтобы удалить вкладку из набора, выделите любую вкладку, щелкнув на ее ярлычке, и в контекстном меню выберите команду Удалить вкладку (Delete Page) либо выполните команду главного меню П р а в к а > У д а л и т ь ( E d i t » Delete Table). Порядок вкладок в наборе легко меняется. 7. Щелкните правой кнопкой м ы ш и и выберите в контекстном меню команду Последовательность вкладок (Page Order). Появится диалоговое окно со списком вкладок. Порядок страниц [Ззрядок страниц
ЕайшййЯ Контакты Дела
Рис. 8.35. Изменение порядка следования вкладок
8. С помощью кнопок Вверх (Move Up) и Вниз (Move Down) переместите вкладки в нужном порядке. Затем нажмите кнопку ОК. Ярлычки вкладок будут перемещены. Элемент управления Подчиненная форма/отчет Элемент управления П о д ч и н е н н а я форма/отчет (Subform/Subreport) используется как в формах, так и в отчетах и позволяет создавать составные формы и отчеты. Форма, которая включает данный элемент управления, называется главной формой. Обычно такие формы используются для одновременного отображения на экране записей из таблиц, связанных отношением «один-ко-многим». В главной форме отображается запись из таблицы «один», а в подчиненной форме — множество связанных с ней записей из таблицы «многие». Такое решение позволяет легко справиться с проблемой синхронизации данных, отображаемых в
Режим конструктора форм
253
двух формах. Связь главной и подчиненной форм осуществляется с помощью свойств Основные поля (LinkMasterFieLds) и Подчиненные поля (LinkCriildFields) элемента управления П о д ч и н е н н а я форма/отчет. Другой вариант использования элемента управления Подчиненная форма/отчет состоит в следующем: в главной форме размещаются свободные элементы управления, которые позволяют задать критерии фильтрации записей, отображаемых в подчиненной форме. И, конечно, можно создать форму, в которой будут отображаться несколько подчиненных форм, не связанных друг с другом и с главной формой (в этом случае значения свойств Основные поля (LinkMasterFields) и П о д ч и н е н н ы е поля (LinkChildFields) для подчиненной формы не заполняются). Главная форма при этом будет представлять собой контейнер, который содержит подчиненные формы. Для создания составных форм в Access есть несколько мастеров, которые быстро создадут нужные формы и при правильном именовании связанных полей главной и подчиненной таблиц автоматически свяжут главную и подчиненную формы. Мы будем использовать этот элемент управления на следующих занятиях при создании форм нашего приложения и там же рассмотрим подробнее свойства этого элемента управления. Чтобы упростить себе задачу создания форм, рекомендуется связанным полям в главной и подчиненной таблицах давать одинаковые названия. Однако если подчиненная форма уже существует и ее нужно только внедрить в главную форму, то самый простой способ — перетащить подчиненную форму из окна базы данных Access в область данных главной формы, открытой в режиме конструктора. И опять-таки, если эти формы должны быть связаны и соблюдается правило о названиях связанных пол ей, то связь между главной и подчиненной формой устанавливается автоматически.
Элементы управления Линия и Прямоугольник Кроме рисунков, которые, как уже рассказывалось ранее, могут быть помещены в форму, существует еще два элемента управления, которые не связаны с данными и используются только для оформления формы. Это Л и н и я (Line) и Прям о у г о л ь н и к (Rectangle). Обычно они используются для группировки логически связанных полей. На рис. 8.36 представлены примеры оформления формы с применением элементов управления Л и н и я и П р я м о у г о л ь н и к . Несколько свойств, одинаковых для обоих элементов управления, отвечают за цвет и стиль линии и окантовки прямоугольника. Это свойства Цвет г р а н и цы (Border Color), Тип границы (Border Style), О ф о р м л е н и е (Special Effect). У прямоугольника есть еще два свойства: Цвет фона (Back Color) и Т и п фона (Back Style).
254
Занятие 8. Знакомство с формами и элементами управления
НИ Издания: Form
Название: {"Утешение философией" и другие TPQK. аты
Заметки В книгу включены важнейшие философские произе.едения по зц не римского мыспителя Аниция Манлия Торквата Северина Боэция (ок.480-525 гг.]. "Комментарий к ПорФирню" и теологические трактаты в переводе на русский язык переводятся впервые. В трактате "Утешение Философией" Боэций отстаивает свободу повеческого духа Исключительную ропь Е. с а мс совершенствовании человека он
Рис. 8.36. Оформление формы с помошью линии и прямоугольников Существует восемь значений свойства Тип границы (Border Style) — отсутствует, сплошная, штриховая, пунктирная, точечная, редкоточечная, штрих-пунктирная и штрих-точечная — и шесть значении свойства Оформление (Special Effect): обычное, приподнятое, утопленное, вдавленное, с тенью и рельефное. Цвет границы и цвет фона задаются с помощью построителя палитры, который позволяет выбрать один из 64 предложенных цветов или создать собственный цвет. Палитра отображается при нажатии кнопки построителя справа от соответствующих свойств. Свойство Тип фона (Back Style) для прямоугольника имеет два значения: • Прозрачный, при котором цвет фона прямоугольника совпадает с цветом фона раздела формы, и все элементы, лежащие под ним, видны. В примере на рис. 8.36 такой прямоугольник отображается слева. • Н о р м а л ь н ы й , при котором м о ж н о задать цвет фона, по тогда элементы управления, которые размещаются внутри прямоугольника, должны быть помещены поверх него. Для этого нужно выделить все эти элементы управления и выполнить команду Формат * На п е р е д н и й п л а н (Format ^ B r i n g to Front) или, наоборот, выделить прямоугольник и выполнить команду Формат f На з а д н и й п л а н (Format > Send to Back).
Создание первой формы После того, как вы познакомились с элементами управления и их свойствами, начнем создавать формы нашего приложения Библиотека. Первая форма, которую
Создание первой формы
255
Год смерти МК'СО.З-Д--ЯИЯ ркола е Раее
Позднеантичный ученьй и философ, "последний римлянин"
"Утешение философией" и другие трактаты •:2.г! •> ш •&•'-;•
Рис. 8.37. Форма Авторы, созданная Мастером автоформ
мы сделаем, будет называться Карточка автора. Очевидно, такая форма нужна как для отображения данных об авторах, так и для ввода данных о новом авторе. Выделите в списке таблиц таблицу Авторы и нажмите на панели инструментов стрелку кнопки Новый объект (New Object). Выберите в списке объект Автоформа (Autoform). В результате форма будет автоматически создана и открыта для ивода (рис. 8.37). Теперь мы можем подправить созданный мастером макет формы так, чтобы он нас удовлетворял. Для этого нужно перейти в режим конструктора форм. 1. Выберите в списке на кнопке Вид (View) панели инструментов режим Конструктор (Design View). Форма (пока она имеет стандартное имя Форма!) откроется в режиме конструктора. 2. Щелкните на кнопке Развернуть окна конструктора форм, чтобы получить максимальный размер формы (рис. 8.38). Большинство полей таблицы А в т о р ы представлены в форме элементами управления Поле (Text Box). Только поле Фотография, которое имеет тип Поле объекта OLE (OLE Object) представлено элементом Присоединенная рамка объекта (Bound Object Frame). Значения свойства Подпись (Caption) полей таблицы отображаются присоединенными надписями элементов управления формы, а имя поля таб-
256
Занятие 8. Знакомство с формами и элементами управления
лицы указывается в качестве источника данных для элемента управления Поле (Text Box) формы1. IgMicrasoft Access - [*ориа! : форма]
Рис. 8.38, Форма Авторы в режиме конструктора
Теперь нужно подстроить размеры элементов управления и надписей на форме и немного изменить их месторасположение.
Перемещение и изменение размеров элементов управления Сначала мы удалим элемент управления КодАвтора, так как обычно пользователю не нужно видеть коды. 1. Щелчком выделите элемент КодАвтора. Нажмите клавишу Del или выберите команду Правка к Удалить (Edit > Delete). Элементы управления Ф а м и л и я , Имя, ГодРождения, ГодСмерти, МестоРождения, О б р а з о в а н и е нужно переместить вверх, заполнив освободившееся См. свойство Данные (Data Source) в окис Свойства (Properties).
Создание первой формы
257
место. Чтобы не перемещать их поодиночке, сначала выделите вес эти элементы. При выделении или отмене выделения элемента управления со связанной надписью вместе с элементом управления выделяется или отменяется и выделение надписи. Иногда нужно удалить не элемент управления, а только надпись к нему. В этом случае, чтобы выбрать надпись, нужно щелкнуть именно на ней. Тогда, нажав клавишу Delete, вы удалите только надпись к элементу управления, а не сам элемент.
2. Щелкните на элементе Имя, потом, удерживая клавишу Shift, на втором, третьем и т. д. или нарисуйте мышью рамку выделения вокруг этих элементов, причем для выделения достаточно, чтобы нужный объект хотя бы частично попал в область выделения. 3. Поместите указатель в рамку выделения (значок указателя изменится, превратившись в ладонь) и перетащите элементы на новое место. Далее уменьшим размер элемента управления Фотография и перенесем его, поместив справа от остальных полей. 4. Выделите этот элемент управления, затем подведите указатель к правому нижнему углу так, чтобы он превратился в косую двунаправленную стрелку, и потяните угол вверх влево, пока ширина этого элемента не станет равной ширине других полей. Нужно переместить по отдельности сам элемент управления и надпись к нему. Надпись поместим не слева от поля, а над ним. 5. Сначала выделите этот элемент, затем подведите указатель к маркеру перемещения надписи, который располагается в правом верхнем углу надписи (значок указателя опять изменится, превратившись в руку с вытянутым указательным пальцем), и потяните за этот маркер вверх. Перемещаться должна только надпись. Схватите маркер перемещения самого элемента управления и переместите его на нужное место (рис. 8.39). Обращайте внимание на значок указателя: если он выглядит как раскрытая ладонь, перемещаться будет элемент управления вместе со связанной с ним надписью, а если как ладонь с вытянутым указательным пальцем, то только элемент управления или только надпись.
6. Прокрутите форму, переместив движок на вертикальной полосе прокрутки вню. В нижней части формы есть еще два элемента управления: поле Заметки и подчиненная форма Таблица.АвторИздание. 7. Измените их размеры и переместите вверх (рис. 8.39). 8. Прокрутите форму и перетащите нижнюю границу формы вверх, уменьшив высоту области данных (см. рис. 8.39). 9 Зак. 680
25о
Занятие 8. Знакомство с формами и элементами управления
Проверим, что получилось. 9. Щелкните кнопку В о с с т а н о в и т ь окно окна формы, чтобы оно приняло нормальные размеры. ess - [Форма! : Форма] Эяйл
Правка
gnu
вставке- Фсдаа
- _ fl X
Рис. 8.39. Измененная форма Авторы
10. Выберите команду Вид > Режим формы (View > FormView) или щелкните на панели инструментов на стрелке кнопки Вид (View) |Ц"|'. и выберите в списке элемент Режим формы (Form View). В верхней части формы (рис. 8.40) отображается одна запись таблицы Авторы, а в нижней части встроена таблица, состоящая из одного столбца, в котором отображается поле КодИздаиия из связанных записей подчиненной таблицы АвторИздание. Таким образом, в элементе управления П о д ч и н е н н а я форма/отчет (Subform/Subreport) отображаются записи из связанной таблицы так, как мы это видели в таблице Авторы.
Сохранение формы Теперь сохраним созданную нами форму. 1. Выберите команду Файл * Сохранить (File > Save) или нажмите кнопку Сохранить (Save) панели инструментом Конструктор форм (Form Design)..
Печать формы
.259
"1 ГОД.СМ С П ' ' •:' •• .-•'•'
'
Киев
Выдающийся советский писатель-гуманист,
КсдИвданил Еелая гвардия, Мастер и Маргарита
Записи:
: .;.LJ,,*f,,)>,*i из 22
Рис. 8.40. Форма Авторы, открытая в режиме формы
2. В ноле ввода Имя формы (Form Name) появившегося диалогового окна Сохран е н и е (Save As) укажите название формы К а р т о ч к а А в т о р а и нажмите кнопку ОК. 3. Закройте окно формы. 4. Щелкните на ярлыке Ф о р м ы (Forms) в окне базы данных, чтобы открыть список форм. В этом списке появилась первая форма К а р т о ч к а А в т о р а . На следующем занятии мы продолжим настройку формы КарточкаАвтора и создадим еще несколько форм разных типов.
Печать формы Форма может быть не только выведена па экран, но и напечатана. Как уже говорилось, можно сделать так, что кнопки на форме выводиться на печать не будут. Все остальные элементы формы сохраняются при печати. Если форма отображает записи в табличном виде, на печать будут нынедень] все записи таблицы, а не только те, которые помещаются is область отображения формы. Если форма многостраничная, при печати будут отображены одновременно вес ее страницы. Если же форма представляет собой некую карточку, в которой отображается одна запись, то на печать будет выведено столько карточек, сколько записей можно увидеть в форме.
260
Занятие в. Знакомство с формами и элементами управления
Форму, как и любой документ Microsoft Office можно открыть в режиме предварительного просмотра, для чего нужно либо выполнить команду Файл > Предварительный просмотр (File > Print Preview), либо воспользоваться кнопкой Предварительный просмотр (Print Preview) на панели инструментов текущего режима работы с формой. Если результаты вас не удовлетворяют, на панели инструментов Предварительный просмотр (Print Preview) можно нажать кнопку Установка (Setup) (или, что то же самое, выполнить команду Файл > Параметры страницы (File > Page Setup)) и в открывшемся диалоговом окне изменить параметры страницы. Это стандартное окно, которое используется и в других приложениях Microsoft Office (рис. 8.41). Установленные здесь параметры будут действовать только для данной формы. К другой форме будут применены параметры, установленные по умолчанию. Параметры стрлмЛы^
Рис. 8.41. Диалоговое окно для установки параметров страницы при печати
Собственно печать выполняется кнопкой Печать (Print) или командой Файл Печать (File > Print).
Подведение итогов Это первое занятие, на котором вы познакомились с тем, что представляют собой формы Access. Вы узнали: • какие разделы имеет форма, как добавлять и удалять разделы и изменять их высоту; • какие панели инструментов используются в режиме конструктора;
Подведение итогов
261
какие элементы управления могут быть размешены в форме и для чего используется каждый элемент; каковы основные свойства различных элементов управления; как выделить один или несколько элементов управления; как переместить элемент управления или группу элементов и как изменить их размеры; как используется мастер автоформ; как переключаться между различными режимами работы с формами; как сохранить созданную в конструкторе форму; как напечатать форму.
ЗАНЯТИЕ 9
Составные и связанные формы ТЕМА ЗАНЯТИЯ Па этом занятии вы узнаете: • как создать подчиненную форму; • как связываются главная и подчиненная формы; • какие свойства имеет форма и как можно управлять формой, изменяя значения ее свойстн; • как создать и синхронизировать связанные формы; • как добавить на форму кнопку, которая открывает другую (|юрму.
Создание подчиненной формы
Для выполнения упражнений данного занятия вам потребуется файл Библиотека. mdb 1 . Откройте его перед началом занятия.
Создание
подчиненной
формы
___
Это занятие начнем с создания подчиненной формы для формы Картой каАвтора, которую мы создали в конце прошлого занятия. В подчиненной форме желательно видеть не только название книги, но также издательство, год издания и том. Подчиненная форма чаще всего строится на оспоие запроса, содержащего только необходимые поля. Поэтому создание этой формы начинать нужно с построения соответствующего запроса.
Создание запроса для подчиненной формы 1. Раскройте список запросов в базе данных Библиотека. mdb и щелкните на ярлыке Создание запроса в режиме конструктора (Create query in Design view). 2. В диалоговом окне Добавление таблицы (Show Table) выберите дне таблицы: А в т о р И з д а н и е и Издания. 3. В бланк запроса нужно включить следующие поля: КодАвтора из таблицы АвторИздание, Название, КодИздательства, Г о д И з д а н и я и Том из таблицы И з д а н и я . Поле КодАвтора понадобится для связи с главной формой, остальные поля должны быть выведены в подчиненной форме. 4. Установите сортировку по возрастанию в столбце Н а з в а н и е . Очевидно, что список книг автора в подформе должен быть отсортирован. Мы можем указать эту сортировку в запросе, и она будет выполняться в любой форме, основанной на этом запросе.
- .
i
. •
-, |
Код Издательства ,23 КодАвтора
Том
КодИздаия
Издание
jj| JJ
.
.
КодАвтора АвторИздзние
- . ,4 • , - - , ' -•••
И
Название Издания по возрастанию
0
КодИздательств Издания
0
ГодЛздэнмя Издания
Том Издания
3
ЙПИ !"
1*3 J.
0
.
Рис. 9.1. Запрос для подчиненной формы Картой к аАвтора Примеры вы можете найти на сайте издательства www.piter.com на странице, посвященной :пои книге.
264
Занятие 9. Составные и связанные формы
Запрос должен выглядеть, как представлено на рис. 9.1. 5. Сохраните запрос, дав ему имя АвторКниг.
Создание формы с помощью мастера Теперь создадим на базе этого запроса форму, которую затем свяжем с формой КарточкаАвтора. Форма должна иметь табличный вид, так удобно будет просматривать данные о книгах. Для ее создания проще всего воспользоваться мастером. 1. Откройте список форм и щелкните на ярлыке Создание формы с п о м о щ ь ю мастера (Create form by using wizard). 2. В первом диалоговом окне мастера выберите в списке Т а б л и ц ы и запросы (Tables/Queries) имя созданного ранее запроса: А в т о р К н и г . 3. Перенесите из списка Доступные поля (Available Fields) в список Выбранные поля (Selected Fields) все поля, кроме поля КодАвтора (рис. 9.2).
выберите ПОЯР дл« формы/ ается ввйор
,.. КадИэдательства - >--, I- ГодИздэния : •-*—*
Рис, 9.2. Диалоговое окно мастера форм Для установки связи с главной формой достаточно, чтобы поле КодАвтора было включено в запрос, оно не обязательно должно отображаться в виде элемента управления в форме. 4. Нажмите кйопку Далее (Next) и следуйте указаниям мастера: выберите внешний вид формы — т а б л и ч н ы й (Datasheet), стиль — стандартный (standard). В последнем окне мастера задайте имя формы КарточкаАвтораПодформа и нажмите кнопку Готово (Finish). Форма будет открыта в виде таблицы, и можно отре^лировать ширину столбцов и ширину самой формы, например, так, как показано на рис. 9.3.
Создание подчиненной формы
265
шпш пн^,!
Африка Наука Белая гвардия; Мастер и Маргарита Мастацкая литература Драмы Наука Евгений Онегин 'Амфора Избранная поэзия Медный всадиик
; Панорама :Лениздат
Мы ждем ребенка Мы вдем ребенка Нравственные основы жизни
-. -,
1988! 1990! 199911 196711 199911
:Рипол Классик Рипол Классик Юн ауте а
!
MJ
Рис. 9.3. Табличная форма
5. Закройте форму КарточкаАвтораПодформа. G. Откройте созданную на прошлом занятии форму КарточкаАвтора в режиме конструктора. 7. Выделите элемент управления П о д ч и н е н н а я форма/отчет (Subform/Subreport). Источником данных для этого элемента управления служит таблица АвторИ з д а н и е . Чтобы этот элемент управления отображал форму К а р т о ч к а А в т о р а Подформа, достаточно изменить только одно свойство этого элемента управления: Объект-источник (Control Source).
Встзека "!ч%иаг
Сервис v
•- % ^ \
,:t
? • .
v
SKHO
Справка
'• " '
'.
ЩШ КарточкаАвтора : Форма -- -;
• i • г • 1 • 3 • i ' 4- • i • S • 1 • 6 • 1 • 7 • 1 • 6 • 1 • 9 • 1 • IQ • L • II • 1 -\2 • i • 13 • 1 *3 •
• 1/
f tS6^CTfcfl-fiWbl>-
'
-
-
:
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<
че
ная
г/\ ;* ^ Р 1° Р точка стоит в области выделения подчиненной формы, а не главной, и окно свойств отображает свойства подчиненной формы. Подчиненная форма в форме КарточкаАвтора предназначена толj,ко для просмотра данных о книгах данного автора, поэтому необходимо запретить редактировать, удалять и вводить новые записи в этой форме. Установите з н а ч е н и я для свойств формы на вкладке Д а н н ы е (Data): • Разрешить изменение (Allow Edits) — Нет; • Разрешить удаление (Allow Deletions) — Нет; •
Разрешить добавление (Allow Additions) — Нет.
1
ЩвШШинЩг * Область данных
.ы
• 1ЙЯ1
ГОД р м дем1 Л '
Год . & , . '
. --,,., ОВЗНЛ£
Г-:.дРо*дения ГодС^рти^
НПО
-^['•естоРочсденир [Образование
Z,1 1ыа | События) Другие.] Вса; | •
:
,
, , . '.-
-
;
Применение ф| гътров , . , , , . . , . , Да нете , . . , "Да ра^рлиитьуда ченме f н , , Да , ' Да Разрешить дао »леиие
Нет
Тип набора зал •кей, , . , , . , . , f .. ,: Динамический набор : Отсутствует СЛиЫр^^г Исей" ;:. Загзу^ить знач енияпзумс-лченикь Да геиоы, ' в '• •
Заметки
,
;.!|-
-Ляы
Имя Источник запис ей .,...,.... ^ ., АвторКниг ,-— — i —л — — Фильтр , , , . , :.' • ' ' • - , , .„
Инг
Замет •
"-
,
.
--,
. , . . . г . , . . 3 . . . 4 . , . 5 . , - 6 . . . 7
1
( 1
. Я •
t 1 • Ч .
i 1 . 1П .
:
• - !
t J . 11 .
*
^ Заголо&ок форг^ы
* Область д.эчны* 1
-
-
- - - .
-.--'-"
Рис. 9.10. Свойства подчиненной формы 1. На вкладке Макет (Format) установите свойство Кнопки перехода (Navigation Buttons) равным Нет, так как все записи можно посмотреть, прокручивая таблицу в области подчиненной формы.
Занятие 9. Составные и связанные формы
Для изменение значений свойств элементов управления выделите нужный элемент управления в подчиненной форме, и в окне Свойства (Properties) уже будут отображаться свойства этого элемента управления. Обратите внимание, что в заголовках столбцов подчиненной формы отображается значение свойства Подпись (Caption) таблицы источника. Это свойство наследуется во всех формах, а в дальнейшем вы узнаете, что и в отчетах, которые базируются на таблице или запросе, включающем поля таблицы. Это еще одно подтверждение тезиса о том, насколько важно корректно определить структуру таблиц базы данных. В дальнейшем это избавит от лишней рутинной работы.
2. Переключитесь в режим формы. Она должна выглядеть как на рис. 9.11. Of.»
.
•| Боэций
!!,••!
.дсмер • Место рождения 'ЗШкола в Равенне Позднеантичный ученый и 'лсеоф, "последний римлянин"
• •
ИЗ
'Утешение философией" и другие Tf Наука
'- -
н
!
!-Г~
' •
ЕФ|ГОД ИЗД !НИЯ
1990
1 'i£l>|.J**l*« ^
Рис. 9.11. Окончательный вид формы КартойкаАвтора В этом режиме вы можете настроить ширину и высоту формы, перемещая мышью правую и нижнюю границы. Кроме того, можно настроить нужным образом ширину столбцов в подчиненной форме. При повторном открытии формы эти настройки будут сохранены.
3. Закройте форму. При этом появится диалоговое окно со списком форм, в которые были внесены изменения. Сохраните все эти изменения, нажав кнопку Да.
Создание связанных форм
277
Создание связанных форм Создадим формы для ввода и отображения записей о читателях и их формулярах. Их можно было бы организовать так же, как и форму КарточкаАвтора — создать главную форму Читатели и подчиненную форму Формуляры. Но мы сделаем несколько иначе, а именно — создадим две разные формы, которые будут синхронизированы, то есть в форме Формуляры всегда будут отображаться только те записи, которые относятся к читателю, показанному в форме Читатели. Тем более что и в этом случае нам поможет мастер. 1.
Щелкните на ярлыке Создание формы с помощью мастера (Create Form by using wizard) в списке форм окна базы данных. 2. В первом диалоговом окне мастера выберите в списке Таблицы и запросы (Table:;/ Queries) имя Таблица: Читатели. 3. Перенесите из списка Доступные поля (Available Fields) в список В ы б р а н н ы е поля (Selected Fields) все поля таблицы, щелкнув на кнопке с двумя стрелкам! 4. Выберите в списке Таблицы и запросы (Tables/Queries) другую таблицу: Таблица: Формуляры (рис. 9.12) и тоже перенесите все ее в поля в список Выбранные поля (Selected Fields).
КодЧитателя ДатаПолучения ДатаВозврата Д а таВозв рата Факт Примечание
Рис. 9.12. Добавление полей из двух таблии
5. Б следующем диалоговом окне выберите переключатель Связанные формы (Linked Forms). В поле образца сразу показано, как будут выглядеть будущие формы (рис. 9.13).
278
Занятие 9. Составные и связанные формы
.
- Формуляры
;,-•• • ;•
; ' ! -• ..('-г..', t- чи
Имя,"Отчество, ГадРо» денич. Телефон -
т.чч.,1 "rj/.'-Mlflr.'-w, la ,- • I В M,I .. .•>!. ,,г,.ч.|; 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 Фетны.
;
-
-
-
-: :' "
• •*•>;№<.-! 1, Л ::-!-!.:<•
КодИздания
тУКодЧитателя ^Jjflareno |ДатаВо jfiaTaBc- Пиимечачие
! | 'I
•* Примечание фсрчы
-
Е; I. : i
Рис. 9.16. Макет формы ленточного типа
Что нужно в ней исправить? Во-первых, есть один лишний столбец — Читатель, поскольку все данные о читателе мы увидим в форме Читатели. Во-вторых, не полностью видны заголовки столбцов с датами. Сейчас мы это исправим, 2. Выделите элемент управления КодЧитателя и, удерживая нажатой клавишу Shift, надпись Читатель. Когда оба элемента окажутся выделенными, нажмите клавишу Delete. Оба элемента одновременно будут удалены. 3. Теперь выделите таким же образом поле со списком КодИздания и надпись Издание. Подведите указатель к правой границе надписи И з д а н и е так, чтобы он превратился в двунаправленную стрелку, нажмите левую кнопку мыши
282
Занятие 9. Составные и связанные формы
и потяните границу вправо. Вы увидите, что одновременно будут растягиваться оба выделенных элемента управления. Отпустите кнопку, когда надпись расширится до 4,3 см (смотрите на деления горизонтальной линейки в верхней части формы). Чтобы надписи над столбцами были видны полностью, их придется выводить в несколько строк (или сильно расширять форму вправо). Для этого нужно увеличить высоту области заголовка.
Изменение надписей в заголовке формы 1. Подведите указатель к нижней границе области заголовка и, когда он превратится в двунаправленную вертикальную стрелку, потяните границу вниз, установив высоту заголовка 1,5 см (ориентируйтесь по вертикальной линейке слева). 2. Щелкните на вертикальной липенке напротив надписей — они все окажутся' выделенными одновременно (рис. 9.17).
!#
- . ( t-
Щ[
1
i * р&
зориы
'
-:
"
•к
»| А
Щ
I ,. .
I , ,'."..
;
,
.
-
Рис. 9.17. Выделение заголовков столбцов
3. Перетащите нижнюю границу любой из надписей вниз, чтобы отобразить три строки в надписи Фактически возвращена. Теперь нужно переместить влево поле Д а т а П о л у ч е н и я вместе с надписью над ним. Для этого нужно их выделить. Чтобы снять предыдущее выделение, достаточно щелкнуть за пределами выделенных элементов или разделов. 4. Выделите поле Д а т а П о л у ч е н и я и надпись Дата п о л у ч е н и я . Наведите указатель на поле надписи и, когда он превратиться в ладонь, потяните влево. Оба элемента управления переместятся влево. 5. Пока оба элемента выделены, увеличьте их ширину так, чтобы надпись полностью поместилась в рамке (правая граница должна быть напротив цифры 6 на линейке). 6. Аналогично переместите и расширьте поле ДатаВозврата и надпись к нему. 7. Снова выделите все надписи в области заголовка и в окне Свойства (Properties) на вкладке Format (Макет) установите значение свойства В ы р а в н и в а н и е текста (Text Align) равным значению по центру (Center) (выберите в раскрывающемся списке). Когда выделено несколько элементов управления, в заголовке окна свойств это отражается, и устанавливаемые вами значения свойств одновременно применяются ко всем выделенным элементам.
Создание связанных форм
28.3
8. Переместите нижнюю границу области заголовка вкерх, чтобы она совпала с нижней границей надписей. Форма должна выглядеть, как представлено на рис. 9.18. Ш Формуляры: Форма
КодИ здания
J*i j; j Д ат аП о л ц1. | Д ат аВ оз^ ШатаВозБр Примечание
* Примечание 4<зрмы
i
Рис. 9.18. Настройка надписей и заголовке формы
Настройка свойств формы Формуляры Нужно изменить еще несколько свойств формы. Во-первых, имеет смысл запретить добавление записей и таблицу Формуляры. Добавлять записи в этой форме неудобно, так как неудобно выбирать нужную книгу в длинном списке. Для выдачи книг мы создадим специальную форму. Во-вторых, нужно настроить размеры формы и место на экране, где она будет выводиться. Поскольку эта форма просматривается одновременно с формой Читатели, л у ч ш е , чтобы она ее не загораживала. В-третьих, форма Формуляры может открываться и закрываться при нажатии соответствующей «кнопки» в форме Читатели, следовательно, можно спрятать кнопки оконного меню и закрытия формы. И, наконец, нужно отсортировать записи. 1. Выделите всю форму и установите свойство Разрешить добавление (Allow Adch'tions) на вкладке Данные (Data) равным Нет (No). 2. Раскройте вкладку Макет (Format) и установите равными Нет (No) значения свойств Автоматический размер (AutoResize), Выравнивание по центру (AutoCenter)1, Кнопка оконного меню (Control Box), Кнопка закрытия (Close Button). 3. Переключитесь в режим формы л посмотрите, как она выглядит. 4. Установите высоту формы такой, чтобы одновременно было в и д н о дне записи, а ширину так, чтобы были видны все столбцы, но не было пустого поли справа (рис. 9.19). 5. Закройте форму, сохранив все изменения и макете. Для этого вам придется выполнить команду Файл > Закрыть (File f Close), так как нужные кнопки на форме отсутствуют. Осталось только подобрать взаимное положение связанных форм. Когда эти свойства имеют значение Да (Yes), Access автоматически изменяет размер формы и перемещает се в центр окна приложения.
284
Занятие 9. Составные и связанные формы
6. Откройте форму Читатели в режиме формы. 7. Нажмите выключатель Формуляры, чтобы открылась форма Формуляры.
Рис. 9.19. Ленточная форма Формуляры
8. Переместите форму Формуляры, так, чтобы она оказалась ниже формы Читатели и не перекрывала ее (если нужно, переместите и форму Читатели). 9. Сохраните взаимное положение форм. Сделайте активной форму Ф о р м у л я р ы , щелкнув на любом из ее полей, и выберите команду Файл * Сохранить (File > Save). 10. То же самое сделайте с формой Ч и т а т е л и , если вы перемещали ее. 11. Откройте по очереди каждую лз этих форм в режиме конструктора и измените значение свойства формы Допускается перемещение (Moveable), Это свойство находится на вкладке Макет (Format). Установите значение этого свойства равным Нет. Тогда пользователи не смогут сами перемещать эти формы в окне приложения.
Синхронизация связанных форм Посмотрим, каким образом эти две формы функционируют синхронно. 1. Закройте форму Формуляры, а форму Читатели откройте в режиме конструктора. 2. Выделите элемент у п р а в л е н и я В ы к л ю ч а т е л ь (Toggle Button) в заголовке формы Читатели и раскройте вкладку События (Events) окна Свойства (Properties). В перечне свойств событий заполнено только одно свойство: Нажатие к н о п к и (On Click) (рис. 9.20). К этому событию присоединена процедура обработки события (Event Procedure). Эта процедура написана на языке VBA и запускается, когда пользователь нажимает выключатель. Вы можете увидеть код этой процедуры, если нажмете кнопку построителя справа. Тогда появится окно редактора VBA, в котором будет показан код процедуры ToggLeLink_CLick() и нескольких других процедур. Но ведь мы не писали никакого кода, скажете вы. Это сделал за нас мастер форм при создании связанных форм. 3. Закройте окно редактора, если вы его открывали, щелкнув на кнопке закрытия окна Windows, и закройте форму Читатели.
Создание связанных форм
285
«Г Выключатель: Выключатель
Макет ] Данные. События. j другие До обновления , -, .-" После обновления ...
[Пр
Нажатие са-юти
- • ! • . •
Г
IBJ4I
Все
IE ,:• < • - ' . , .
Нажат яе клавши,
Рис. 9.20. Присоединение проиелуры VBA к событию в форме
Добавление кнопки, открывающей форму Вы могли заметить, что при описании выданного издания в форме Формуляры не видно авторов издания. Но хотелось бы иметь возможность посмотреть и авторов книги. Поскольку авторов у книги может быть несколько, при создании формы Формуляры на основе запроса одна книга в формуляре повторялась бы столько раз, сколько она имеет авторов. Поэтому мы создадим форму, в которой отображались бы авторы издания, и свяжем ее с формой Ф о р м у л я р ы . ЗАДАНИЕ Создайте самостоятельно форму АвторыИздание ленточного типа на основании запроса, который включает поле КодИздания из таблицы АвторИздание и поля Имя и Фамилия из таблицы Авторы. В форму включите только поля Имя и Фамилия (поле КодИздания должно остаться только в запросе для связи с формой Формуляры). Укажите заголовок для формы: Авторы (свойство Подпись), удалите горизонтальную линейку прокрутки и кнопки перехода, запретите изменение, удаление и добавление записей. Окончательный вид формы представлен на рис. 9.21. Щ АнторИзданме : Форма :
1
•* Заготовок фор|ци
J
* 'Э5гвсть данных
. "•
|Имя f Г|»мечйн«е -формы. ч;
№*ЙШ!
•" -
"
-
". '-.: , :' ;•-• -*iJ
[Фамилия
'.г
Рис. 9.21. Ленточная форма АвторыИздание Чтобы при просмотре формуляра увидеть авторов книги, проще всего создать па форме Формуляры кнопку, при нажатии которой будет открываться форма А в т о р ы И з д а н и е со связанными записями из таблицы Авторы.
286
Занятие 9. Составные и связанные формы
1. Откройте форму Ф о р м у л я р ы в режиме конструктора. Подведите указатель к границе раздела П р и м е ч а н и е ф о р м ы (Form Footer) и потяните ее вниз, создав раздел П р и м е ч а н и е высотой приблизительно 1 см. 2. Убедитесь, что кнопка Мастера (Control W i z a r d ) ; f o j на панели элементов нажата. Выберите на панели элементов элемент управления Кнопка (Command Button). 3. Перетащите элемент управления в раздел П р и м е ч а н и е формы. Сразу запустится мастер, с которым мы знакомились на прошлом занятии, но теперь нужно выбрать другую категорию действий: Работа с ф о р м о й (рис. 9.22). Создание кнопок [.(;• i °г.к (;>->и ч,-«-, i . ..•;"•'" >•.-.'.- < '.: ' . ' < • В - ". ' 1
*
•
;•:
•
#'0бпастъ данных
..I
«
I
le ре ходы по записям Обработка записей
Закрыть форму Изменить фильтр формы Обновить дапные формы
Работа с отчетом Приложение Разное
OTKpblTB СТРАНИЦУ
Печать текущей формы Печать формы Применить фильтр формы
Рис. 9.22. Диалоговое окно Мастера кнопок 4. Выберите в списке Категории (Categories) элемент Работа с формой (Form Operation), а затем в списке Действия (Actions) — Открыть форму (Open Form). 5. На втором шаге нужно выбрать форму, которая должна открываться — АвторИздание. 6. На третьем шаге выберите переключатель Открыть форму для о т о б р а н н ы х записей (Open the form and find specific data to display). 7. На четвертом шаге нужно указать соответствующие поля в формах. Выделите поля КодИздания в списках полей обеих форм и нажмите кнопку между списками В нижней части окна должна отобразиться строка, указывающая соответствующие поля (рис. 9.23). Г А -у В списке полей АвторыИздание отображаются все поля запроса, а не только те поля, которые включены в форму.
Создание связанных форм
287
Укажите соответствую-цие пспя, который следует' " использовать для отбора данных \ Выведите поля и нажните кнс"№у <->.
• ' •:
ДатаПслучения ДатаВозврата ДатаВозврзтаФакт Примечание
Рис. 9.23. Указание соответствующих полей 8. На пятом шаге выберите переключатель Текст (Text) и введите текст, который будет на кнопке: Авторы. 9. На последнем таге введите имя кнопки: ПоказатьАвторов. 10. Закройте форму, сохранив изменения макета.
Издание
Дат ПСИЦ1'1
Щ. | Б е да я г ва рдия; М аст ери М'. j j ЙббтТоо! I
; -
" Аетеч:*,!
3«*«э
«J...K
Рис, 9.24. Три связанные формы, открытые одновременно
288
Занятие 9. Составные и связанные формы
Теперь можно открыть форму Читатели и протестировать совместную работу всех трех связанных форм. Это должно выглядеть приблизительно тик, как показано на рис. 9.24. Посмотрите, в чем отличие действия выключателя Формуляры на форме Читатели и кнопки Авторы па форме Формуляры (например, форму Авторы можно закрыть, только нажав кнопку закрытия окна формы). Это отличие объясняется тем, что мастера создали разные процедуры обработки событий нажатия кнопки и выключателя.
Подведение итогов На этом занятии закончено создание формы КарточкаАвтора. Вы научились: • создавать форму на основе запроса; • включать подчиненную форму в главную и связывать главную и подчиненную формы; • просматривать и изменять свойства формы, изменяя тем самым ее внешний вид и поведение. Вы построили три формы Читатели, Ф о р м у л я р ы и Авторы, которые отображают связанные записи из разных таблиц. Вы научились: • создавать связанные формы; • создавать кнопку, при нажатии которой открывается другая форма; • блокировать элемент управления, чтобы пользователь не мог вводить в него данные. На следующем занятии мы создадим форму для ввода и просмотра данных об изданиях и познакомимся с другими свойствами формы и элементов управления.
ЗАНЯТИЕ 10
Оформление формы и ввод данных через форму ТЕМА ЗАНЯТИЯ
На этом занятии вы узнаете: • как создать форму «с нуля» с помощью конструктора; • как использовать список полей для создания элементов управления формы; • как форматировать элементы управления и надписи к ним; • как выровнять размеры и положение элементов управления; • как создать фоновый рисунок формы; • как создать и изменить стиль оформления формы; • как вводить и изменять данные с помощью формы,
10 Зак. 680
290
Занятие 10. Оформление формы и ввод данных через форму
Для выполнения у п р а ж н е н и и данного занятия нам потребуется файл Библиотека. m d b 1 . Откройте его перед началом занятия.
Создание формы Издания Это будет составная форма: к главной форме будут отображаться все поля таблицы И з д а н и я , а в подчиненной форме — авторы изданий. Форма должна обеспечивай» просмотр и удаление записей о книгах, ввод новых записей в таблицу Издание, а также в таблицу АвторИздание, чтобы связать издание с авторами. Сначала создадим главную форму. Поскольку таблица Издания содержит достаточно большое число полей, создавать се с помощью мастера, который вытянет их в один столбик, не стоит. Поэтому на примере этой формы рассмотрим, как создавать форму без помощи мастера. Microtolt Access - [Форма1 З^йл
Оравкв" SHA
Вставка
Фораегт
КодИздания КодРаздепа Название Год Издания КодИздательства КодГорода 1
!1
Издание КодМестэ Цена Тип 06 ложки ДатаПо^пки ЧислоСтраниц ТипИгдачио
Рис. 10.1. Создание формы в режиме конструктора Примеры иы можете найти пи е;ште издательства www.piter.com па странице, посвященной .этой книге.
Создание формы Издания
291
1. Раскройте список таблиц в окне базы данных и выделите в нем таблицу Издания. 2. Щелкните на стрелке кнопки Н о в ы й объект (New Object) па панели инструментов и выберите объект Форма (Form). 3. В диалоговом окне Новая форма (New Form) выберите в списке команду Конструктор (Design) и нажмите кнопку ОК. Раскроется окно конструктора форм, в котором показана область данных пустой формы. 4. Нажмите кнопку Р а з в е р н у т ь и заголовке окна, чтобы установить максимальные его размеры. Подведите указатель к правому нижнему углу области данных, и, когда он превратится в две перекрещивающиеся стрелки, потяните за этот угол вниз вправо, расширив таким образом область данных до 13 см и ширину и 9,5 см в высоту. В этой области будем размещать элементы управления. Поскольку мы уже показали, какая таблица будет источником данных для формы, на экране должно присутствовать плавающее окно со списком полей этой таблицы. Переместите его вправо, чтобы оно не загораживало область размещения элементов управления, и раскройте так, чтобы были видны все поля (рис. 10.1). Если список полей не отображается на экране, щелкните на панели инструментов на кнопке Список полей (Field List)
Создание элементов управления из списка полей таблицы Теперь перетащим поля из списка полей и область данных формы. 1. Выделите в списке полей поле Н а з в а н и е и перетащите его в верхнюю часть формы (левый край прямоугольника, и который превращается указатель при перетаскивании, должен размещаться на расстоянии примерно 3.5 см от левой границы формы). В результате на поле формы окажется элемент управления Поле (Text Box) и присоединенная к нему надпись. 2. Аналогично переместите на форму все остальные поля (рис. ЮЛ). Вы получите в первом приближении нужную форму. При размещении трех элементов в одной строке придется уменьшить ширину элементов по сравнению с той, что создается по умолчанию, и переместить элементы управления поближе к своим надписям (см. Занятие 8).
Обратите шшмание, что вес поля таблицы, для которых мы создали столбцы подстанояок, на форме отображаются в виде элемента управления Поле со списком (Combo Box). Стало быть, уже не нужно определять, как должен создаваться список значений для данного поля, и создание формы займет меныие времени.
292
Занятие 10. Оформление формы и ввод данных через форму
Присоединенные надписи для каждого элемента управления создаются одновременно с самим элементом управления и содержат значение свойства Подпись (Caption) полей таблицы. (Если это свойство имеет пустое значение, надпись будет содержать имя поля таблицы.) Следовательно, нам не нужно заботиться о том, какие подписи должны быть у полей в форме.
Форматирование элементов управления Когда все элементы управления размещены на форме, окно со списком полей таблицы можно закрыть. Далее нам предстоит отформатировать некоторые элементы управления и выровнять их. Форматирование элементов управления удобно делать с помощью панели инструментов Формат (форма/отчет) (Formatting (Form/Report)). Если панель инструментов Формат (форма/отчет) (Formatting (Form/ Report)) не отображается в вашем окне приложения, щелкните правой кнопкой мыши на области панелей инструментов и выберите в контекстном меню Формат (форма/отчет) (Formatting (Form/Report)) (рис. 10.2). Обычно при работе в режиме конструктора форм или отчетов на экране отображают все три панели инструментов. • Bed-узел V:j; Конструктор Форм ••<[. Панельэлементов •'. "\ •sJ Ф о рмзг 1 Фо рма/ст чет) : Настройка...
Рис. 10.2, Контекстное меню панелей инструментов
1. Выделите элемент управления Название и связанную с ним надпись (для этого нужно щелкнуть на обоих элементах управления). 2. На панели форматирования выберите в списке Размер (Font Size) размер шрифта 10 пт и щелкните на кнопке Полужирный (Bold), чтобы выделить это поле среди всех остальных полей. Теперь нужно немного увеличить высоту этих элементов, так как по умолчанию при создании элементен управления выбирается размер шрифта 8 пт и высота элемента соответственно этому шрифту. Точно так же можно изменять ширину элементов управления (как правило, это удобно для подписей) в соответствии с текстом, который должен отображаться в этом элементе управления. Подведите'указатель к маркеру выделения в центре правого края элемента и щелкните дважды. Размер элемента будет подстроен под длину текста. Другой способ, более медленный — это команда Формат > Размер > по размеру данных (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 ИзданиеПодФорма : форма
:
Им
•^ 'Облает;, дамш><
Ж£ЕШ4де№&& -''
:
1
~ -Ф w ••*—-ч4
Рис. 10.5. Форма ИзданиеПодформа в режиме конструктора
Рис. 10.6. Форма ИзданиеПодформа в режиме формы
2. Щелкните в окне базы данных, чтобы сделать его активным. Переместите его влево, чтобы формы оказались рядом. 3. Выделите в списке форм ИзданиеПодформа и перетащите ее мышью в нижнюю часть формы Издания. На форме появится элемент управления Подчиненная форма/отчет (Subform/Subreport) (рис. 10.7).
йШЦена
1ЙИШЙ01ЙВД» в* ШДатвПокупкШ о :ч^4 ШЦЧислоСтрании
Рис. 10.7. Внедрение подчиненной формы в главную
Оформление формы
297
4. Измените надпись этого поля: А в т о р ы . 5. Поднимите нижнюю границу области данных так, чтобы она вплотную примыкала к нижнему краю подчиненной формы, и сдвиньте влево правую гра1 ницу, чтобы она тоже примыкала к правому краю элементов управления . ЗАДАНИЕ Самостоятельно добавьте в главную форму кнопку, которая открывала бы форму КарточкаАвтора, и назовите эту кнопку Новый автор.
Протестируйте форму, переключившись в режим формы. Она должна выглядеть аналогично форме, представленной на рис. 10.8.
Название: . . |ДПППШ '.-• •• • '
; '"^Художественная
Тон:
I •. • -'..;
.Место Хранений; |Бо-1ьшая комната ?*J Цена: | 2^.,00р.
Дата лисулйи; '] 06.06.1991 Л||«:ЛР страниц: Г
Замечательная поэма "отцэ гуманизма', адресованная далеким потомкам
Петрарка
щЦ.*о,гб Рис. 10.8. Форма Издания
Оформление формы Изменение фонового рисунка формы Чтобы сделать форму более эффектной, Microsoft Office Access 2003 позволяет использовать в качестве фона растровые рисунки, хранящиеся в графических файлах формата .wmf или .bmp. В комплект поставки Access 2003 входит несколько растровых рисунков, которые хранятся в папке \Microsoft Office\0ffice\ Bitmaps\Styles. Это нужно, чтобы не появлялись липшие линейки прокрутки.
298
Занятие 10. Оформление формы и ввод данных через форму
Добавим фоновый рисунок в форму Издания. 1. Выделите форму и откроите окно свойств формы (см. Занятие 9, раздел «Изменение свойств формы»). Раскройте вкладку Макет (Format) и с помощью полосы прокрутки переместитесь в конец списка свойств, где находится свойство Рисунок (Picture) (рис. 10.9). По умолчанию рисунок в форме отсутствует.
ri^jK^T
] Д^-;цд|£
Сийьгмя ] Другие j
Hoictbi пржрутхм , , ,
••,.>' -- •
, ,. ,'
Все
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. - -'
- • _-
•-
Г сшй^ние ншюго стипд на <я К)ЕЙ-аилч объекта: Фирма 1
1
'* |о6н£)&ле-*естЬлй"С тандч;р-гиы(' "(: атрибутами шъвкта;
Отмена " ----------- "
С удаление стиля "Стан дар т «.-
Дооа&пение в бь&амиь#1 стиль
Рис. 10.14. Диалоговое окно Настройка автоформата Как видно, с помощью переключателей в этом окне вы можете: D создать новый стиль на основе стиля текущей формы: D изменить встроенный стиль, если ны использовали его для формы; D удалить ненужный стиль из списка стилей.
tei
v
r^сли вы хотите сохранить свои стиль, обратите /• _L внимание на флажки в окне
Настройка автоформата (Customize AutoFormat), так как состояние этих I - — i/ флажков определяет, какие компоненты стиля будут сохранены. Во втором и в третьем случаях речь идет о стиле, выбранном в этом окне. 3. Выберите первый переключатель и нажмите кнопку ОК. 4. В диалоговом окне Н а з в а н и е нового стиля (New Style Name) введите имя нового стиля и нажмите кнопку ОК. Имя нового стиля должно появиться в списке стилей окна Настройка а в т о ф о р м а та (Customize AutoFormat). Это означает, что ваш стиль добавился к встроенным стилям, и теперь мастер форм будет предлагать его вам при создании новой формы.
Параметры, влияющие на оформление формы Внешний вид формы зависит также от параметра Элементы у п р а в л е н и я из тем Windows в формах, который появился в Microsoft Office Access 2003. Дело в том, что если на компьютере установлена операционная система Windows XP (с пакетом обновлений Service Pack 1), то большинство элементов управления в
303 формах теперь наследуют свойства из текущей темы Windows. Исключениями являются рисунки, рамки объектов, подчиненные формы, линии и п р я м о у г о л ь ники. Поэтому по умолчанию при создании форм основные элементы управления будут иметь то оформление, которое предусмотрено выбранной темой если это не тема W i n d o w s Classic. Тема Windows выбирается на вкладке Темы (Themes) диалогового окна Отображение (Display Properties), которое можно открыть из Панели у п р а в л е н и я (Control Panel) Windows. Параметр Элементы у п р а в л е н и я изтем W i n d o w s в формах отображается и изменяется на вкладке Формы и отчеты (Forms/Reports) окна Параметры (Options) Acetss (рис. 10.15).
Стра«нщь;
-
Carted
Рис. 10.15. Параметры форм и отчетов
1. Выполните команду Сервис > П а р а м е т р ы (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Л<:ш? Число страш-ц:
- -. =- - ; Имя
'"• ? ":•- *
v
Y>; i
Jd ХориеПуи»! l l Минаип """I Франциск. j^7 ' '
. . •
: ••
• : I
-
Рис. 10.20. Заполнение полей в подчиненной форме
Теперь посмотрим, как ввести новую запись о книге, автора которой еще нет в нашей картотеке. 3. Заполните поля, касающиеся издания, и затем нажмите кнопку Новый автор. Откроется форма КарточкаАвтора, в которой будут показаны все записи в картотеке авторов. 4. Нажмите кнопку Новая з а п и с ь (New Record), чтобы добавить запись в эту форму. В нее нужно ввести только данные об авторе. 5. Закройте форму. Новая запись будет добавлена в таблицу так же, как и при переходе к другой записи. 6. Чтобы новая запись об авторе появилась в раскрывающемся списке в подформе Авторы, нужно сделать обновление данных в этой подформе. Установите курсор ввода на любое поле в подформе и выберите команду Записи I* Обновить (Records > Refresh). 7. Раскройте список авторов в поле Фамилия и выберите фамилию только что введенного автора. Как видите, ввод данных в этом случае происходит не очень удобно. На самом деле надо сделать так, чтобы КарточкаАвтора открывалась сразу в режиме добап-
31 0
Занятие 10. Оформление формы и ввод данных через форму
ления записи, а при закрытии этой формы в подчиненную форму Авторы сразу же добавлялись данные о новом авторе. Это можно сделать только с помощью программ на VBA или макросов. С макросами мы познакомимся на Занятии 13 и тогда усовершенствуем форму И з д а н и я . Добавлять записи с помощью формы можно только в том случае, если свойство формы Разрешить добавление (Allow Addition) имеет значение Да (Yes). В противном случае кнопка Новая запись (New Record) будетзаблокирована.
Удаление записи Удалить в форме можно только текущую запись. 1. Перейдите на последнюю запись и форме И з д а н и я . 2. Щелкните на области выделения записи (слева), чтобы выделить всю запись, Эта область приобретет темно-серый цвет (рис. 10.21).
Названа:
Русские тайны Парижа
Раздел: Место пупямкйции; Москва Тип издания; [книга Тт облои'кит \ ^жесткая
Место храизня-д; |Мапенькая комнат JM
Цена; : ISOjOOp. ; jДата покупки: | 12.12.2002 Число страниц:
Фамилия
^j
а
Запись: И ] < 1 \
27
Mii« " / f. - to ? :
> |н.|>*|№ 27 Ц
Рис. 10.21. Выделение записи в форме
3. Теперь нажмите клавишу Delete. Сначала появится предупреждающее сообщение. Вы можете подтвердить или отменить удаление. Если вы нажмете кнопку Да (Yes), запись будет удалена, и в форме отобразится следующая запись.
Работа с данными с помошью формы
3I
Удалять записи в форме можно только в том случае, если свойство формы Разрешить удаление (Allow Petition) имеет значение Да (Yes). Кроме того, напоминаю, что нельзя удалить запись из главной таблицы, если она имеет связанные записи в подчиненной таблице и если при описании связи между этими таблицами не был установлен флажок каскадного удаления.
Кнопки панели инструментов Рассмотрим панель инструментов Режим формы (Form View), чтобы понять, какие шде возможности существуют при работе с формой. Панель инструментов Реж и м формы (Form View) приведена на рис. 10.22,
Рис. 10.22. Панель инструментов Режим формы
Слева, как всегда, расположена кнопка Вид (View), которая позволяет переключать режимы работы с формой. Кроме того, вы видите кнопку печати. Значит, форму можно печатать. Далее идет кнопка Предварительный просмотр (Preview). Нажмите ее, чтобы посмотреть, как будет выглядеть форма при печати. Кнопка Орфография (Spelling) обеспечивает возможность проверки орфографии в данных, заносимых в текстовые поля. Дальше вы видите хорошо знакомые кнопки копирования и вырезания, а также сортировки, фильтров и поиска. Действительно, в форме можно выполнять все операции с данными, которые мы применяли к таблице, открытой в реж,ше таблицы. Чтобы копировать значения полей из одной записи в другую, пользуйтесь кнопками копирования и вставки. Если нужно скопировать сразу несколько полей, используйте Буфер обмена 1 . Сортировка записей в форме выполняется так же, как и в таблице. Установите курсор ввода в нужное поле и нажмите кнопку сортировки: по возрастанию или по убыванию. Записи в форме будут отсортированы по значениям этого поля, причем установленная сортировка сохраняется и после того, как форма будет закрыта. ЗАДАНИЕ Отсортируйте записи в форме Издания по полю Наименование в алфавитном порядке. Закройте форму и снова откройте ее. Листая записи в форме, убедитесь, что сортировка сохранилась.
Фильтры устанавливаются так же, как в таблице. Вспомните, что он вызывается командой Правка > Буфер обмена Office. Вы можете поместить в буфер обмела значения 24 нолей.
2.
Занятие 1 0. Оформление формы и ввод данных через форму
ЗАДАНИЕ Установите курсор ввода в поле Раздел и выделите значение в этом поле, например, Философия. Нажмите на панели инструментов кнопку Поиск по выделенному (Filter by Selection), чтобы установить фильтр. Убедитесь, что в области линейки прокрутки отображается слово Фильтр (Filtered) {рис. 10.23). Снимите фильтр, нажав кнопку Удалить фильтр (Remove Filter).
Издательство; ' JA'tcpopa " -
•-•
'
'.т^гншаний!. JKMira
Место :фэие»~г(: ]Большая комната ,£f 1|ен«: I :пз,г,ор7
Местолуагмадаиш jcnf
_£j
no-cyntwi
:
^
- Тип обложка ]*естк^
2. ЛН.1995 Чие/Ю ЛрзнШ!
Трактат одного из основателей христианского богословия, Оригена, является переой попыткой дать систематическое описание христианского учения
Зйгисы И.1.Л.П
2 fLiilit*] *с ^(ИКчпйтр}
Рис. 10.23. Установка фильтра по выделенному
4- ,- г. , г ; J
^?(!.Т^уЧ~^'|и"'л' С!^' "^О:1!*4- уС":.-
Т' •
Рис. 10.24, Установка фильтра по форме
Работа с данными с помошью формы
э! J
Имеется возможность фильтровать записи не по одному полю, а по комбинации значений в разных полях. Для этого нажмите на панели инструментов кнопку Изменить фильтр (Filter by Form). Вид формы изменится — в нижней части формы вместо кнопок перехода показываются я р л ы ч к и Найти (Look for) и Или (Or) (рис. 10.24). В любом из полей формы можно установить условие отбора записей. Нижний ряд ярлычков относится к главной форме, а верхний — к подчиненной. Можно комбинировать условия отбора, объединяя их функциями И, ИЛИ. Выберите в ноле Раздел значение Философия и щелкните на ярлычке Или (Or) в нижнем ряду. Теперь выберите в поле Раздел значение История и снова щелкните на ярлычке Или (Or). Выберите в поле Раздел значение Искусство и нажмите кнопку П р и м е н и т ь фильтр (Apply Filter). В форме показано, что отобрано 9 записей и, листая, можно просмотреть каждую из них. Поиск нужной за]шеи легко выполнить с помощью кнопки Найти (Find). В этой форме книгу удобнее всего искать по наименованию. ЗАДАНИЕ Установите курсор ввода в поле Наименование и нажмите кнопку Найти (Find). В диалоговом окне Поиск и замена (Find and Replace) введите условие поиска (рис. 10.25). В поле со списком Совпадение (Match) выберите значение "Слюбой частью поля" (Any Part of Field) и нажмите кнопку Найти далее (Find Next). Будет найдена запись, которая содержит образец поиска в названии издания в виде подстроки. Найденная запись будет отображена в форме, и название книги будет выделено. Ш Издания: форма
по истории России историч
•Раздел:
Издательство: " {Правда . -••
!
-
Год издания; j
Место публикации; [Москва
Издание;
МЁКШ Хранения; [Меленькая комнат^ Цена: ("''"'IjOripr '• Дага ГШуПкл;
Рис. 10.25. Поиск записи в форме
314
Занятие 10. Оформление формы и ввод данных через форму
т
Если нужно найти книгу по автору, удобнее сделать это аналогичным образом в форме КарточкаАвтора, то есть сначала найти автора по фамилии, а затем в списке книг этого автора найти нужную книгу.
Еще две кнопки позволяют добавить запись [V*] и удалить ее [^].
Подведение итогов Итак, созданы почти все формы, необходимые для работы нашего приложения Библиотека. Вы научились: • • • • • • •
создавать форму без помощи мастера; использовать список полей для создания элементов управления формы; форматировать элементы управления и надписи к ним; выравнивать размеры и положение элементов управления; создавать фоновый рисунок для формы; изменять и создавать стили оформления форм; вводить и изменять данные с помощью формы.
Нужно еще создать форму для ввода данных о выдаче и приеме книг. Мы сделаем это на Занятии 13, когда познакомимся с макросами. Тогда же мы вернемся к форме Издания и усовершенствуем ее работу.
Часть V Отчеты и страницы
\\\\
s \ Ч '• л
>;•>?-'
ИМ! £и 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 <=[Конец периода] или эквивалентное ему выражение Between [Начало периода] And [Конец периода]. 8. Щелкните правой кнопкой мыши на верхней панели окна запроса и выберите в контекстном меню пункт Параметры (Parameters). В открывшемся диалоговом окне Параметры (Parameters) введите два параметра: [Начало периода] и [Конец периода] типа Дата/время (Date/time). Запрос готов. Он должен пыглядеть как на рис. 11.6.
326
Занятие 11 - Создание и печать отчетов
9. Протестируйте его, переключившись в режим таблицы кнопкой Вид (View). 10. Сохраните запрос в базе данных под именем ДатаЦена.
.Vor,.,-.-",-:.-.
.
Супча: Цепа Издания
Гол: РогтаНГДата
ДатаПокупки Издания
Месяц 1 Format'!" Дз
1?
0
НопевМесаца: Рогг -«•
Ж по возрастанию
>"[Начало периода] 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. Добавление уровней группировки в отчет
<ж '-Дуд
Г Г
Г
г Г
Рис. 11.8. Определение итоговых значений в отчете
7. Переключатели в этом же окне позволяют указать, хотим ли мы видеть в отчете только итоговые данные или все данные. Оставьте переключатель по умолчанию и нажмите кнопку ОК. 8. На следующем шаге нужно выбрать вид макета. Выберем макет блок (Block) и перейдем к следующему шагу. 9. Выберите стиль .Полужирный (Bold). 10. На последнем шаге введите имя отчета Суммы покупок и нажмите кнопку Готово (Finish).
328
Занятие 11. Создание и печать отчетов
Будет создан отчет, открытый в режиме предварительного просмотра. Но сначала появятся диалоговые окна, приглашающие ввести дату начала и дату конца периода, за который вы хотите получить результаты. Будем считать данный отчет макетом и усовершенствуем его в режиме конструктора. Желаемый вариант отчета представлен на рис, 11.9.
•ШШшШ
® СцммыПокупок
ы
/^ЭЬь.
Суммы покупок с 01.01,1998
по 01.01.2004 ;
•ВВМК^^^^^ВКвв
Год
Месяц
JL99S
Май
Май Итоги з<1 M.iii (2 млписи! J1998 Сентябрь Сентябрь Итоги ы Сентябрь О. записи! Итоги ла 19*18 год (4 -uwincit) J1999 Сентябрь Сентябрь Сентябрь Итоги зл Сентябрь (3 записи! J1999 Декабрь Цекабрь ИтФГН ЗЛ Декабрь (2 зллиси) Итоги ja 1999 год (5 записей» |2000 Сентябрь Сентябрь
—г
Д«тгл покупки
Ц«на
14.05.1998 28.05.1998
125,00р 55,00р 180,00р. 58,90р. 124,00р. 182.90». 362,30». 43,00р. 50,00р. 74,00р. 167.00Р. И,00р. 150,00р. 161.00». 328.0ft|*. 102,00р. ,70,.рОр:
11.09.1998 21 09.1998
20.09.1999 21.09.1999 21.09.1999 12.12.1999 15.12 1999
15.09.2000 . 23,09 2000
;
*ii
Л
Рис. 11.9. Отчет Суммы покупок
Настройка отчета Суммы покупок 1. Чтобы перейти в режим конструктора, нажмите кнопку Вид (View) панели инструментов. В окне Конструктора сначала идет раздел Нижний колонтитул (Page Footer), а под ним — Примечание отчета (Report Footer). Печататься же на листе отчета они будут в обратном порядке: сразу под последней строкой отчета — итоговая сумма, а нижний колонтитул всегда выводится внизу страницы (рис. 11.11). Поэтому если вы будете помещать в эти разделы нестандартные данные (не те, что предлагает мастер), не путайте два этих раздела. В этом отчете используется уже много разделов: и заголовок, и примечание, и колонтитулы, и по паре разделов для каждой группы (рис. 11.10). В этом отчете в примечаниях к каждой группе выводятся итоговые данные по труп-
Создание отчета с несколькими уровнями группировки и вычисляемыми итогами
329
не записей. Заголовки групп имеют нулевую высоту, так как в них ничего не выведено. В примечании к отчету выводится итоговая сумма по всем записям, попавшим в отчет. SF Счммы покупок : отчет
mil ' ' • 1 • ' • г • i • з • i • 4 • i • 5 • i • e • i • 7 • i • з • ' • a • i • w • i • n • i • 12 • i • is • > • и • • • 15 • i • rc • > • 17 • < • it
Суммы покупок! •f Вархн» I
НоиерМесяЦл
|^«сяи|
Щата п)>купк|1;
Ценл Ш
Рис. 11.10. Отчет Суммы покупок, созданный мастером
Рис. 11.11. Нижний колонтитул и примечание отчета
Подкорректируем созданное мастером. Сначала нужно удалить из отчета столбец НомерМесяца. Он был введен только ради правильной сортировки
330
Занятие 11. Создание и печать отчетов
записей. В запросе это поле останется, поэтому сортировка будет выполняться корректно, даже если мы удалим соответствующий элемент управления в отчете. 2. Выделите поле НомерМесяца в области данных и надпись к нему в области верхнего колонтитула и нажмите клавишу Delete. 3. Переместите и расширьте остальные столбцы так, чтобы между ними не было пропусков. Настройка столбцов должна выглядеть как на рис. 11.12.
< ~ \
* Верхний лЬгюнтнтул
|
:
Год 1
Ценл! L
- •; ;
# Эзголсихч : группы 'НоисрМесзц-з'
* С.-&ПЛ--В л«>1*-.^
1
Щата покуш |Г
:Н«|сяц
# Заголовок Группы Тйд'
.
Год | |мф-яи j •# Примечание группы ИоиёрИесяиа' . . . ,;
-
:
у .-> i у i -" !
; -;
||]атаПокупк ;
Рис. 11.12. Настройка столбиов в отчете
1
^
:
J
Вокруг данных в этом отчете будут вы водиться рам ки. Чтобы отчет вы глядел красиво, нужно чтобы рамки плотно прилегали друг к другу. Для этого перемещайте элементы управления мышью или воспользуйтесь свойством От левого края (Left) на вкладке Макет (Format) окна Свойства (Properties). Значение этого свойства для каждого последующего (слева направо) элемента управления должно равняться значению это го свойства у предыдущего элемента плюс его Ширина (Width).
4. Кроме того, размер шрифта всех элементов в области данных увеличен, чтобы эти данные лучше были видны. Это можно сделать с помощью панели инструментов Формат (форма/отчет) (Formatting (Form/Reports)), использовавшейся при форматировании форм, или установкой значения свойства Размер шрифта (Font Size ) для этих элементов у п р а в л е н и я . 5. Можно увеличить и размер шрифта для всех элементов в разделах примечаний групп. Далее изменим положение элементов в разделах примечании групп. Сначала поработаем с элементами в разделе Примечание группы 'НомерМесяца' ('НомерМесяца' Footer). Ш
(К'ИтоГи jifi.4 ".A '."H
*при^^^^ШШ Ц
:*_!№
№
Рис, 11.13. Оформление разделов примечании групп
6. Сократите ширину элемента, в котором написано длинное текстовое выражение, так, чтобы оно заканчивалось у правого края элемента управления
Создание отчета с несколькими уровнями группировки и вычисляемыми итогами 331
ДатаПокупки, и на освободившееся место переместите элемент управления Поле (Text Box), сейчас размещающийся во второй строке. Удалите несвязанную надпись Sum, которая также помещается на второй строке (рис. 11.13). Обратите внимание, что при выборе надписи Sum рядом с ней появи- L*,.£J лась кнопка с восклицательным знаком. Это смарт-тег (smarttag). Если подвести указатель мыши к стрелке на этом значке, появляется сообщение: Это новая метка, не связанная ни с одним элементом управления (This is a new Label and is not associated with a control). Этот значок, как и на форме, предупреждает о возможной ошибке. Такой значок-кнопка может появиться при работе в любом месте, и всякий раз он будет сигнализировать о возможной ошибке. Если вы работали с Excel 2002 или Word 2002, этот значок вам знаком. Теперь такая функция появилась и в Microsoft Office Access.
7. Аналогичные операции проделайте с элементами управления в разделе П р и мечание группы 'Год' ('Год' Footer). 8. Немного уменьшите высоту этих разделов, переместив вверх нижнюю границу каждого раздела.
Вычисляемые поля в отчете Поля, которые помещены в примечания групп, являются вычис.чяемыми. Значения этих полей вычисляются с помощью заданного выражения. Разберем, как это выражение задается. 1. Выделите длинную строку со строковым выражением в разделе Примечание группы 'НомерМесяца 1 ('Номер месяца' Header) и посмотрите на свойства этого элемента управления в окне Свойства (Properties). Раскройте вкладку Д а н н ы е (Data).
| события 1 Другие } -
.......
е«
J
"Итоги ли- '"- Т •««=•[ "•-
' ••
[Hoi •.'•'•
i-тствует
Рис. 11.14. Свойства вычисляемого поля
Это элемент управления Поле (Text Box), но в качестве значения свойства Д а н н ы е (Control Source), в котором для связанных полей указывается имя поля в базовой таблице или запросе, здесь-стоит знак равенства (=) и выражение (рис, 11.14). Чтобы рассмотреть это выражение, нажмите сочетание клавиш Sfift+F2. Оно представляет собой конкатенацию строковых выражений и вычисляемых значений. Нам требуется изменить это выражение:
332
Занятие 11. Создание и печать отчетов
D Во-первых, вместо поля НомерМесяца нужно выводить поле Месяц. П Во-вторых, нужно постараться сформулировать это предложение в соответствии с правилами русского языка, При вычислении этого выражения, если функция Count(*), подсчитывающая число записей в группе, возвращает значение 1, будет выводиться слово «запись», во всех остальных случаях выводится слово «записей», что, мягко говоря, неправильно. Нужно выводить слово «запись», если будет возвращено и 21, и 31, и 101 и т. д. запись. Кроме того, если число записей оканчивается на 2, 3 или 4, нужно выводить слово «записи» — и не забыть про 11, 12, 13 и 14. 2. Поэтому введите в диалоговое окно Zoom (Область ввода) выражение: ="Итоги за " & [Месяц] & " {" & CountC*) S " " & IIf((Len(Count(*))>l And LeftCRight(Count(*):2):l)=l Or (Right(Count(*);l)>4));"записей":llf(RightCCount(*)";l)=l; "запись";"записи")) & ")" и нажмите кнопку ОК. В этом выражении используются функции Right() и Left(), которые позволяют вырезать подстроку из строки, а также функция Len(), определяющая длину строки. Следующее вычисляемое поле в этом разделе суммирует значения в поле Цена для всех записей одного месяца. Его значение определяется выражением =5ит([Цена]). 3. Измените выражение, которое является источником данных для итогового поля в разделе П р и м е ч а н и е группы Тод' ('Год' Footer): ="Итоги за " & [Год] & " " & "год " & " (" & CountC*) & " " S Hf((Len(CoLint(*))>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! (
.-•<-.,•,.,•, .•.-,:,. ^^--,» ,-.щ
JHer
Рис. 11.15. Диалоговое окно Сортировка и группировка В диалоговом окне определены две группы. В первом столбце указывается поле 1 запроса , по которому будут группироваться данные. Во втором столбце указывается порядок сортировки в группе. В нижней части окна устанавливаются значения свойств группы, которые определяют, как будет выполняться группировка. В ячейки Поле/выражение (Field/Expression) окна Сортировка и группировка (Sorting and Grouping) можно вводить нетолько названия полей, ной выражения, то есть группировка может выполняться по значению выражения. Выражения используются со знаком равенства (=), как в свойствах форм и отчетов. В диалоговом окне два уровня группировки. Первый уровень определяется полем Год. Свойства Заголовок группы (Group Header) и Примечание группы (Group Footer) имеют значение Да, что говорит о наличии соответствующих разделов в отчете. В области выделения строк, соответствующих уровню группировки, отображается специальный символ группировки. Второй уровень группировки будет выполняться по полю НомерМасяца. Этот уровень является вложенным. Таких уровней вложенности в Microsoft Office Access 2003 может быть до 10. Следующие три свойства группы используются, как уже говорилось, для определения того, как выполняется группировка и как группы размещаются на странице отчета. Обратите внимание: именно поле запроса, а не элемент управления отчета.
334
Занятие 11. Создание и печать отчетов
Свойства Г р у п п и р о в к а (Group On) и Интервал (Group Interval) определяют, каким образом должны быть сгруппированы данные. Значения свойства Г р у п п и р о в к а (Group On) зависят от типа данных поля, по которому выполняется группировка. Если поле является текстовым и каждому значению поля должна соответствовать отдельная группа, свойство Группировка (Group On) должно иметь значение По полному з н а ч е н и ю (Each Value), а свойство Интервал (Group Interval) устанавливается равным 1. В нашем примере для поля Год, которое является текстовым в силу применения для его вычисления функции Format(), эти свойства установлены именно так. Можно начинать новую группу всякий раз при изменении первого или нескольких первых символов текстового поля. Тогда свойство Г р у п п и р о в к а (Group On) должно иметь значение По п е р в ы м с и м в о л а м (Prefix Characters), а свойство Интервал (Group Interval) будет определять, сколько символов будет использоваться для образования новой группы. Если это значение равно 1, группы будут создаваться для каждой буквы алфавита, и в результате можно получить отчет типа предметного указателя в книгах. Примером такого отчета может быть алфавитный список читателей библиотеки, когда все читатели группируются таким образом, что в одну группу входят все читатели, фамилия которых начинается с буквы А, затем все читатели, фамилия которых начинается с буквы Б, и т. д. Для числового поля НомерМесяца мы установили значение свойства Группировка (Group On) равным По полному з н а ч е н и ю (Each Value), а значение свойства Group Interval равным 1, так как группировка в данном примере выполняется по каждому значению поля Н о м е р М е с я ц а . Однако можно группировать данные и по диапазонам значений. В этом случае нужно установить значение свойства Групп и р о в к а (Group On) равным значению Интервал (Interval), а значение свойства Интервал (Group Interval) определяет интервал группировки. Например, если числовое поле содержит возраст человека, то значение 5 свойства Интервал (Group Interval) будет определять диапазоны возрастов от 0 до 4, от 5 до 9, от 10 до 14 и т. д. Для поля типа Дата/Время (Data/time) свойство Группировка (Group On), кроме значения по умолчанию По п о л н о м у з н а ч е н и ю (Each Value), может принимать следующие значения: Год, Квартал, Месяц, Неделя, День, Час, Минута. Значение свойства Интервал (Group Interval) определяет число выбранных единиц измерения в диапазоне. Например, если значение свойства Группировка (Group On) установлено равным Месяц и (Интервал Group Interval) имеет значение 1, данные будут группироваться помесячно. ЗАДАНИЕ Из сказанного видно, что отчет можно было бы построить иначе, на базе более простого запроса. Попробуйте сделать это в качестве самостоятельного задания.
Свойство Не разрывать (Keep Together) позволяет указать, каким образом группы будут размещаться на странице. Если группы небольшие, значение этого свойства нужно установить равным Полную группу (Whole Group). Тогда на одной
Создание отчета с несколькими уровнями группировки и вычисляемыми итогами
335
странице будут выводиться только полные группы, то есть заголовок группы, все записи из области данных и примечание группы, а если вся группа не помещается на текущую страницу, она начнет печататься с новой страницы. Если группа содержит много данных и они не помещаются на одной странице, значение этого свойства устанавливают равным Первую область д а н н ы х (With First Detail). В этом случае на текущей странице размещаются заголовок группы и. по крайней мере одна строка. Если же они не помещаются, вся группа переносится на следующую страницу. Если значение этого свойства установлено равным Полную группу (Whole Group), а вся группа не помещается на одной странице, это свойство будет проигнорировано.
Свойство Не разрывать (Keep Together) для группы должно быть согласовано с аналогичным свойством раздела отчета. Например, если в группе значении свойства Не разрывать (Keep Together) установлено равным Полную группу (Whole Group), то значения свойства Не р а з р ы в а т ь (Keep Together) соответствующих разделов отчета должны быть Да. В противном случае приоритет имеет свойство, заданное в окне Сортировка и г р у п п и р о в к а . Сам отчет также имеет свойство Неразрывная группа (Grp Keep Together), которое может иметь значения На странице (Per Page) и В сголбце (Per Column/Row). В первом случае группа печатается полностью на странице, а во втором — в колонке (полосе) отчета. Кроме того, что мы задали два уровня группировки для отчета, можно еще определить порядок сортировки в пределах самой внутренней группы. Введем для нашего отчета в третью строку окна Сортировка и г р у п п и р о в к а поле Дата Покупки, чтобы отсортировать строки в пределах месяца по возрастанию дат (рис. 11.16). Обратите внимание: если вы не установили значения свойств Заголовок группы (Group Header) и Примечание группы (Group Footer) равными Да (Yes), группы не образуются, и значка группировки у третьей строки пет. Закройте окно Сортировка и группировка (Sorting and Grouping).
По возрастанию По возрастанию По возрастанию
Рис. 11.16. Добавление сортировки в отчет
336
Занятие 11. Создание и печать отчетов
Внедрение рисунка Заголовок отчета можно украсить рисунком. Мы уже использовали фоновый рисунок в форме. В отчет добавим рисунок в виде логотипа. Для этого можно использовать элементы управления Рисунок (Image) или Свободная рамка объекта (Unbound Object Frame). Выбор типа элемента управления определяется тем, собираемся ли мы менять этот рисунок, не выходя из отчета. Если менять его не нужно, лучше использовать элемент управления Рисунок (Image), в противном случае предпочтительнее вставить его с помощью свободной рамки объекта. Тогда чтобы открыть приложение, в котором создавался рисунок, достаточно двойного щелчка на этом рисунке. В случае логотипа можно использовать элемент управления Рисунок (Image). 1. Сначала переместите заголовок отчета ближе к центру страницы, чтобы освободить левый верхний угол. 2. Нажмите на панели элементов кнопку Рисунок (Image) Щ. 3. Поместите указатель на заголовок отчета и очертите им рамку таких размеров, каким вы хотели бы видеть рисунок. Появится стандартное окно выбора файла рисунка. 4. При установке Microsoft Office 2003 много рисунков размещается в папке \Program FHes\Microsoft Office\MEDIA\CAGCATlO. Выберите в списке эту папку и в ней любой понравившийся рисунок (рис. 11.17). Нажмите кнопку ОК.
;)J0211349,WMF |»jJOg1 2213 WMF J 021.2661 .WMF
*^021 5086 WMF i*j)J021..6516.WMF laijj 0215588. WMF
Рис. 11.17. Добавление рисунка в отчет
Рисунок появился в рамке. Установите свойства этого элемента управления. Эти свойства аналогичны свойствам фонового рисунка.
Создание отчета с несколькими уровнями группировки и вычисляемыми итогами
33/
5. Значение свойства Тип рисунка (Picture Type) лучше установить равным Внед р е н н ы й (Embedded). Значение свойства Установка размеров (Size Mode) — В п и сать в рамку (Stretch). В результате отчет должен выглядеть как представлено на рис. 11.18. 6. Протестируйте его и убедитесь, что он работает правильно. Вы можете задать и фоновый рисунок для отчета. Отчет имеет те же свойства, определяющие фоновый рисунок, что и форма. Добавить его в отчет нужно так же, как и в форму. СчимыПакчпок : отчет
ll -
6 • i • 7 • I • 8 ' г • Э • i • W • i • 11 • I • 12 ' i • 13 • I ' M ' I ' IS • I • 16 • i • 17 •
СУММЫ ПОКУПОК
J
Год | I I J ! ДМф:яц •f Пригечен-тепэуппы Мом^Тесяцэ' ;: •" ]
*Д" " Л JPage]i'& " off' rat'j'y отчета. Hi or i
Рис. 11.18, Отчет Суммы покупок в режиме конструктора
Отображение в отчете значений параметров Отчет СуммыПокупок создан на базе запроса с параметрами. Очевидно, было бы полезно вывести в отчете значения параметров, которые вводит пользователь, когда открывает отчет. 1. С помощью кнопки панели элементов создайте в заголовке отчета два текстовых поля, расположите их по горизонтали и в качестве подписи для первого поля введите с, а для второго поля — по (рис. 11.19). Это будут два свободных элемента управления, 2. Отформатируйте эти поля, установив цвет и шрифт заголовка отчета. 3. В окне Свойства (Properties) раскройте вкладку Д а н н ы е (Date) и выделите первый из созданных элементов управления.
ЭО
Занятие 11. Создание и печать отчетов
СУММЕ ПОКУПОК
V
* . 1! .П.,:.;!' I 1,/frrV.i 'Hi.'!-;. :- JL(
Рис. 11.19. Вывод значений параметров в отчете
4. Установите значение свойства Д а н н ы е (Control. Source) равным =[Начало периода]. 5. Выделите второй элемент управления и установите значение свойства Данные равным =[Конец периода]. Таким образом, в качестве источника данных для этих элементов вы ввели наименования параметров базового запроса, иными словами -- указали ссылки на параметры запроса. Ввести значения нужно точно так, как эти параметры были введены в окне Параметры запроса. Квадратные скобки и знак равенства обязательны.
6. Откройте отчет Б режиме предварительного просмотра и проверьте, что в этих полях в заголовке отчета выводятся те значения параметров, которые вы вводите. 7. Закройте отчет.
Использование подчиненных отчетов
339
Использование подчиненных отчетов По аналогии с составными формами, содержащими подчиненные формы, можно предположить, что составные отчеты тоже используются для печати данных таблиц, связанных отношением «один-ко-многим». Однако это не совсем так. В большинстве случаев для отображения данных связанных таблиц не требуется внедрять подчиненные отчеты, и мы в этом убедились на предыдущих примерах. Основное достоинство подчиненных отчетов в том, что с их помощью можно разместить на странице отчета самую разнообразную информацию в удобной форме, чего невозможно добиться, если прямо создать сложный запрос, включив в него данные многих таблиц. Ниже приведены примеры применения составных отчетов. 1, Главный отчет представляет собой контейнер, в который включаются один или несколько подчиненных отчетов из несвязанных таблиц. В этом случае главный отчет может содержать только надписи и вычисляемые элементы, а не базироваться на какой-то таблице. Впрочем, такая ситуация возможна и с составной формой. 2, Иногда итоговые данные в документе требуется представить в виде отдельной таблицы наряду с детальными данными. В этом случае группировки записей с итоговыми данными недостаточно, нужно создать подчиненный отчет, который выведет итоговые данные в требуемом виде. 3, Группировка в отчетах Access является очень мощным механизмом, который позволяет обрабатывать данные самыми разными способами. Однако только при использовании подчиненных отчетов можно создать группы, которые содержат две и более подгруппы данных, то есть отчеты Access допускают два уровня вложенности подчиненных отчетов. Причем на любом уровне можно вставить в главный отчет не только подчиненный отчет, но и подчиненную форму. Создадим составной отчет на базе таблиц Читатели и Ф о р м у л я р ы и отобразим в нем книги, которые взяты и не возвращены читателями. При этом главный отчет можно создать на базе таблицы Читатели, а для подчиненного отчета необходимо создать запрос. Этот запрос в режиме конструктора представлен на рис. 11.20. В нем отбираются все книги, находящиеся на руках у читателей. Создайте этот запрос самостоятельно и назовите его ЧитательФормуляр. Приступим к созданию главного отчета с помощью мастера. 1. Щелкните на ярлыке Создание отчета с помощью мастера (Create report by using Wizard) и выберите в списке Таблицы и запросы (Tables/Queries) таблицу Читатели. 2. Выберите для отчета поля Фамилия, Имя и Отчество. 3. Задайте порядок сортировки по полю Фамилия, макет отчета Табличный (Tabular), стиль Деловой (Corporate).
340
Занятие 11. Создание и печать отчетоо
КодИзданчя КодЧитателя
{одРаэдепа Название
ДатаЛ о лучения
ГОдИздания <одИз дате пьет ва
Код^татег Формуляры
• ! . . :
,
а
.
Автор: авторы
га
Название £*£• Издания
Дат эПо пучения Формуляры по возрастанию
|
Я
ДатэВозврата Формуляры
• ••
^
ДэтгвозвратаФает
-г"
Формуляры
?""
0
f
0 Is Mull
Устюга .-;•••=.;••. L
-*-* — .. -.-^
„:„;
<1 :!
>ii
Рис. 11.20. Базовый запрос для подчиненного отчета
4. На последнем шаге введите имя отчета Формуляры читателей и установите переключатель Изменить макет отчета (Modify the report's design). Отчет откроется в режиме конструктора (рис. 11,21). 5. Удалите все элементы управления ил раздела Верхний колонтитул (Page Header) и уменьшите его высоту до 0. Отчет!:отчет 3 • i ' И • i • II • i • 12 • i • 13 • ' • 14 • i • !5 • i • 16
.. I
Формуляры читателей
Рис. 11.21. Главный отчет в режиме конструктора
6. Выделите все элементы в разделе Область данных (Detail), увеличьте для них размер шрифта до 12 и сделайте его полужирным. 7. Подгоните высоту элементов под новый размер шрифта двойным щелчком на нижней границе.
Использование подчиненных отчетов
34 1
8. Переместите вниз нижнюю границу области данных, чтобы в ней можно было поместить подчиненный отчет (рис. 11.22), Для создания подчиненного отчета будем использовать мастер подчиненных форм/отчетов. 9. Выберите на панели элементов элемент управления П о д ч и н е н н а я форма/отчет (Subform/Subreport) и, поместив указатель в раздел Область д а н н ы х (Detail) ниже полей, содержащих данные о читателе, очертите им прямоугольную область для подчиненного запроса. (Кнопка мастера элементов должна быть нажата.) Отчет!:отчет •
Б ' I ' 7 • I
* Заголовок OT
Формуляры читателей
CITZIpifflT j—,—i—i—L
Рис. 11.22. Добавление подчиненного отчета в область данных 10. В первом диалоговом окне мастера выберите переключатель Использовать имеющиеся таблицы и запросы (Use existing Tables and Queries). Нажмите кнопку Далее (Next). 11. Во втором диалоговом окне нужно определить, какие поля требуется включить в подчиненный отчет. При этом поля в общем случае можно выбирать из нескольких таблиц и запросов. В данном случае нужно в поле Таблицы/Запросы (Tables/Query) выбрать в списке запрос ЧитательФормуляр, а затем включить в отчет все поля запроса, поместив поле КодЧитателя последним. Поле КодЧитателя нужно включить, чтобы мастер смог связать главный и подчиненный отчеты. Впоследствии мы его удалим из отчета. 12. В следующем окне мастера нужно определить поля связи между главным и подчиненным отчетами. Поскольку связи у нас определены по всем правилам, мастер самостоятельно определяет эти поля, поэтому нужно просто принять предложенное по умолчанию значение в списке и перейти к следующему шагу.
342
Занятие 11. Создание и печать отчетов
13. На последнем шаге нужно указать имя отчета п о д ч и н е н н ы й отчет Формуляры читателей и нажать кнопку Готово (Finish). Поле Подчиненный отчет (Subreport) создается в главном отчете. 14. Выделите присоединенную к этому полю надпись и удалите ее. Выделите само поле и найдите в окне С в о й с т в а (Properties) свойство Т и п г р а н и ц ы (Border Style). Выберите в списке значение для этого свойства Сплошная (Solid) (рис. 11.23). :
£& Подчиненная Форма/отчет: тдаинаниый отчет Фермуяиры чи*аг«дей & 1
Сиб^тич | ,,..,.
/.
,"° Q,996CMv
.
l'.:f;9-itn ;£Г"?5см . •= обычное
Высока . . . , Тип границы , ., ,, Швс^а fpas«woi , ; > U$et f p*»=uts ,
Ctepxi
Рис. П.23. Свойства элемента управления Подчиненная форма/отчет
15. Протестируйте отчет и убедитесь, что он работает правильно, но заголовки столбцов оказались обрезанными (рис. 11.24). Ш Ч*ормчляр отчета
Вольман Автор
Наталья Название Понедельник наминаете я в субботу
Вольман Автор
Наталья Название
Сергеевна юлуч&шя возврата, «и возвращена Чиггкеп&а С6 102000 13.102000
ВольманНатал
Михайловна юдуч&шя возврата ки возвращена Читатель
Петрарса Френче Африка
23092000
1110.2000
Лихач ее Дмитрий Поэзия садов
25.092000
25.10.20СО
ВольманНатал Вольман
J
Нота
л
м
Рис. 11.24. Отчет Формуляры читателей
16. Закройте отчет, сохранив все изменения макета. 17. Откройте подчиненный отчет в режиме конструктора. Удалите из него иоле КодЧитателя и заголовок соответствующего столбца.
Использование подчиненных отчетов
343
18. Сдвиньте поля с датами на освободившееся место и расширьте поле Название. 19. Выделите поля Автор и Н а з в а н и е (именно поля, а не надписи столбцов — не перепутайте) и установите для них значения свойств Расширение (Can Grow) и Сжатие (Can Shrunk) равным Да. 20. Увеличьте высоту раздела Заголовок отчета (Page Header) и отформатируйте размешенные в нем надписи (рис. 11.25). Р подчиненный отчет Формуляры чнтагвПей ; отчет 1 . i • 2 ' 1 • 3 ' I • 4 • 1 • 5 • 1 • 6 • 1 ' 7 • i ' 8 ' 1 • Э • i • 10 • i • 11 • i ' !2 • 1 • 13 ' 1 > 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>| и з<1 Или (2 записи) 1998 | Сентябрь Сентябрь Итоги л л Свнтч1)|1ь J2 зйпнси) Итоги зл 1Я9Я год (4 записи) 1999 Сентябрь Сентябрь Сентябрь Итоги t» Сентяоуь |3 записи) 1999 1 Декабрь Декабрь И т о г и зл Декабрь 0 з<1 мкм) Итоги аа KI9S год {5 записей) _ .?ППЛ . Ircwmfinh
^j^j[ ^;_._,|.'.'j_j@j jj
- - " -
• iij
J
по 01012004
Месяц
|
|
Суммы покупок
\'7^
1998
jjj
"• ;• •
349
Дат л покупки 1405.199S 2 S 0 5 199S
11.0? 199E 21.09 1998
Цена 125,00р. j 55,00р. 180.01}!!. 5S,9Qp. 1 IHQQp
182 .Wit.
12 12 1999
.Ш.90|>, •UDCp 5D,OOp 74,DOp t
15 12 1999
:
2009 1999 21 09 1999 21 09 1999
161.00».
r™
зге .во».
±1
Рис. 11.31. Отчет, открытый в программе Просмотр снимков
Если программа Просмотр снимков на вашем компьютере не установлена (при стандартной установке Access), то при попытке открыть файл снимка она будет загружаться с дистрибутивного диска. Поэтому, возможно, вы получите предложение о необходимости вставить в дисковод дистрибутивный диск.
Просматривать страницы отчета можно с помощью кнопок панели навигации на нижней границе окна просмотра. Там же расположена кнопка печати — крайняя справа. Щелкните правой кнопкой мыши на области отчета, вы увидите контекстное меню с командами, дублирующими функции кнопок панели навигации, и команду Масштаб (Zoom). С помощью этой команды можно увеличивать или уменьшать изображение страниц отчета в окне просмотра. Основное меню программы очень простое. Оно включает всего, несколько команд. Естественно, это команды открытия, закрытия и печати файлов и команда О т п р а в и т ь (Send), которая позволяет пересылать снимки отчетов по электронной почте. 4. Выберите команду Файл > О т п р а в и т ь (File > Send). Появляется окно Outlook с сообщением, в котором вложен файл отчета (рис. 11.32). 5. Заполните нужные поля и отправьте сообщение. Получатель сообщения может дважды щелкнуть на значке файла отчета, чтобы запустить просмотр снимков и открыть в нем отчет.
350
Занятие 11. Создание и печать отчетов 3$ Отчет о покупках 'Сообщение (Оемчнмй TEKCJ) " Шййкз; i Формат - Сджис :.*.,.-:-
&.ИЙСТРИЯ
.J f Jt ^ - UJ §•,<•
Справка
-^ . f.
-
-
I. :", f .. ^1.' Л Педапетры..
'Рычкое Владимир Николаевич
Тема;
; Отчет о покупках
Вложить...
: РШСумныП.жупок:,5Пр f 13 Кбайт!
Параметры влечении,
Рис. 11.32. Отправка снимка по электронной почте
Чтобы обеспечить регулярную рассылку отчета, можно создать макрос и связать его со специальной кнопкой панели инструментов. Мы создадим такую кнопку на Занятии 13. Как и в случае с веб-страницами, можно обеспечить доступ другим пользователям к отчету, используя корпоративный веб-сайт. Для этого при сохранении снимка отчета сразу положите его в папку на вашем веб-сайте. Тогда, чтобы его могли просмотреть другие пользователи, на главной веб-странице нужно установить ссылку на этот отчет. Например, если отчет находится в папке \\Website\ Inetpub\wwwroot\Webreports, нужно установить ссылку <А HREF-"http://Webs1te/WebReports- / CyMMbi покупок.5Пр">Отчет «Суммы покупок»А>
Когда пользователь щелкнет на ссылке, в окне Internet Explorer активизируется программа просмотра снимков, и пользователь увидит отчет. Для этого нужно, чтобы на компьютере пользователя эта программа была установлена. Сделайте так, чтобы пользователь мог загрузить ее с этого же сайта. Опытные разработчики могут использовать элемент ActiveX Snapshot Viewer (SNAPVIEW.OCX). При установке программы Просмотр снимков (Snapshot Viewer) он по умолчанию устанавливается в каталог Program FUes\Common Files\Microsoft Shared\Snapshot Viewer. Нужно встроить этот элемент на веб-страницу с помощью тега Object. В этом случае устанавливать программу просмотра на компьютер пользователей не нужно.
Подведение итогов
351
Подведение итогов Это занятие было посвящено созданию отчетов. Вы научились: • создавать отчеты с помощью мастера; • группировать данные в отчете и выводить итоговые суммы как по группам, так и по отчету в целом; • внедрять в отчет рисунки; • создавать составные отчеты, включающие подотчеты; • просматривать отчеты и печатать их, настраивая параметры страниц; • создавать статические веб-страницы и снимки, которые можно переслать для просмотра по электронной почте или выложить на веб-сервер. Все отчеты (как, впрочем, и большинство форм) мы создавали с помощью мастера и почти ничего не создавали вручную. Рекомендуется так же поступать и в дальнейшем. Мастера позволяют очень сильно сэкономить время при разработке приложения, и в конструкторе стоит только что-то подправить или добавить. Свой интеллект целесообразнее потратить на проектирование структуры ба;;ы данных и интерфейсных элементов, а мастера могут размещать элементы управления, связывать, группировать и выполнять другие рутинные работы.
ЗАНЯТИЕ 12
Страницы доступа к данным ТЕМА ЗАНЯТИЯ На этом занятия вы узнаете: • что собой предстанляют страницы доступа к данным; • как подключить существующую веб-страницу к базе данных Access; • как пользоваться страницами доступа к данным; • как создать простейшую страницу с помощью мастера автостраниц; • как создать страницу «с нуля» в режиме конструктора; • какие новые (по сравнению с формами и отчетами) элементы управления могут размещаться на странице доступа к данным; • как оформить страницу, чтобы она выглядела привлекательно.
Что такое страницы доступа к данным
353
Для выполнения упражнений этого занятия вам понадобятся два файла: Библиотека.mdb, в котором вы создаете свое приложение, и Библиотека2003.тс]Ь, который содержит демонстрационный пример1.
Что такое страницы доступа к данным Страницы доступа к данным (Data Access Pages) представляют собой специальный тип веб-страниц, который обеспечивает веб-интерфейс к данным в 6a:ie данных Access или MS SQL Server (версии 6.5 и выше). Отличие страниц доступа к данным от остальных объектов Access в том, что каждая страница представляет собой отдельный файл в формате HTML, а в файле базы данных Access хранятся только ссылки на эти файлы. Страницы доступа к данным — альтернатива стандартному интерфейсу форм и отчетов, хотя по своей функциональности и внешнему представлению они им пока еще уступают, но уже не столь значительно, как это было в Access 2000, когда они впервые появились. Они имеют одно очень сильное преимущество перед формами и отчетами, а именно — для работы с этими страницами достаточно иметь на рабочем месте только программу просмотра веб-страниц (Internet Explorer), и вовсе не обязательно устанавливать Access. Очевидно, это позволяет значительно расширить круг пользователей приложения, разработанного в среде Access. При разработке страниц доступа к данным рекомендуется установить на Internet Explorer версии 5.5 или выше, так как только эти версии программы обеспечивают полную поддержку возможностей разработки и просмотра страниц. Создавать страницы доступа к данным можно не только в среде Access, но и любыми другими средствами разработки веб-интерфейса, но как вы уже могли убедиться, Access имеет для каждого из своих объектов специальный конструктор, предоставляющий в распоряжение разработчика много простых средств разработкиСтраницы доступа к данным могут использоваться не только для отображения данных из таблиц базы данных, как простые HTML-страницы, но и для ввода, и для изменения данных, и для анализа. В зависимости от решаемой задачи можно выделить три типа страниц. • Для просмотра данных в интерактивном режиме. Такие страницы являются аналогом отчетов Access, так как предназначены для объединения и группировки сведений, хранящихся в базе данных, и отображения их в режиме просмотра. Но, в отличие от отчетов, они более динамичны — на них могут
in " на сайте издательства www.piter.com -L Примеры вы можете найти на странице, посвященной этой книге. 12 Зак. 680
354
Занятие 12. Страницы доступа к данным
размещаться кнопки, которые позволяют сортировать и фильтровать данные, они могут разворачиваться и сворачиваться, чтобы показать данные выбранных групп. И, наконец, страницы доступа к данным можно рассылать по электронной почте таким образом, что пользователь, раскрыв сообщение, увидит текущие данные. • Для ввода и изменения данных. Этот тип страниц является аналогом форм, поскольку обеспечивает не только просмотр, но и изменение данных, и добавление новых записей. • Для анализа данных. Эти страницы содержат сводные таблицы, позволяя организовывать данные различными способами, удобными для анализа. Они могут содержать также диаграммы для графического представления различных закономерностей и тенденций. На данном занятии мы сначала посмотрим на уже готовые страницы, которые присутствуют в демонстрационном примере, а затем вы сами создадите некоторые из этих страниц.
Подключение существующей страницы к базе данных 1. Откройте базу данных Библиотека2003.тс1Ь. Чтобы вывести на экран окно базы данных, нажмите на панели инструментов кнопку Окно базы данных (Database Window) 2. Щелкните на ярлыке Страницы (Pages). Откроется список страниц доступа к данным (рис. 12.1). Как уже было сказано, значки в списке на самом деле являются только ярлыками, сами страницы должны при распаковке примеБи<Зяиотека2МЗ: база данных £чюрмат Асеев* 2GQQ)
Созаание страниаы доступа к данным в режиме конструктора Создание страниц доступа к данным с помощью мастера И зменен W суш ест еующ ей веб -ст р аницы Авторы Алфавитный каталог БезИсточшкаДанных ГраФи к Дата Цен а И здания
Тематический каталог |ЧигзтепИ:
Рис. 12.1. Страиииы доступа к данным в базе данных Библиотека2003
Подключение существующей странииы к базе данных
355
ра располагаться в папке AccessDataPages в том каталоге, куда вы скопировали пример. Ярлык содержит полный путь к соответствующей странице. Кроме того, сама страница содержит путь к базе данных, являющейся для нее источником. Поскольку вы скопировали файлы примера в каталог, который, скорее всего, отличается от каталога, используемого при написании книги, сразу открыть страницу вы не сможете. Все пути придется изменить. 3. Выделите ярлык Читатели и нажмите кнопку Открыть (Open) на панели инструментов окна базы данных. Появится диалоговое окно с сообщением о том, что нужный HTML-файл был перемещен, переименован или удален, и вам будет предложено указать новое местоположение страницы (рис. 12.2).
\
НТМ1."файл> м» который указывает ссылка, был перемещен, переименован или удален.
Шт» Рис. 12.2. Диалоговое окно с предложением указать новое местоположение странииы
4. Нажмите кнопку Обновить ссылку (Update Link) и в стандартном окне выбора файла укажите папку и файл страницы Читатели.htm. Страница будет найдена и откроется в режиме просмотра, но так как путь доступа к базе данных тоже неправильный, страница не будет содержать никаких данных, а в полях будут отображаться коды ошибок. 5. Кнопкой (Вид V i e w ) панели инструментов переключитесь в режим конструктора. Сначала появится сообщение о том, что не удается найти базу данных или объекты базы данных, на которые есть ссылки на странице. Нажмите кнопку ОК. Страница открывается в режиме конструктора. Теперь нужно настроить для нее параметры подключения к источнику данных. 6. В тфавои части окна конструктора появляется панель Список полей (Field List), в которой отображается строка подключения — полный путь к базе данных Библиотека2003.тс!Ь (рис. 12.3). Значок справа перечеркнут красным крестом, значит, подключение к источнику данных не произошло. 7. Щелкните на кнопке Свойства подключения для страницы (Page Connection Properties) га. Откроется диалоговое окно Свойства подключения к данным (Data Link Properties) с раскрытой вкладкой П о д к л ю ч е н и е (Connection), на которой вы видите ту же строку (рис. 12.4). 8. Задайте в этом поле правильное имя и местоположение файла с данными (можно воспользоваться кнопкой построителя, отображающей стандартное окно открытия файла).
356
Занятие 1 2. Странииы доступа к длнным
' I MHi'm niijj«
", '.< j..::i
Наши читатели
Свойства полключгчия для страшны
Для того чтобы записаться в библиотеку нажмите кнопку добавления новой зап! и введите данные о себе. Сохранение д а н н ы х происходит при переходе на друп записи или закрытии страницы
, Рис. 12.3. Страница доступа к данным в режиме конструктора
™лмяумттятшилт9втмУ1
*J
ziptcifv ihe following io i onnied.ta Access dele: .1. Seleci w enter *,&>«Ьзи name: . ' р-\Ас200С\Екагг1р1е\Библиотека20СШггЛ
^Л
2 Enta iribmafon :a .og ЕЛ lo IhfedalAabe: . Uiftt name:
ssword :' f™ Afow|aving password
TEE! Ccnnediwv
Рис. 12.4. Диалоговое окно свойств связи с данными
Использование странии доступа к данным
35 i
9. Проверьте возможность подключения, нажав кнопку Проверить подключение (Test connection). Если все в порядке, нажмите кнопку ОК. Тогда на этой панели будет отображаться список таблиц и запросов базы данных Библиотека, mdb. 10. Выполните команду Файл > Сохранить (File > Save), чтобы сохранить измененные параметры подключения. Сведения о подключении страницы сохраняются в ее свойстве Connect! on String. Его значение можно изменять непосредственно в окне свойств страницы доступа к данным. Еще одним вариантом подключения страницы к источнику данных является файл подключений. Файл подключений — это специальный файл, который содержит все данные, необходимые для подключения. При использовании файла подключений имя этого файла хранится в свойстве страницы ConnectionFile. При открытии страницы читается соответствующий файл подключений, и на основании его данных выполняется подключение страницы к источнику данных. Могут быть использованы два формата файла подключений: • UDL (Universal Data Link) — стандартный файл для подключения к любому источнику данных OLE DB. Содержимое этого файла можно просматривать и изменять с помощью программы Microsoft Data Link. • ODC (Office Data Connection) — специальный файл для подключения к источнику данных Microsoft Office, в том числе к Access и к SQL Server. Этот файл использует языки HTML и XML, и его можно просматривать и изменять с помощью любого текстового редактора. Преимущество этого способа в том, что вы можете использовать один файл подключений для всех страниц, которые получают данные из одного источника: базы данных Access, таблицы Excel, базы данных Microsoft SQL Server. При изменении местоположения источника данных не нужно перенастраивать каждую страницу, как мы только что делали, достаточно отредактировать файл подключений. Для создания файла подключений можно воспользоваться мастером подключения данных. Мы создадим такой файл в конце данного занятия,
Использование страниц доступа к данным 1. Нажмите кнопку Вид (View), чтобы переключиться в режим просмотра страницы. На экране появится страница, представленная на рис. 12.5. Как видите, эта страница очень похожа на соответствующую форму. Как и обычная форма, она позволяет просматривать записи о читателях, изменять их и добавлять новые записи. В нижней части страницы размещается панель перехода по записям. Она похожа на соответствующую панель в форме, во всяком случае, те же кнопки имеют то же назначение, но на ней размещены
358
Занятие 1 2. Странииы доступа к данным
и кнопки панели инструментов формы: сортировки, фильтра по выделенному, удаления и сохранения записи. 2. Нажмите кнопку добавления записи Поля ввода очистятся, и вы сможете вводить новую запись. 3. Введите данные о читателе так, как вы вводили их в форму (перемещение по полям выполняется клавишей Tab). 4. Когда ввод будет закончен, нажмите кнопку сохранения записи Запись будет сохранена в таблице Читатели. Если вы не хотите сохранять новую запись или изменения, сделанные в текущей записи, воспользуйтесь кнопкой Отмена 1*|Н.
Наши читатели Для того чтобы записаться в библиотеку нажмите кнопку добавления новой записи и введите данные о себе. Сохранение данных происходит при переходе на другую записи или -закрытии страницы. Фамилия
I Бушнанова]
Имя
Ир ина
Отчество
j
ГодРожд Адрес
J197 |улТ~Хасанская 6^-3-109
Телефон Читатели 1 из 7
МИ |:М
Рис. 12.5. Странииа доступа к данным
Чтобы установить фильтр на отображаемые записи, установите курсор в нужное поле ввода страницы и нажмите кнопку Фильтр по выделенному ^Чл'. Соседняя кнопка, так же как в форме и в таблице, используется для снятия фильтра. И,наконец, кнопка используется для удаления записи. К сожалению, на этой панели отсутствует такая удобная кнопка, как Поиск — поиск нужной записи можно выполнять только с помощью фильтра. 5. Откройте с помощью Проводника Windows папку с демонстрационным примером, найдите файл Читатели.htm и дважды щелкните на нем. Запустится программа просмотра веб-страниц, и вы увидите страницу (рис. 12.6).
Использование странии доступа к данным
359
итатели - MicrosoftInternet Explorer File
Edit
View
Favorites
Toois
Hek Search
*\' :"J Favorites
Ы1р Media
Д-
^sJdrjsa ;$3j С:\1ша'1Ас2003\СЫг\Чнтатели.Ыт
Наши читатели Для ТОГО чтобы записаться в библиотеку нажмите кнопку добавления новой записи и введите данные о себе. Сохранение данных происходит при переходе на другую записи или закрытии страницы Фамилия Имя Отчество
j Бушманова | Ирина
ГодРожд
[ 7J
Адрес
19
S
[ул._Хасанская 6-3-109
Телефон ^ * Г
Читатеп/i 1 из 7
>• И 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
'-'.<
•• ; Ste' V;: ! v v : ==•;. ••-•* «•£ *&=:• * - j ^ HI ^ j-raj'•* . iir,;
v .
-
-:
•• .; *
;..;• Ш w • ^
:
- '
Рис. 12.8. Страница доступа к данным с диаграммой
Создание автостраницы
361
в Access, не разрешалось выполнять редактирование данных со страницы, которая содержала группировки. В Microsoft Office Access 2003 это ограничение снято, Теперь разработчик может запретить или разрешить изменение данных на страничках с группировкой, устанавливая свойства уровня группы. На рис. 12.8 изображена страница доступа к данным, которая включает диаграмму, отображающую изменение сумм, затраченных на покупку книг, по датам. Такие страницы обычно используются для анализа и выявления закономерностей и тенденций. Диаграмма связана с базой данных, и при изменении этих данных происходит соответствующее изменение диаграммы. Диаграмма может быть связана со сводным списком или электронной таблицей, размешенными на той же странице. В этом случае диаграмма меняется при изменении сводного списка или электронной таблицы.
Создание автостраницы Познакомившись с тем, что представляет собой страница доступа к данным, создадим такую страницу. Самый простой способ — средство автоматического создания страницы. 1. Откройте файл базы данных Библиотека.mdb и раскройте список страниц. 2. Нажмите кнопку Создать (New) панели инструментов окна базы данных. Появится диалоговое окно Новая страница доступа к д а н н ы м (New Data Access Page) (рис. 12.9). Новая страница достщи к данным мИКонструктор ilf'l Существующая веб-страница
• с Полями, ЕЙСПО ложе иными в один сто лбе». " -
- I I - И -.:•:.-. Т'.-.
Рис. 12.9. Диалоговое окно Новая странииа доступа к данным 3. Выделите элемент Автостраница: в столбец (Autopage: Columnar).
4. Б раскрывающемся списке выберите имя таблицы Авторы, которая будет использована в качестве источника данных для страницы, и нажмите кнопку ОК.
362
Занятие 12. Странииы доступа к данным
чилия: Год рождения Год смерти Место рождения Образование: Заметки:
Позднеантичный ученый и философ, "последний римлянин"
Рис. 12.10. Автостраница Авторы
Подождите немного, и на вашем экране отобразится такая страница (рис. 12.10). На ней разве что не хватает красивого заголовка, и нужно слегка подправить размеры, Во всем остальном это вполне законченная страница, с которой сразу же можно работать. |р Б и 6 ли отек а : база данных (формат Access 2QUO)
. - -[Создание страницы доступа к данным в режиме конструктор< Создание страницы доступа к данным с помощью мастера Изменение существующей веб-страницы Авторы
Рис. 12.11. Ярлык доступа к странице Авторы
Создание страницы с помошью мастера
363
5. Нажмите кнопку Сохранить (Save) панели инструментов Макет страницы (Page Design). Появится диалоговое окно выбора папки и имени файла для сохранения страницы в формате HTML. Введите в поле Имя файла (File Name) наименование файла Авторы. Сначала появится информационное сообщение о том, что путь к базе данных задан абсолютный, а значит, эта страница не будет корректно работать с другого компьютера. 6. Нажмите кнопку ОК. Страница будет сохранена в файле с заданным именем (с расширением .htm), а в базе данных появится одноименный ярлык для доступа к ней (рис. 12.11). 7. Закройте окно со страницей. Итак, вы создали первую карточку. Однако так можно создавать только очень простые страницы. Например, если попытаться так же построить страницу для ввода и отображения записей таблицы Издания с многими полями, в том числе и полями со списками подстановки, страница с длинным столбцом полей вас вряд ли устроит. В таком случае лучше воспользоваться мастером или конструктором.
Создание страницы с помощью мастера Мастер страниц доступа к данным предоставляет более широкие возможности, чем автоматическое создание страниц. С его помошью можно создать страницу па основе полей из нескольких таблиц или запросов, использовать группировку и сортировку записей. Мы создадим страницу для просмотра каталога библиотеки. Группировку данных организуем по разделам, поэтому будем считать, что создается тематический каталог. Для этой страницы построим запрос Книги по разделам. 1. Откройте в режиме конструктора запрос Книги по авторам. Добавьте в него таблицу Разделы. Вставьте в бланк запроса в качестве первого столбца поле Раздел из этой таблицы (рис. 12.12). 2. Выберите команду Файл v Сохранить как (File t Save As) и сохраните запрос под именем Книги по разделам. 3. Закройте запрос и раскройте список страниц, щелкнув на ярлыке Страницы (Pages). 4. Дважды щелкните на ярлыке Создать страницу доступа к данным с помощью мастера (Create data access page by using wizard). Появится первое диалоговое окно мастера. На этом шаге требуется выбрать источник данных для страницы: одно или несколько полей из одной или нескольких таблиц или запросов в базе данных. 5. Выберите запрос Книги по разделам в раскрывающемся списке Таблицы и запросы (Tables/Queries).
364
Занятие 1 2. Страницы доступа к данным
& Книги по разделам ; запрос на выборку
КсдРаздела КодАвтара Имя
КодАвтора
ФЗМИЛИЯ
КодИздания
Название ГодИздания КсдИэдательства
ГодРрждения |^
1
1
КодГорода
КодРаздепа Раздел
f
Г
КодГорода Город
I i
:
'
| | • | ,.s .- ; j,i
". -.
Раздел Разделы no возрастанию 0
Автор: [Фаиипи по возраст SHU ю
Название Издания по возрастанию
0
город Города
0
Издательство Издательства
В
Е)
Я:ГЮЕ;|*Й отбора; I WM!-. 1^1-
•§?
ш
-
>г
' -
Рис. 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 ТипИщанкя [Т) Заметки Издательства
]М Л: | ,<Ы Щ | I ^ | J -5 »• . '4 | | :.. | .^ \ П И
11 f ! -I. ^ ll'l 11'11:111
1 " 11 • Я1
Рис. 12.19, Странииа доступа к данным после добавления поля Раздел
Создание и изменение страниц доступа к данным в режиме конструктора
3/1
и введите имя файла, в котором она должна быть сохранена; Издания,htm. Нажмите кнопку Сохранить (Save). 2. В диалоговом окне Список полей (Field List) найдите таблицу Издания и щелкните на значке «+» слева от ее имени. Раскроется список лолей этой таблицы. 3. Выделите поле Название и нажмите кнопку Добавить на страницу (Add To Page). На странице появится элемент управления Текстовое поле (Text Box), связанный с полем Название, которое становится для этого элемента управления источником данных (рис. 12.19). Обратите внимание, что после добавления этого поля на странице появился новый раздел КнопкиПерехода (Navigation), в котором помещается панель кнопок перехода по записям таблиц].!, в данном случае таблицы Издания. Сам раздел стал связанным. Источником данных для него теперь служит набор записей И з д а н и я , о чем свидетельствует заголовок. Список всех разделов страницы можно увидеть, если щелкнуть па стрелке спраиа от названия основного раздела Издания. Р1зменение размеров элементов управления на странице, как и многие другие операции, выполняется аналогично тому, как это делается в формах и отчетах. Заметим только, что при перемещении элемента управления всегда перемещается вместе с присоединенной к нему надписью, а надпись можно переместить независимо от элемента. ЗАДАНИЕ Разместите на странице остальные поля таблицы Издания. При этом можно ориентироваться на изображение страницы на рис. 12.20, поскольку именно так она должна выглядеть в конце работы. При добавлении остальных элементов управления на страницу можно просто перетаскивать их мышью в нужную область раздела.
Обратите внимание, что поле Тип и з д а н и я представлено на странице элементом управления Поле (Text Box), хотя это поле в таблице Издания задано как поле подстановки. Причем остальные поля подстановки представлены элементом управления Раскрывающийся список (Dropdown List). Поле Тип издания отличается от других тем, что источник данных для него — Список з н а ч е н и й (Value List). Конструктор не умеет создавать для него Раскрывающийся список (Dropdown List). Сделаем это с помощью мастера 1 . жч>р
Перед выполнением следующего упражнения убедитесь, что кнопка Мастера (Control Wizards) на панели элементов нажата.
Тем более что в упражнениях при создании форм мы не создавали самостоятельно поля со списками и списки.
372
Занятие 1 2. Странииы доступа к данным
Названии: Год издамся: Тоге 1 IMecто публикации: Издательство: ^Типиздания!
Издание: I Тип обложки!_ ЦвНа:''] Число страниц:
Место хранения:
Дата покупки:
Заметки:
V.G);
Рис. 12.20. Страница доступа к данным Издания в режиме конструктора
Создание элементов управления Раскрывающийся список 1. Удалите элемент управления Т и п и з д а н и я , выделив его и нажав клавишу Delete. 2. Нажмите кнопку Раскрывающийся список (Dropdown List) на панели элементов. Щелкните на странице доступа к данным на свободном месте для размещения нового элемента управления. Появится диалоговое окно Создание полей со списком (Combo Box Wizard) (рис, 12.21). 3. На первом шаге необходимо определить источник данных для списка. В данном случае мы должны ввести значения списка, поэтому установите переключатель Будет введен ф и к с и р о в а н н ы й набор значений (I will type in the values that I want). 4. На следующем шаге нужно ввести значения списка. Введите в столбец значения книга, журнал, газета (рис. 12.22) и перейдите к следующему шагу. 5. В последнем окне нужно ввести текст, который будет надписью для создаваемого поля. Введите Тип и з д а н и я и нажмите кнопку Готово (Finish). На странице появится изображение поля со списком и надписью около него. 6. Увеличьте ширину поля, перетащив мышью его правый край. В отличие от элемента управления Поле со списком (Combo Box) формы, элемент управления Раскрывающийся список (Dropdown List) страницы доступа к данным не может содержать более двух столбцов. Поэтому нам придется изменить поле со списком Место х р а н е н и я (сейчас в нем отображается только номер комнаты).
Создание и изменение странии доступа к данным в режиме конструктора
373
Создание пояей со списком
Рис. 12.21. Первое диалоговое окно мастера создания полей со списком
. -
Рис. 12.22. Второе диалоговое окно мастера создания полей со списком
ЗАДАНИЕ Создайте запрос на основе таблицы МестаХранения, в котором определите вычисляемое поле, являющееся конкатенацией значений трех полей таблицы (рис. 12,23).
Изменение свойств элементов управления Закроем страницу, сохранив при этом все изменения. Откроем ее вновь. Чуть позже станет понятно, зачем это понадобилось. 1, Выделите элемент управления Место хранения и нажмите кнопку Свойств;! (Properties) на панели управления Конструктор страниц (Page Design). Откроется
374
Занятие 12. Страницы доступа к данным
т Мест аХрвненияЗапрос: запрос на выборку
_„__-___„.
• •
_„
КодМеста Имятабпмцьг МестаХранения
и
Место; комната а " " а шкаф а " " а полкг 7-^
по возрастанию
0
D
• или:
Ы
I йШ
.ibL. Рис. 12.23. Запрос Места Хранен и я Запрос
Ш Diopdown List : КодМеста Данные
Друпф :
место Л Набор записей:
Рис. 12.24. Свойства элемента управления Dropdown List
2. диалоговое окно со свойствами элемента управления Раскрывающийся список (Dropdown List) (рис. 12.24)1. 3. Раскройте вкладку Data (Данные), Теперь нужно изменить ряд свойств. 4. Во-первых, в качестве значения свойства ListRowSource (Источник строк) нужно указать только что созданный запрос. Выберите в списке значение МестаХраненияЗапрос. (Если бы мы не открыли форму вновь, этот запрос не появился бы в списке, так как мы создавали его уже после того, как страница была открыта в режиме конструктора. Поэтому и пришлось закрыть ее и открыть вновь.) 5. Свойство ListDispLayFieLd (Отображаемое поле) указывает, какое поле будет отображаться в списке (можно отобразить не более двух полей). Мы должны отображать поле Место. Выберите его в списке. К сожалению, окно свойств страниц доступа к данным не русифицировано.
Создание и изменение страниц доступа к данным в режиме конструктора
375
6. Свойство ListBoundField (Связанный столбец) показывает, значение какого поля списка должно сохраняться в таблице Издания. Выберите поле КодМеста. Создание страницы закончено, попробуем ее тестировать. 1. Нажмите кнопку Вид (View) на панели инструментов, чтобы переключиться в режим просмотра страницы, и попробуйте полистать записи на странице (рис, 12.25). Попробуйте добавить запись или удалить. I о Издания
:
'~ г»£ ;^ я -:*.£.:'li".v • . < • • - ; • • • ' , - . -<• :- ,•;> г '-. ^ *' е .у ;. о л_Ш
—
Название:
"Утешение философией" и другие трактаты] .
Раздел:
Годиздания:
Москва Издательство:
Заметки:
iQQp
Наука
Издание: Тип обложки: | жесткая
_*j
Тип издания Место хранения:
|
Том:
Число страниц: Большая комната Сервант Туи5а £_|
|
Дата покупки:
;
4Н оГоЫ991"
В книгу включены важнейшие философские произведения поз д мер им с кого мыслителя Анмция Манлия Торквата Северина Боэция 33 (ок. 430-525 гг.). "Комментарий к Порфирию" и теологические трактаты в переводе на русский язык переводятся впервые. Б £$ Издания! of 25 "
> -. И *• »Х Щ " '> ^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 <
Разпел Автор
A I ^ 1 V/ Ъ7 УЛ *l ~f *
»
М *
»Х
.й,. •* J. \ U >;.
Рис. 12.26. Странииа Тематический каталог, созданная с помощью мастера Разберемся, как управлять сортировкой и группировкой записей на странице. Панель инструментов Макет страницы (Page Design) очень похожа на панель инструментов Конструктор отчетов (Report Design), но на ней появилось несколько новых кнопок: Г
--ФЛ — Повысить уровень (Promote); <. ; - Понизить уровень (Demote); — Группировать по таблице (Group by Table).
Чтобы добавить уровень группировки, нужно выделить присоединенный элемент управления (поле, связанный HTML и проч.) — назовем его элементом группировки — и нажать кнопку Повысить уровень (Promote). Чтобы сгруппировать данные не по одному выделенному полю, а по всем полям содержащей его таблицы, нужно нажать кнопку Группировать по таблицам
378
Занятие 12. Странииы доступа к данным ( G r o u p by Table). При этом будет автоматически добавлено нужное количество уровней группировки. Чтобы убрать группировку или соединить два раздела группировки в один, нужно выделить элемент группировки (поле или другой элемент) и нажать кнопку Понизить уровень (Demote). При добавлении на страницу нового уровня группировки появляется новый раздел, называемый заголовком группы. Автоматически туда помещаются элемент группировки и маркер развертывания структуры. Этот маркер имеет вид маленькой кнопки со значком «+».
ЗАДАНИЕ В данном случае у нас уже добавлено нужное число уровней группировки, однако вы можете попробовать повысить или понизить уровни группировки для элементов управления на странице Тематический каталог и протестировать страницу, чтобы увидеть, как будут изменяться при этом данные. В конце упражнения вы должны установить уровни группировки в первоначальное состояние. Настройка уровней группировки на странице выполняется не в специальном окне Сортировка и г р у п п и р о в к а (Sorting and G r o u p i n g ) , как это делается в форме или отчете, а в окне Свойства уровня группы (Group Level). 2. Щелкните правой кнопкой на заголовке самого верхнего уровня Книги по разделам-Раздел и выберите н контекстном меню команду С в о й с т в а у р о в н я г р у п п ы (GroupLevel). Появится окно свойств (рис, 12.27). Необходимо изменить некоторые параметры этой группы: П Значение свойства Раздел кнопок перехода (Record Navigation Section) установите рапным Ложь (False). Это позволит удалить панель кнопок перехода для внешней группы со страницы. Удаляйте со страницы ненужные панели перехода по записям, чтобы она не напоминала лестницу с большим количеством ступенек. Иначе пользователи будут в них путаться. D Значение свойства Размер страницы доступа (Data Page Size) автоматически установится равным Все (АИ), чтобы при открытии страницы отображались названия всех разделов библиотеки. '"^
Эти два параметра связаны между собой: если вы не хотите отображать панель перехода по записям, второй параметр должен иметь значение Все, чтобы отобразить все группы, иначе нельзя увидеть последние группы. По умолчанию же предлагается отображать только несколько первых групп.
D Убедитесь, что значение свойства Развернуто по у м о л ч а н и ю ( E x p a n d e d by Default) установлено равным Л о ж ь (False) 1 . Это означает, что при открытии страницы маркер развертывания данной группы будет иметь значок
Обычно так устанавливается значение этого свойства но умолчанию.
Создание и изменение странии доступа к данным в режиме конструктора
3/ 9
«+», и записи, входящие в группу, отображаться не будут. Такая страничка будет отображаться быстрее. ШГ GioupLevel: Книги по разделам Раядек
,,
1 ,, |Труппа^миги та .pas делам-Р .;";'. ,5 !,".. Пожь '. -
. , , . Ложь __ ',..,£'. .->'. ,-...'., Иетта ... I > ;&; dscEachValue Истина^ Щшожь
Рис. 12.27. Свойства уровня группы
i 3. Аналогично установите свойства уровня группы для группы Книги по разделам-Автор.
Л. И, наконец, щелкните на заголовке самой внутренней группы Книги по разделам и раскройте для нее свойства уровня группы. Изменим структуру этой группы, установив соответствующие значения параметров. Все издания в этой группе представим в виде таблицы. D Установите значение Истина (True) для свойства Раздел подписей (Caption Section). Над заголовком группы появится новый раздел — Captions (Подписи). В этом разделе помещается обычно столбцов группы. D Свойство Размер страницы доступа (Data Page Size) нужно установить равным 10, чтобы при развертывании группы Авторы одновременно отображалось не более 10 записей об изданиях. D Порядок сортировки внутри группы установлен правильно — по полю Название. Обратите внимание, что среди свойств уровня группы есть три уже знакомых вам свойства — Allow Additions (Разрешить добавление), Allow Deletions (Разрешить удаление) и Allow Edits (Разрешить изменения) (см. рис. 12.27). Теперь разработчик может, устанавливая значения этих свойств, создавать странички либо только для просмотра, либо для ввода и изменения данных. Когда в группе включены поля из разных таблиц, тогда изменения разрешены только для полей одной таблицы; имя этой таблицы должно быть указа но в свойстве UniqueTable соответствующего раздела страницы.
D Перенесите в раздел Подписи (Captions) все надписи из раздела Заголовок: Книги по разделам, расположив их по горизонтали. Поля данных этой группы
380
Занятие 12. Страницы доступа к данным
также необходимо разместить на одной линии по горизонтали. Сделать это не очень просто, так как, к сожалению, на странице нельзя перемещать (как, впрочем, и удалять) поле без связанной с ним надписи. Но можно отдельно переносить (и удалять) надпись. Поэтому придется перемещать поле вместе с надписью, и когда оно уже окажется на нужном месте, перенести надпись в раздел Подписи. Попробуйте подвигать все эти элементы управления — вы должны получить картину, аналогичную той, что представлена на рис. 12.28. D Уменьшите высоту группы К н и г и по разделам, выделив эту группу, щелкнув на заголовке и перетащив нижний маркер изменения размеров вверх. (S Тематический кагаяог : странице доступа к да«иым':
:Н 1
Ьмгивйг.кЫ» rto йа^яИ
Книги по разделан |0-|1 и-
V и ^ -KK'% •> |i if^* ?• jg
Рис. 12.28. Добавление раздела Подписи на страницу
5. Пользуясь панелью инструментов Формат (страница) (Formatting (page)), настройте параметры отображения элемента управления — размер элемента управления, шрифт, размер шрифта, цвет текста — как вам захочется. Обращаю ваше внимание на использование именно панели инструментов,так как в окне свойств элемента управления, конечно же, есть соответствующие свойства, но почему-то не для всех свойств есть раскрывающиеся списки значений. Например, такого списка нет у свойства Тип границы (Border Style).
6. Удалите надписи к элементам группировки в двух внешних группах: Книги по разделам-Раздел и К н и г и по разделам-Автор. 7. Можно изменить значок, который помещается на маркер развертывания по умолчанию. Щелкните на маркере внешней группы и в окне свойств выберите в списке значение свойства Src. В нашем примере выбрано значение Черная стрелка.
Создание и изменение страниц доступа к данным в режиме конструктора
381
Кроме тех стандартных значков на маркере, которые предлагаются в списке, можно поместить туда любой другой рисунок. Для этого нужно иметь два файла с рисунками — один должен содержать рисунок для маркера в развернутом состоянии, а другой — в свернутом состоянии. В ячейке, соответствующей значению свойства Src, нужно ввести путь и имя файла, содержащего свернутый рисунок. Кроме того, должно быть выполнено соглашение об и менах этих файлов — файл с развернутым рисунком должен иметь то же имя, что и файл со свернутым рисунком, но с постфиксом «expanded», например, cross.gif и crossexpanded.gif. Естественно, что маркеры в каждой группе могут иметь свои значки.
Щелкните на тексте Название страницы в верхней части страницы (это элемент управления) и введите название Наша библиотека. После выполнения всех описанных действий страница приобретет вид, близкий к тому, что представлен на рис. 12.29. , Тематический каталог : страница достчпз к данным
Наша библиотека
J J .!:..-' '-if''-'.;'
М.„Г.<1,. |aVlff!iUF
Книги по разделай )0-f I па
Рис. 12.29, Странииа доступа к данным Тематический каталог в режиме конструктора
9. Переключитесь в режим Просмотр страницы (Page View) и посмотрите, как будет выглядеть созданная вами страница. Как она получилась у нас, видно H;I рис. 12.30. Теперь нашей странице не хватает только декоративных элементов, без которых веб-страницы не могут выглядеть привлекательно. Поэтому в качестве последнего упражнения мы попробуем оформить страницу должным образом. Так же как в формах и отчетах, Microsoft Office Access 2003 позволяет применит], к странице доступа к данным специальный шаблон оформления, только в данном случае он по традиции называется темой. Темы страниц содержат типовые варианты оформления страницы — фон, стили текста, графических элементов и т. п.
Занятие 1 2. Страницы доступа к л.шным
382
Наша библиотека
k
Искусство
k
История Адам
IИзбранная поэзия
н ж
L
-5
[Москва
'
I Панопапа
Книги по разделен ыз i
Пушкин Александр
.
Хайям Омар
Рис. 12.30. Страница доступа к данным Тематический каталог в режиме просмотра 1. Снова переключитесь в режим конструктора. 2.
Выберите команду Формат > Тема (Format > Theme). Появится диалоговое окно Тема (Theme) (рис. 12.31).
Арктша Атлас Бетон
Заголовок 1
Зесча Вода 'есивтричвская Голубая бездна Горизонт Декорация Д*нь ; Закругпени* Затмение Ирис <аньон Капсулы
^
• Маркированный список 1 •з Маркированный список 2 • Маркированный список 3 Горизонтальная линия.
Заголовок 2
Квадрант Кирпич Контраст
Рис. 12.31. Диалоговое окно Тема
Создание и изменение страниц доступа к данным о режиме конструктора
383
3. В списке Выберите тему (Select Theme) выделите тему, которую необходимо применить для страницы доступа к данным. На схеме Образец (Preview) отображается пример страницы, отформатированной при помощи выделенной темы. 4. Отметьте флажками дополнительные параметры форматирования, которые вы хотите применить к странице. 5. Чтобы для всех создаваемых страниц использовалась выделенная тема, нажмите кнопку По у м о л ч а н и ю (Default), а в появившемся окне нажмите кнопку Да (Yes). 6. Нажмите кнопку ОК. Тема будет применена к странице. Для каждого объекта страницы доступа к данным и для всей страницы можно определить сценарий поведения — процедуру, аналогичную процедуре обработки событий в формах. Эти процедуры пишутся на языках JavaScript или Visual Basic Script (последний является упрощенным вариантом Visual Basic для приложений и используется для создания модулей Access). Чтобы создать сценарий, нужно щелкнуть правой кнопкой на элементе управления или на странице и выбрать команду Редактор сценариев (Script Editor). Запустится приложение Microsoft Script Editor, в котором и происходит создание сценариев для страниц доступа к данным. Однако описание процедур создания сценариев выходит за рамки нашего курса. & Тематический каталог
Наша библиотека гь-1 Детская литература } Дрзматургия v Искусство ь,
Истерия
ь,
Поэзия
k . ПСИХОЛОГИЯ
ь
Религия
k-- Фантастика .ь; Филоссфм
Рис. 12.32. Страница Тематический каталог, открытая в Internet Explorer
384
Занятие 1 2. Странииы доступа к данным
7. Заключительным штрихом в этом примере будет добавление на страницу доступа к данным горизонтальной линии для того, чтобы отделить заголовок от области данных. Для этого нажмите кнопку Линия (Line) панели элементов и нарисуйте линию под заголовком Наша библиотека. После этого сохраните страницу и откройте ее в программе Internet Explorer. На рис. 12.32 представлена получившаяся страница сразу после открытия, когда все группы еще свернуты.
Создание обособленной страницы
доступа к данным
В заключение занятия мы рассмотрим, как можно создать обособленную страницу доступа к данным и подключить ее к существующей базе данных, а также как работать с файлом подключений. 1. Закройте открытую базу данных Библиотека.mdb. 2. Нажмите кнопку Создать (New) и выберите в области -задач Создание файла (New File) строку Пустая страница доступа к д а н н ы м (Blank Data Access Page). Появится диалоговое окно Выбор источника данных (Select Data Source) (рис. 12.33). По умолчанию к этом окне отображается папка Мои источники данных (My Data Source). Как правило, именно здесь хранятся все необходимые файлы подключений. У нас пока нет файла подключений к базе данных Библиотека.mdb, который мы создаем. Мы будем создавать его с помощью мастера подключения данных (Data Connection Wizard).
[и|+Нов ре подключение к SQL-сервер у, ос щ+Подключение к нсесшу источнику данных.ode
JJJ
-
С'^ДЭть>,.,
'St'.-JBce источники^ данных (*,odc: .*.1"Ш! ,££<<.. .... »^АЯ .
Рис. 12.33. Выбор источника для странииы доступа к данным
Создание обособленной страницы доступа к данным
Зо5
3. Нажмите кнопку Создать (New Source), запустится мастер, и на первом шаге будет предложено выбрать тип источника данных, к которому будет подключена данная страница. 4. Выберите пункт Д о п о л н и т е л ь н о (Other/advanced) и перейдите к следующему шагу. 5. На следующем шаге появляется диалоговое окно Data Link Properties (Свойства подключения к д а н н ы м ) с раскрытой вкладкой Provider (Поставщик данных) (рис. 12.34). На ней необходимо выбрать провайдера OLE DB, который будет обеспечивать связь с источником данных. Источником данных в нашем случае будет являться база данных Access. Поэтому выберите пункт Microsoft Jet OLE DB Provider и нажмите кнопку Next (Далее). BS Data Link Piopeitiet j (j.-<-к*,:,, l . t-o..* ЁЁШШф iW|n| щ* -«'•• '- •' '•••
Microsoft Jei 4.0 OLE DB Provider Microsoft OLE DB Provider for SQL Server
Рис. 12.34. Диалоговое окно Свойства связи с данными
6. Откроется вкладка Connection ( П о д к л ю ч е н и е ) этого же окна, где нужно выбрать базу данных, которая будет служить источником данных для страницы. Нажмите кнопку построителя справа, в диалоговом окне Выбор базы данн ы х Access (Select Database Access) выберите файл Библиотека,mdb и нажмите кнопку ОК. 7. Снова появится окно мастера с перечнем таблиц и запросов этой базы данных. Нажмите кнопку Далее (Next). 8. В последнем окне мастера введите имя файла подключений в поле И м я фай/.а (File Name): Библиотека.ode и нажмите кнопку Готово (Finish).
386
Занятие 1 2. Странииы доступа к данным
9. Файл подключений будет создан и появится в диалоговом окне Выбор источн и к а данных, Чтобы просмотреть содержимое этого файла, нужно щелкнуть на нем правой кнопкой и выбрать в контекстном меню команду Открыть с (Open With): укажите Блокнот (Notepad) (рис. 12.35). Файл откроется в текстовом редакторе, и вы сможете посмотреть его содержимое.
Выбор источника данных ...1 J. * Орет;"
Рис. 12.35. Просмотр файла подключений
10. Найдите тег со строкой подключений, которую можно изменить, если, например, файл Библиотека.mdb будет перемещен в другую папку. 11. Закройте Блокнот и вернитесь в окно Выбор источника данных. 12. Нажмите кнопку Открыть (Open). Будет открыта среда Access, а в ней пустая страница в режиме конструктора (рис. 12.36). На этой странице будет создан один несвязанный раздел, и с пей можно работать дальше. Обратите внимание, что кнопка Окно базы данных (Database Window) панели инструментов закрыта, и открыть базу данных Библиотека.mdb в данном режиме нельзя. При этом, однако, полностью действует конструктор страниц доступа к данным, в списке полей можно видеть все таблицы и запросы базы данных Библиотека.mdb, которые будут источниками данных для разделов странички, и открыта панель элементов. 13. Сохраните созданную страницу командой Файл > Сохранить как (File > Save As) под именем Новая страница и закройте ее.
Создание обособленной страницы доступа к данным
Зо/
•CfcQ (^Страница! . страница доступац данным
Список пивай
Рис. 12.36. Обособленная странииа доступа к данным в режиме конструктора 'Э Страница! - Mictosolt Internet Qnploie( - (Автокопнан работа] •
I -Адрес; «SQ\|[inaVkc2003\Ch12VHo6aflCTpaHHua.htm
ой компь-отер
Рис. 12.37. Обособленная странииа доступа к данным в окне Internet Explorer
14. Найдите эту страницу и папке и щелкните на ней дважды, Страница откроется в окне Internet Explorer (рис. 12.37).
388
Занятие 1 2. Страницы доступа к данным
Эта страница пока пуста. Чтобы можно было с ней работать, достаточно нажать кнопку П р а в и т ь в Microsoft Office Access панели инструментов Internet Explorer.
Подведение итогов На этом занятии мы рассмотрели одно из самых последних средств доступа к данным Microsoft Office Access 2003 — страницы доступа к данным. Вы научились: • создавать страницы с помощью мастера; • подключать к базе данных страницы, созданные ранее и, возможно, даже другими средствами; • создавать с помощью конструктора страницы как для ввода и изменения данных, так и только для просмотра; • создавать с помощью мастера раскрывающиеся списки; • настраивать параметры группировки разделов страницы; • просматривать страницы, как в окне базы данных Access, так и в Internet Explorer. Разумеется, мы рассмотрели далеко не все средства создания страниц доступа к данным, однако если вы проделали все примеры этого занятия, вы сможете создавать простые страницы доступа к данным. Чтобы ваши страницы были более разнообразными и эффектными, включали такие элементы, как анимация и т. д., вам придется познакомиться и с редактором сценариев Microsoft Script Editor, и с языком разметки документов HTML, но эти вопросы уже выходят за рамки нашей книги.
Часть VI Настройка приложений
Ъ cCL £Ь яга ув
'
? <^-%>1 ?, с^^ г / •J-i^^if.
П|:
ЗАНЯТИЕ 13
Макросы
ТЕМА ЗАНЯТИЯ На этом занятии вы узнаете: • для чего используются макросы; • какие существуют макрокоманды; • как создать макрос и как его тестировать; • как связать макрос с событием в форме, которое он должен обрабатывать; • как использовать условия в макросе; • как создать группу макросов; • как с помощью макросов управлять поведением формы.
Что такое макросы
391
Для выполнения упражнений этого занятия вам понадобится только файл Библиотека, mdb, в котором вы создаете свое приложение. Откройте его перед началом занятия
Что такое макросы Кроме всех интерактивных средств, мастеров, конструкторов, построителей, которые позволяют создать приложение, СУБД Access имеет два языка, программирования: • Visual Basic для приложений (VBA); • язык макрокоманд. Один из этих языков, язык макрокоманд, и будет предметом нашего обсуждения на этом занятии. Язык макрокоманд Access используется при создании макросов. Язык VBA предназначен для пользователей, которые достаточно хорошо владеют приемами программирования. Его мы в этой книге рассматривать не будем.
Макрос в Access представляет собой структуру из одной или нескольких микрокоманд, которые выполняются либо последовательно, либо в порядке, заданном определенными условиям». Набор макрокоманд в Access очень широк, с их помощью можно настраивать объекты приложения, чтобы они вели себя нужным (отличным от предусмотренного Access) образом. Чтобы понять, насколько разнообразны действия, выполняемые макросами, посмотрите на следующую таблицу, в которой приведены основные (далеко не все) макрокоманды. Таблица 13.1. Макрокоманды Microsoft Office Access 2003 Категория
__
Работа с данными в формах [1 отчетах
Назначение
Макрокоманда
Отбор данных
ПрименигьФильтр (ApplyFilter)
Перемещение по данным
СледующаяЗапись (FindNext) НайтиЗапись (FindRecord) КЭлементуУправления (GoToControl) НаСтраницу (GoToPage) НаЗались (GoToRecord)
Обновление данных или экрана
1
Обновление (Requery) ПоказатьВсеЗаписи (ShowAURecords) продолжение ТУ
Примеры вы можете найти на сайте издательства www.piter.com па странице, посвященной этой книге.
392
Занятие 13. Макросы
Габлииа13.1 (продолжение) Категория
Назначение
Макрокоманда
Выполнение
Выполнение команды
ВыполнитьКоманду (RimCommand)
Выполнение макроса, процедуры или запроса
ЗапускМакроса (RunMacro) ЗапускПрограммы (RunCode) ОткрытьЗапрос (OpenQuery) ЗапускЗапросаЗСЦ (RunSQL)
Выполнение другого приложения
ЗапускПриложения (RunApp)
Прерывание иыполнепия
ОтменитьСобытие (CancelEvent) Выход (Quit) ОстановитьВсеМакросы (StopAlLMacros) ОстановитьМакрос (StopMacro)
Выход из Microsoft Access
Выход (Quit)
Передача объектов Microsoft Access в другие приложения
Вы вести ВФормате (OutputTo) ОтправитьОбъект (SendObject)
Преобразование формата данных
ПреобразоватьБазуДанных (TransferDatabase) ПреобразоватьЭлектроннуюТаблицу (TransferSpreadsheet) ПреобразоватьТекст (TransferText)
Копирование, переименование п сохранение объекта
КопироватьОбъект (CopyObject) Переименовать (Rename) Сохранить (Save)
Удаление объекта
УдалитьОбъект (DeLeteObject)
Изменение размеров или положения окна
Развернуть (Maximize) Свернуть (Minimize) СдвигРазмер (MoveSize) Восстановить (Restore)
Открытие и закрытие объекта
ОткрытьФорму (OpenForm) ОткрытьМодуль (OpenModule) ОткрытьЗапрос (OpenQuery) ОткрытьОтчет (OpenReport) ОткрытьТаблицу (ОрепТаЫе) ОткрытьСтраницу (OpenDataAccessPage) Закрыть (Close)
Печать объекта
ОткрытьФорму (OpenForm) ОткрытьЗапрос (OpenQuery) ОткрытьОтчет (OpenReport) Печать (Printout)
Выделение объекта
ВыделитьОбъект (SelectObject)
Импорт/экспорт
Работа с объектами
Что такое макросы Категория
Назначение
Макрокоманда
Задание значения поля, элемента управления или свойства
ЗадатьЗначение (SetVaLue)
Обновление объекта Прочие
393
ОбновитьОбъект (RepaintObject)
Задание состояния пунктов меню в специальной или общей строке меню
ЗадатьКомандуМеню (SetMenuItem)
Вывод информации на экран
ВыводНаЭкран (Echo) ПесочныеЧасы (Hourglass) Сообщение (MsgBox) УстановитьСообщения (SetWarnings)
Генерация нажатий клавиш
КомандыКлавиатуры (SendKeys)
Вывод на экран или скрытие встроенной или специальной панели инструментов
ПанельИнструменгов (ShowToolbar)
Подача звукового сигнала
Сигнал (Веер)
Конечно, в рамках одного занятия не удастся рассмотреть все это разнообразие макрокоманд, но вы познакомитесь на примерах с некоторыми из них и научитесь создавать макросы. Макросы обычно используются в приложении Access для обработки событий. Формы, отчеты и элементы управления, будучи объектами Microsoft Access, обладают определенным набором свойств событий. Каждое из этих свойств соответствует возможному событию для данного объекта. Например, свойство события Открытие (ОпОреп) формы соответствует событию Открытие (Open), а свойство события Получение фокуса (OnGotFocus) элемента управления формы соответствует событию Получение фокуса (GotFocus). Полный список всех свойств событий объекта Access виден на вкладке События (Events) диалогового окна Свойства (Properties) этого объекта. По умолчанию свойства события не установлены, и Access реагирует на возникновение того или иного события неким стандартным поведением объекта. Например, при щелчке на кнопке на экране визуально отображается нажатие этой кнопки. Устанавливая значение свойства события, мы можем дополнить стандартное поведение объекта, заставив его выполнять нужные действия. Эти действия определяются либо макросом, либо программой обработки событий, написанной на VBA. Причем последовательность стандартных и дополнительных действий для события определяется тем, допускается ли отмена этого события.
394
Занятие 13. Макросы
•
Если событие нельзя отменить, сначала выполняются стандартные действия, а затем процедура обработки событий. • Если событие может быть отменено, сначала вызывается процедура обработки событий, а затем выполняются стандартные действия.
Создание макроса, открывающего форму Вернемся к форме И з д а н и я , созданной на Занятии 10. С помощью мастера мы создали на этой форме кнопку, которая открывает форму КарточкаАвтора. Операция открытия формы при этом реализуется мастером с помощью процедуры VBA. Но предложенное мастером решение нас не совсем устраивает, так как форма К а р т о ч к а А в т о р а открывается не в режиме ввода новой записи, а в режиме редактирования данных. Исправим это, заменив процедуру VBA на макрос, который будет открывать форму КарточкаАвтора в режиме ввода новой записи, 1. Откройте форму И з д а н и я в режиме конструктора. 2. Выделите элемент управления, кнопку Новый автор, и откройте окно Свойства (Properties). 3. Раскройте вкладку События (Events). 4. На этой вкладке заполнено только одно свойство события — Нажатие кнопки (On Click) (рис. 13.1). Как только пользователь нажимает кнопку Новый автор, происходит событие Нажатие кнопки (On Click) и начинает выполняться процедура обработки этого события.
j Новый Авт op Макет j Данны?
События
,ipytne
Потери фскуса , > ............ Нз*ати£ кнопки ....... . ..... [. ipcmf дури обработки событий] /Шейное на*этие ю-югки ..... вниа указателя .
Нажатие кчавнши
Рис. 13.1. Свойства событии для элемента управления Кнопка
Обратите внимание, сколько разных событий связано только с кнопкой. Помимо обычного нажатия, которое мы сейчас и будем использовать, в набор событий кнопки входят получение и потеря фокуса, двойной щелчок кнопкой мыши и даже просто перемещение указателя мыши над кнопкой и т. п. Такое многообразие событий дает разработчику большие возможности по созданию удобного интерфейса пользователя.
Создание макроса, открываюшего форму
395
5. Очистите поле ввода для этого события и нажмите кнопку построителя справа. 6. Появится диалоговое окно Построитель (Choose Builder), в котором предлагается выбрать один из трех объектов построителей: В ы р а ж е н и я (Expression Builder), Макросы (Macro Builder) или П р о г р а м м ы (Code Builder) (рис. 13.2). П IIL-I рпнтеяь
Рис. 13.2. Диалоговое окно выбора построителя В Microsoft Office Access 2003 окна построителя вы можете и не увидеть. Вместо этого при нажатии кнопки построителя сразу откроется окно Редактора процедур VBA. Дело в том, что теперь на вкладке Формы/Отчеты (Forms/ Reports) диалогового окна Параметры (Options) появился новый флажок Всегда использовать процедуры обработки событий (Always use event procedures). Если он установлен, то по умолчанию предполагается, что событие будет обрабатываться процедурой VBA. Это удобно в том случае, когда макросы в приложении не используются. Если у вас сразу открылось окно с редактором процедур VBA, закройте его и выполните команду Сервис > Параметры (Tools > Options), чтобы открыть диалоговое окно Параметры (Options). Раскройте вкладку Формы/Отчеты (Forms/Reports) и снимите этот флажок.
7. Выберите вариант Макросы (Macro Builder) и нажмите кнопку ОК. Откроется окно конструктора макросов (Macro Design) и диалоговое окно, в которое нужно ввести имя создаваемого макроса (рис. 13.3).
(
.....,-;
Рис. 13.3. Сохранение макроса
8. Введите имя Новый автор и нажмите кнопку ОК. Окно конструктора макросов построено аналогично конструктору таблиц. то есть разделено по горизонтали на две части: панель описаний и панель аргументов (рис. 13.4).
396
Занятие 13. Макросы
-'
От крытьфу нкцию ОтменитьСобытие ОтправитьОбъект Л эне льИнс тру м ен тс в Переименовать П ерено с Базы Д анн ь txSQL ПесочныеЧасы
Иия
Форма
. РвЖ • .
,-.
!
"
' :-
Рис. 13.4. Окно конструктора макросов Верхняя часть окна конструктора — панель описаний — состоит из нескольких столбцов. По умолчанию на этой панели выводится два столбца: Макрокоманда (Action) и П р и м е ч а н и е (Comments). Здесь можно определить последовательность макрокоманд, из которых состоит макрос. Каждая строка служит для определения одной макрокоманды. В столбце Макрокоманда (Action) нужно в списке выбрать требуемую макрокоманду. В столбце Примечание (Comments) можно ввести комментарий, описывающий выполняемое действие. Когда иоле М а к р о к о м а н д а (Action) заполнено, в нижней части окна конструктора макроса появляется панель аргументов для ввода значений аргументов соответствующей макрокоманд].!. Список полей на этой панели зависит от выбранной макрокоманды и может отсутствовать, у макрокоманды нет аргументов. Таким образом, при создании макросов не нужно запоминать список аргументов для каждой макрокоманды. Введем в первую строку макрокоманду, открывающую форму. 9. Выберите в списке макрокоманду ОткрытьФорму (Open Form). В нижней части окна появляются поля ввода ее аргументов. 10. В первом поле выберите в списке имя формы КарточкаАвтора. 11. В поле Режим д а н н ы х (Data Mode) выберите в списке режим Добавление (Add) (рис. 13.5). Поля Р е ж и м (View) и Р е ж и м о к н а ( W i n d o w Mode) должны иметь те значения, которые предложены по умолчанию. Значение Форма (Form) свойства Режим означает, что форма будет открыта в режиме формы. Значение Обычное
Создание макроса, открывающего форму
39/
(Normal) свойства Режим окна означает, что режим вывода формы определяется значением, заданным в окне свойств. Другие значения этого свойства:
Рис. 13.5. Аргументы макрокоманды ОткрытьФорму
П Невидимое (Hidden) будет означать загрузку формы, но без отображения ее на экране. В дальнейшем ее можно сделать видимой, изменив значение свойства Видимость (Visible); П Значок (Icon) — форма открывается в свернутом виде, ее можно развернуть позже, щелкнув на кнопке Восстановить (Restore Up) в заголовке формы; П Окно диалога (Dialog) — форма выводится в виде диалогового окна (всплывающего и модального). 12. Закройте окно конструктора макросов, сохранив изменения. В окне свойств элемента управления Кнопка (Command Button) появится имя макроса (рис. 13.6). If Кнопка: НоеыйАвтор
Рис. 13.6. Добавление макроса для обработки события
13. Закройте окно свойств и переключитесь в режим формы, чтобы протестировать изменения, введенные в форму. 14. Нажмите кнопку НовыйАвтор. Откроется форма КарточкаАвтора в режиме ввода новой записи (рис. 13.7). 15. Введите новую запись и закройте форму. 16. Щелкните на ярлыке Макросы (Macros) в окне базы данных, и вы увидите что в списке макросов появился макрос Новый автор.
398
Занятие 1 3. Макросы
Издательство
Год издания
Рис. 13.7. Форма КартонкаАвтора, открытая в режиме добавления записи
Обновление данных с помощью макроса i,
Второе усовершенствование, которое мы можем сделать в форме Издания с помощью макроса, заключается в том, чтобы при добавлении нового автора автоматически обновлялся список авторов в подчиненной форме. Этот список заполняется при открытии формы Издания, и чтобы новый автор, которого только что ввели, появился в списке, нужно сделать повторный запрос к базе данных. Если сейчас открыть список, в поле Фамилия (автора) вы не увидите только что добавленного автора. Чтобы он появился в списке, нужно установить фокус на подчиненную форму и выполнить команду Записи > Обновить (Records I Refresh). С помощью макроса можно сделать так, чтобы этот список обновлялся автоматически после того, как в базе данных появился новый автор. Чтобы правильно написать макрос, необходимо сначала понять, с каким событием нужно связать этот макрос, то есть когда он должен выполняться. Очевидно, он должен выполняться, когда в форме КарточкаАвтора добавляется новая запись. 1. Откройте форму КарточкаАвтора в режиме конструктора и выведите окно свойств формы. Раскройте вкладку События (Events) (рис. 13.8). На этой вкладке есть несколько событий, относящихся к записям, отображаемым в форме. Два из них связаны с вставкой новой записи: До в с т а в к и (Before Insert) и После вставки (After Insert). Событие До вставки обычно используется для выполнения проверок, а вот событие После вставки, которое происходит сразу после того, как в базовую таблицу добавлена новая запись, может быть использовано для выполнения любых действий, связанных с этим событием. Именно с этим событием мы и свяжем наш макрос.
Обновление данных с помощью макроса
399
Форм а Макет ] Данные"
События | Другие
Текущая запись . Послевставки
Внесены чзменения Удаление До подтверждения Dd Открытий
О гкдючечие . ,
,.,,.,
Получение фокусе , , . ,,,.,-,.. Потеря Фокуса
Рис. 13.8. События формы Обратите внимание на длинный список событий формы. Количество эти>; событий растет с каждой новой версией Access. Это означает, что формы становятся все более гибкими, и разработчик может очень существенно влиять на поведение этого объекта. Чтобы понять, что означает каждое событие и как его можно использовать, установите курсор на нужную строку л нажмите клавишу F1. Откроется окно справки, в котором будет исчерпывающее описание этого события с примерами его использования — к сожалению, только по-английски.
2. Нажмите кнопку построителя справа и выберите в окне Построитель (Choose Builder) строку Макросы (Macro Builder). 3. В диалоговом окне С о х р а н е н и е (Save As), запрашивающем название макрос;), введите Обновление списка. Теперь на экране окно конструктора макросов. Но макрос, который мы хотим написать сейчас, отличается от предыдущего. Он должен выполняться, только когда форма К а р т о ч к а А в т о р а была открыта из формы Издания, ведь добавлять записи об авторах можно и просто в форме К а р т о ч к а А в т о р а . Значит, прежде чем выполнять какую-либо макрокоманду, нужно проверить, открыта ли форма И з д а н и я . Таким образом, мы должны ввести условие выполнения макрокоманд. Эти условия задаются в виде выражений в специальном столбце Условие (Condition), который по умолчанию скрыт. 4. Нажмите на панели инструментов кнопку Условия (Conditions) \Ъ$ц. Столбец Условие (Condition) отображается в окне иериым (рис. 13.9).
400
Занятие 13. Макросы
Рис. 13.9. Вставка столбца Условие
Чтобы проверить, открыта (правильнее говорить — загружена) ли форма Изд а н и я , нужна специальная функция. К сожалению, встроенной функции для такой проверки в Access нет, поэтому ее нужно либо написать, либо импортировать из другого приложения Access. Такая функция, IsLoaded(), есть в учебной базе данных Northwind.mdb, которая поставляется вместе с пакетом Microsoft Office 2003. В качестве аргумента в нее нужно передать имя формы, и она возвращает значение Истина (True), если эта форма загружена, и Ложь (False) в противном случае. Вы может легко импортировать эту функцию из учебной базы данных N o r t h w i n d . m d b . 5. Нажмите на панели инструментов кнопку Окно базы данных (Database Window) и щелкните на ярлыке Модули (Modules). 6. Щелкните правой кнопкой мыши на свободном поле справа и выберите в контекстном меню команду И м п о р т (Import). l.ra...:.— ....^*.,:..
,.-!
... >
i
- . , . , -
.
.-,. ,.„,
Рис. 13.10. Импорт модуля
Обновление данных с помошью макроса
401
7. В диалоговом окне Импорт (Import) выберите в списке папку, в которой лежит файл Борей. mdb (Northwind.mdb) (при стандартной установке это папка Program FiLes\Microsoft Office\Office\Samples). Выделите файл Борей. mdb и нажмите кнопку Импорт (Import). Появится диалоговое окно Импорт объектов (Import Objects) с раскрытой вкладкой Модули (Modules) (рис. 13.10). 8. Выделите в списке модуль Служебные функции (Utility Functions) и нажмите кнопку ОК. Модуль Служебные ф у н к ц и и появится в списке модулей в окне базы данных. 9. Переключитесь в окно конструктора макроса, щелкнув на нем или нажав соответствующую кнопку панели задач в нижней части экрана ' При работе с базой данных часто бывает одновременно открыто несколько объектов. В момент открытия любого объекта (формы, отчета, таблицы, запроса) базы данных на Панели задач Windows появляется соответствующая кнопка его активизации. Это очень удобная возможность, которая обеспечивает быстрый доступ к открытым объектам. 10. Введите в первую строку столбца Условие (Condition) выражение IsLoaded("H:sдания"). Теперь в списке нужно выбрать макрокоманду. На этот раз макрос будет состоять из нескольких макрокоманд. Чтобы выполнить обновление списка в подчиненной форме формы Издания, нужно сначала сделать эту форму активной с помошью макрокоманды ВыделитьОбъект (SelectObject). 11. Выберите в списке макрокоманду ВыделитьОбъект (SelectObject). На нижней панели нужно ввести три аргумента этой макрокоманды: Тип объекта (Object Type) — выберите в списке значение Форма (Form); И м я объекта (Object Name) — выберите в списке значение И з д а н и я ; В окне базы д а н н ы х (In Database W i n d o w ) — оставьте значение по умолчанию Нет (No). 12. В столбце Примечание (Comments) введите строку Активизируем форму "Издания".. Макрокоманда будет выполняться, только если выражение в столбце Условие (Condition) истинно. В противном случае будет выполняться следующая макрокоманда. Следующая макрокоманда должна активизировать подчиненную форму, но так как подчиненная форма является элементом управления главной формы, для этого нужно использовать другую макрокоманду: КЭлементуУправлен и я (GoToControl). И эта команда тоже должна выполняться только при выполнении указанного условия. 13. Введите во второй строке панели макрокоманд в столбце Условие (Condition) многоточие (...), чтобы не повторять условие. 14. В столбце М а к р о к о м а н д а (Action) выберите в списке имя макрокоманды КЭлементуУправления (GoToControl). У этой макрокоманды один аргумент имя элемента управления. 14 Зак. 680
402
Занятие 13. Макросы
15. Введите в поле ввода этого аргумента значение ИзданиеПодформа. Последней командой будет макрокоманда ВыполнитьКоманду (RunCommand). В качестве аргумента нужно указать имя команды, которую следует выполнить. 16. Выберите в списке столбца М а к р о к о м а н д а (Action) макрокоманду ВыполнитьКоманду (RunCommand), а в поле аргумента Команда (Command) — Refresh (Обновить). Не забудьте в столбце Условие (Condition) снова поставить многоточие (...). Макрос готов (рис. 13.11). Все три макрокоманды будут выполняться только при выполнении условия, указанного в первой строке. Щ Обновление списка : макрос •/,
*
.;-. ft
I sL ceded ("Из дания") Вы де лит ь Об ье к т .КЭлементуУправления ... ВыполнитьКр манду
Активизируем.форму "Издания". Активизируем элемент управления Подчиненная форма ВбШрпняем команду Обновить
Рис. 13.11, Макрос обновления данных
17. Закройте окно макроса. В поле свойства После вставки (After Insert) появится имя макроса Обновление списка. 18. Закройте окно свойств и форму КарточкаАвтора. 19. Протестируйте работу макроса. Сначала откройте форму Издания и введите новое издание. Затем нажмите кнопку Новый автор, чтобы открыть форму КарточкаАвтора. Введите данные о новом авторе. Закройте форму КарточкаАвтора и раскройте список авторов в форме И з д а н и я , Убедитесь, что фамилия введенного автора появилась и списке. На рис. 13.12 показан список с записью о новом авторе — Павле Муратове. 20. Закройте форму Издания и попробуйте открыть форму КарточкаАвтора в режиме формы и добавить в нее новую запись. Ни одна из макрокоманд макроса не должна выполняться.
Отладка макросов и поиск ошибок Если в процессе выполнения макроса вы увидели сообщение об ошибке, нужно найти эту ошибку. Если макрос содержит несколько макрокоманд, может по-
Отладка макросов и поиск ошибок
40.'»
§1 И здания: форма
Название:
|образы Италии
йаэд*:п:
.
.-:
|ИСКУССТБО
Издательство:
1999' ' •'
]панорама
v} i r ,J
Иасто публикац^,; моски
Том;
-|;
Типийданил; книга
МбСТО хранения: |Большая конната „'J ,'-•('
! •-
:
Дата покупки!
|
:
о
.!?, ?пт Число страниц
Это записки путешественника и глубокое наблюдение и размышление об истории траны, ее культуре, итальянской духовности.
tit,,-,; И
Ориген Петрарка Платон Пушкин Пыляев Сведенборг Соловьев
Франчес^
г
-J '
.Алексащц Михаил Э мангль Сергей -"
±ft
Рис. 13.12. Обновление списка авторов
требоваться его отладка, то есть поиск и исправление ошибок. Обычно для отладки макроса его выполняют в пошаговом режиме. Для включения этого режима нужно на панели инструментов Конструктор макросов (Macro Design) нажать кнопку По шагам (Single Step) i^iil Тогда перед выполнением каждой макрокоманды будет появляться диалоговое 1 окно Пошаговое исполнение макроса (Macro Single Step) (рис, 13.13).
• • i
делить
,-• id '•] MI-.',. .
Продолжить
'.'i..-f-i-
Рис. 13.13. Диалоговое окно Пошаговое выполнение макроса
404
Занятие 13. Макросы
В полях этого окна отображаются все данные, необходимые для отладки: имя макроса, название исполняемой макрокоманды, значения ее аргументов и условие ее выполнения (как само условие, так и значение этого условия). Если условие в макрокоманде отсутствует, в поле У с л о в и е (Condition) будет находиться значение И с т и н а (True). Кнопки справа позволяют выполнить три действия: • Ш а г (Step) — исполнить текущую макрокоманду; • Прервать (Halt) — прервать выполнение макроса (например, если видно, что аргументы макрокоманды вычислены неправильно); • Продолжить (Continue) — продолжить выполнение макроса в обычном режиме, то есть не по шагам. Если в процессе выполнения макроса возникла ошибка, отображается диалоговое окно Ошибка выполнения макроса (Action Failed). Оно выглядит почти так же, как окно Пошаговое в ы п о л н е н и е макроса (Macro Single Step), но кнопки Шаг и Продолжить в нем недоступны, доступна только кнопка Прервать. В полях окна отображается макрокоманда с ошибкой. Таким образом можно локализовать ошибку с точностью до макрокоманды. ЗАДАНИЕ Откройте любой из двух созданных макросов в режиме конструктора и включите пошаговый режим.-Затем откройте форму Издания и нажмите кнопку Новый автор. Введите нового автора в форму Карточка автора и закройте ее. Наблюдайте по шагам, как выполняются макросы. Поиск ошибок в макросах, как правило, не вызывает больших затруднений. Это связано с тем, что: • синтаксические ошибки в макросах идентифицируются при вводе, и система сигнализирует об обнаруженных ошибках, таких как неправильное условное выражение; • название макрокоманды и многие ее аргументы выбираются в списке, что предотвращает их неправильный ввод; • макросы, как правило, достаточно просты и не содержат длинных последовательностей макрокоманд. Если создать коротенький макрос не получается, лучше написать процедуру на VBA, так как язык VBA предоставляет гораздо больше возможностей и имеет существенно более удобные средства отладки. Основные ошибки в макросах связаны либо с неправильным вводом имей объектов, когда Access не может найти соответствующий объект, либо с тем, что объекты, на которые ссылается макрокоманда, недоступны, например, форма не открыта. Поэтому при возникновении ошибки в первую очередь нужно проверить, правильно ли введены имена объектов и открыты ли формы, использованные в условиях или аргументах макрокоманд.
Использование макросов в форме ВзятьКнигу
405
Использование макросов в форме ВзятьКнигу В этом упражнении мы создадим две связанные формы, которые удобно использовать при регистрации выдачи и сдачи книг. С помощью макросов мы заставим одну форму выполнять ДБС разные операции, а также повторим пройденный материал, построив несколько интересных запросов. Итак, нужно создать форму, которая позволила бы выбрать читателя и издание, и все эти данные вместе с датой выдачи занести в таблицу Формуляры. Все формы, которые мы строили до сих пор, отображали данные из таблиц базы данных. Форма ВзятьКнигу другого типа и предназначена, чтобы собрать необходимые данные, а затем при нажатии некоторой кнопки все эти данные занести в базу. Такие формы состоят из свободных элементов управления, и источник данных для них не задается. Создавать их нужно с помощью конструктора форм. 1. Закройте все открытые объекты, если они у вас остались, и раскройте список форм в окне базы данных. 2. Щелкните на ярлыке Создание формы с помощью Конструктора (Create form in Desicn View), 3. Сместите вниз нижнюю границу формы, чтобы увеличить область данных до 5 см (по вертикальной линейке). 4. Отожмите на панели элементов кнопку Мастера (Wizards) — мастера нам понадобятся не сейчас. При создании этой формы мы будем использовать панель элементов.
Создание поля со списком Первое поле должно позволить выбрать читателя. Воспользуемся элементом управления Поле со списком (Combo Box). 1. Щелкните на кнопке Поле со списком (Combo Box) на панели элементов. Подведите указатель к верхней части формы и щелкните, когда он будет на расстоянии 3,5 см от левого края (рис. 13.14). В области данных формы появится поле со списком. 2. Щелкните на связанной с полем надписи, В пределах надписи указатель превращается в текстовый курсор, который предназначен для вставки и удаления текста. Выделите текст надписи и введите вместо него Читатель. 3. Выделите элемент управления Поле со списком (Combo Box) и откройте окно свойств. Раскройте вкладку Д а н н ы е (Data). По умолчанию значение свойств;! Тип источника строк (Row Source Type) равно Таблица или запрос (Table/Query). Щелкните на кнопке построителя рядом со свойством Источник строк (Row Source). Появится окно конструктора запросов.
406
Занятие 1 3. Макросы Ш Форма! : Форма 3 • i • 4 • I • В • I • Ё • ' • 7 ' i • 3 • I • Э • I ' 10 • i • И • I • 12 ' I >
Рис. 13.14. Свободный элементы управления формы
4. Выберите в диалоговом окне Д о б а в л е н и е таблицы (Show Table) таблицу Читатели. 5. Выберите в бланке запроса поле КодЧитателя. Второе поле сделайте вычисляемым, введя выражение: ФИО: [Фамилия] & ' ' & [Имя] & ' ' & [Отчество]. 6. Установите порядок сортировки по этому полю По возрастанию (Ascending) и закройте запрос. Инструкция SQL, соответствующая построенному запросу, появится в поле ввода свойства Источник строк (Row Source). 7. Установите значение Да свойства Ограничиться с п и с к о м (Limit to List). 8. Раскройте вкладку Все (АИ) и установите на ней свойства в соответствии с табл. 13.2. Таблица 13.2. Установка свойств поля со списком Читатель Название свойства
Значение
Имя (Name)
Читатель
Число столбцов (Column Count) Ширина столбцов (Column Width) Присоединенный столбец (Bound Column)
1 (по умолчанию)
Создание элемента управления Поле 1. Щелкните на кнопке Поле (Text Box) па панели элементов. Установите указатель мыши чуть левее и ниже левого края элемента управления Читатель и щелкните левой кнопкой. Появится новый элемент управления Поле (Text Box).
Использование макросов в форме ВчятьКнигу
40>
2. Выделите надпись этого поля и измените ее свойство П о д п и с ь (Caption) на значение Автор. 3. На вкладке Все (AIL) введите ими поля Автор.
Копирование элементов управления 1. Выделите элемент управления Автор. 2. Нажмите на панели инструментов кнопку Копировать (Copy) j-^ij. 3. Нажмите на панели инструментов кнопку Вставить (Paste) Ж]. Ниже элемента управления Автор появится точно такой же элемент. 4. Задайте надпись к этому полю Издание и имя поля И з д а н и е . 5. Аналогично создайте еще одну копию элемента управления Поле (Text Box) ниже. Назовите его ДатаВозврата (надпись к нему Дата возврата). Если вы будете вводить имя метки прямо в самой метке, ее ширина автоматически будет подстроена под дли ну вводимой строки, в данном случае увеличена. Вместо копирования можно создавать новые элементы управления с помощью панели элементов — так мы создали первый элемент. Но при копировании все элементы выстраиваются точно друг под другом — результат получается быстрее.
6. Поскольку это поле даты, введите для него маску ввода (вызовите построитель и выберите Краткий формат даты (Short Date)). 7. Определим также значение по умолчанию для этого поля =DateAdd("y";15; DateQ). Книги выдаются на определенный срок. Функция D a t a A d d ( ) позволяет вычислить нужную дату. В данном случае она вернет дату, которая будет на 15 дней позже текущей, 8. Еще ниже создайте текстовое поле Примечание.
— I
^Ч/
Не забывайте везде задавать имена элементов управления, так как поздней они будут использоваться в макросах. В противном случае придется работать с теми именами, которые присваиваются по умолчанию.
9. Отформатируйте поля в соответствии с рис. 13.14.
Как спрятать элементы управления 1. Поместите рядом с надписью П р и м е ч а н и е еще одно поле: КодИздания. Это поле не должно отображаться на форме, по оно должно заполняться, чтобы можно было сформировать запись в таблице Ф о р м у л я р ы . Поэтому нужно сделать его невидимым.
408
Занятие 13. Макросы
2. Выделите поле КодИздания и установите для него значение свойства Вывод на экран (Visible) равным Нет (No). 3. Сохраните форму, назвав ее ВзятьКнигу. Позже мы добавим в эту форму необходимые кнопки, но сначала создадим еще одну форму.
Создание базового запроса для формы НевыданныеКниги Выбор читателя в форме ВзятьКнигу можно сделать с помощью раскрывающегося списка, а чтобы выбрать книгу, необходимо отобразить список книг, которые не выданы на руки. Чтобы получит]) такой список, нужно создать запрос. Этот запрос довольно сложный, так как нужно, во-первых, получить строку, в которой было бы не только название книги, но и автор. Во-вторых, если у книги несколько авторов, то в результирующем запросе должна быть только одна строка, а не несколько. В-третьих, в результирующее множество запроса должны попадать только те книги, которые не выданы читателям, а это делается на основе данных таблицы Формуляры. 1. Раскройте список запросов в окне базы данных и щелкните на ярлыке Создание запроса с помощью конструктора (Create query in Design View). 2. В диалоговом окне Добавление таблицы (Show Table) выберите 4 таблицы: Авторы, АвторИздание, Издания и Формуляры. 3. Для правильного выполнения запроса между всеми таблицами должны быть установлены внешние связи. Связи между таблицами Авторы, АвторИздание и Издания мы уже создавали. Между таблицами Издания и Формуляры тоже должно быть внешнее соединение, поскольку нужно выбрать все записи таблицы Издания и только те записи таблицы Формуляры, в которых связанные поля совпадают (рис. 13.15).
>КодАвгора ',. имя •I амипия -v ГодРождения ' ГодСмерти
9
КпдИздлмя КодИедамчя
:/ "од И здания
Wj
1
Г
±J |КОДИЗД *«я ^ ^ ЛКодЧ«тэтеля ^J ¥•£ ДэтаПс пуче»«я ;; ';; |;| ДатаВо жрата •;''! звратаФакт |1 V-J i Г ание
-i
Mi" "
нГодИэданпл издания групшровка
•
0
Ко л Автора Авторы Fi-st по возрастанию 0
Название Издания Группировка го возрастании: 13
Го &V здания Издания руппировкс
-
,
^
-
ДатаВозера1"*!1 — Форнуплры Last
П
П
Is Null NotlsNull
Is Null NotlsNull
0
\ •« 4J
ДатаПопучени! Формуляры Last
. ,
:
Рис. 13,15. Базовый запрос для формы НевыданныеКниги
wi
-M i
Использование макросов в форме ВзятьКнигу
409
4. Перенесите к бланк запроса следующие поля: КодАвтора из таблицы Авторы; КодИздания, Название и ГодИздания из таблицы Издания; ДатаПолучения и ДатзВозвратаФакт из таблицы Формуляры. 5. Установите вид сортировки по возрастанию в поле ДатаПолучения, тогда все книги в запросе будут отсортированы по дате их выдачи читателям, причем одна книга может встречаться несколько раз (столько, сколько читателей читало эту книгу). В начале будут включены книги, которые еще никогда не выдавались (у них поле ДатаПолучения будет пустым). 6. Теперь нужно сгруппировать эти записи так, чтобы одна книга встречалась только один раз. Щелкните на напели инструментов на кнопке Группировка (Totals) Щ. 7. Появляется строка Групповая о п е р а ц и я (Total), по умолчанию содержащая в каждой ячейке значение Группировка (Group By). 8. Для столбца КодАвтора измените это значение на First. Это статистическая функция по подмножеству записей, которая возвращает значение поля из первой строки группы (мы здесь выделяем только первого автора). 9. Для столбцов ДатаПолучения и ДатаВозвратаФакт замените значение Группировка (Group By) па Last — статистическую функцию, которая, соответственно, возвращает значение поля из последней записи группы. 10. Теперь определим критерии отбора. Отобрать нужно все книги, которые никогда не выдавались читателям (у них и поле Д а т а П о л у ч е н и я , и ноле ДатаВозвратаФакт пусты), и книги, которые уже возвращены (у них оба ноля должны быть не пусты, то есть после того, как книга последний раз выдавалась, се уже вернули). Введите в первую строку У с л о в и е отбора (Criteria) значение 1's Null для обоих столбцов, а во второй строке — значения Not is Null (см. рис. 13.15). 11. Кроме того, добавим вычисляемый столбец, который будет отображать символьную строку с именами авторов (для упрощения возьмем Имя и Ф а м и л и ю первого автора и, если у книги несколько авторов (в запросе должно быть несколько строк), добавляем слова <<и др.»). 12. Выделите столбец Н а з в а н и е и нажмите клавишу Insert. Перед выделенным столбцом будет вставлен новый пустой столбец. 13. Введите в первой строке выражение: Автор: ШЧСоипЩФамилмя] & ' ' & [Имя])>1;Г1г5"Ц[Фамилия] & ' ' & [Имя]} & ' и д р . ' ; F 1 r s t ( [ Ф а м и л и я ] & ' ' & [Имя]))
14. В строке Г р у п п о в а я операция ( G r o u p By) выберите в списке значение Выражение (Expression). 15. Установите сортировку по полям Автор и Н а з в а н и е . 16. Выполните запрос, чтобы убедиться, что он функционирует правильно, снимите флажки вывода на экран полей КодАвтора, ДатаПолучения и ДатаВыдач!'Факт и закройте запрос, назвав его НевыданныеКниги.
410
Занятие 13. Макросы
ЗАДАНИЕ Создайте с помощью мастера ленточную форму НевыданныеКниги на базе соответствующего запроса. В форме должны отображаться поля Автор, Название и ГодИздания. Поле КодИздания должно быть невидимым. В примере оно сделано последним. Чтобы форма не расширялась автоматически, установите свойство Автоматический размер (AutoResize) равным значению Нет (рис. 13.16). ^•Ш НевыданныеКниги /fic&ji
•
.
;
•
Haiti
зда?
.
'
' ' - ' "
:
.
.
> [Р~
щ
"
Год
-
—
. ''
У ' '•'» ^^Н ,,, * 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<
Вьражение2; ft
Выражение 3: Di
Выражение-! : Fc
Выражение5: Fc
КодИэдания
КодЧитатепя
ДатаПолучения
ДзтаВозврата
Примечание
'
1
*н
• -•&
Рис. 13.24. Создание запроса на добавление
9. Закройте запрос, сохранив его под именем ВзятьКнигу. Создадим макрос, который будет выполнять наш запрос добавления. Макрос будет состоять из нескольких макрокоманд и включать ряд условий, так как мы должны проверить, заполнены ли поля Читатель, Издание (а значит, и нужное нам для вставки в таблицу Формуляры поле КодИздания), ДатаВозврата. Кроме того, мы не должны допустить, чтобы дата возврата оказалась больше текущей даты. Во всех случаях, когда условие нарушено, мы должны выдать пользователю сообщение и прекратить выполнение макроса. И только если все проверки прошли успешно, можно выполнять запрос добавления записи в таблицу Формуляры. 1. Щелкните на ярлыке Макросы (Macros) в окне базы данных и нажмите кнопку Создать (New) па панели инструментов этого окна, 2. Нажмите кнопку Условия (Conditions) на панели инструментов, чтобы добавить в окно конструктора столбец Условия (Conditions). 3. Введите в первой строке столбца Условия (Conditions) выражение [Рогт$]![ВзятьКнигу]![Читатель] Is Null 1 . В столбце М а к р о к о м а н д а (Action) выберите элемент Сообщение (MsgBox) и заполните аргументы этой макрокоманды (рис. 13.25). Аргумент Веер ( С и г н а л ) определяет, будет ли вывод сообщения сопровождаться звуковым сигналом. Аргумент Тип (Туре) определяет вид диалогового окна сообщения. Аргумент Заголовок (Title) позволяет определить текст, который будет выводиться в заголовке окна сообщения. Следующей должна быть макрокоманда ОстановитьМакрос (StopMacro). 4. Введите в столбце Условия (Conditions) на следующей строке многоточие (..) и выберите макрокоманду ОстановитьМакрос (StopMacro). У этой макрокоманды 1 т.
Или создайте его с помощь») построителя.
41 о
Занятие 1 3. Макросы
нет аргументов. После ее выполнения все остальные макрокоманды макроса не выполняются.
[Формы]|Г,ВзятьКн Сообщение '. ОстановитьMaкрое
Рис. 13.25. Аргументы макрокоманды Сообщение
5. Аналогично создайте две макрокоманды для проверки поля Издание и четыре макрокоманды для проверки поля ДатаВозврата (рис. 13.26). Очевидно, некоторые условия, например, проверку значения в поле ДатаВозврата, можно было ввести в форму, установив соответствующие значения свойств Условие на значение (Validation Rule) и Сообщение об ошибке (Validation Text). Тогда макрос был бы короче.
[Формы]![езятьКшгу]![Читатель]15М . . . -Сообщение.. t Не выбран Читатель ч. • Остановить Макрос ! [Формы]Г[ВзятьКнигу]|(Издание]15Ш1 . ^Сообщение . ;Неi выбрана издание... Ос таноЕитьМакрос ; [Формы1![ВзятьКнигу]|[ДатаВоэвр_ата] Is Null Сообщение Не заполнена дата возврата .-.. . Остано&итьМакрос ^[Формь|]![ВзятьКнигу]![/1|таВозврзта]<-1ЭаЬеО Сообщение Дата .возврата.должна .бьлъ больше ОстаноеитьМакрос
шага возврата должна быть ''„И. •••"!
7141
'™ "
"
"
Предупреждающее ! Формуляр
Рис. 13.26. Проверка значении в полях формы ВзятьКнигу
текущий
Как превратить форму ВзятьКнигу в форму СдатьКнигу...
419
Последней командой, которая будет выполняться, только когда ни одно из указанных условий не будет иметь значение Истина (True), является макрокоманда ОткрытьЗапрос (OpenQuery). 6. Создайте еще одну строку в макросе. Столбец У с л о в и е ( C o n d i t i o n ) должен остаться пустым. В столбце Макрокоманда (Action) выберите макрокоманду ОткрытьЗапрос (OpenQuery). Б аргументе Имя запроса (Query Name) выберите запрос ВзятьКнигу (значения остальных аргументов можно оставить заданными по умолчанию). 7. Закройте запрос, сохранив его под именем ВзлтьКнигу. 8. Откройте форму ВзятьКнигу и свяжите макрос с кнопкой Сохранить. 9. Протестируйте работу формы, выполнив несколько раз операцию ВЫДЕЛИ книги с разными значениями полей.
Как превратить форму ВзятьКнигу в форму СдатьКнигу, а форму НевыданныеКниги в форму ВыданныеКниги А теперь мы с помощью макросов заставим по-разному функционировать формы ВзятьКнигу и Н е в ы д а н н ы е К н и г и . Когда нужно оформить сдачу книги чита~елем, должны выполняться операции похожие на те, что выполняются при выдаче книги. Можно попробовать использовать для этой операции форму ВзятьКнигу, но при нажатии кнопки Сохранить нужно найти соответствующую запись в таблице Формуляры и заполнить поле ДатаВозвратаФакт. Когда выбирается книга, которую читатель сдает, можно открыть ту же форму Н е в ы д а н н ы е К н и г и , только теперь она должна отображать книги, находящиеся на руках у читателей.
Создание новых запросов Чтобы все это так и работало, сначала создадим еще два запроса: • запрос В ы д а н н ы е К н и г и , который будет возвращать список книг, выданных выбранному читателю; • запрос СдатьКнигу, который будет обновлять запись в таблице Формуляры. Первый запрос несложно создать, слегка изменив запрос Н е в ы д а н н ы е К н и г и . 1. Откройте запрос НевыданныеКниги в режиме конструктора. Необходимо изменить условия отбора записей, заданные в столбцах ДатаПол у ч е н и я и ДатаВозвратаФакт. Теперь нам нужно отобрать только записи с незаполненным нолем Д а т а В о з в р а т а Ф а к т и заполненным полем ДатаПолученля. Кроме того, нужно отобрать только книги, выданные тому читателю, который уже выбран в форме СдатьКнигу. 2. Добавьте еще один столбец для задания условия отбора — КодЧитателя.
420
Занятие I 3. Макросы
3. Замените операцию в строке Групповая операция (Total) для столбцов ДатаПолучения, Дата В оз врата Факт, КодЧитателя на Условие (Condition). 4. В первой строке Условия отбора (Criteria) столбца ДатаВозвратаФакт введите выражение Is Null. В столбце КодЧитателя задайте в качестве критерия отбора выражение [Роггп5]![ВзятьКнигу]![Читатель]. Условия отбора во второй строке удалите. 5. Сохраните запрос под именем В ы д а и н ы е К н и г и командой Файл > Сохранить как (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 :•....... [ФормыИ^атьКнигуМДатаВозврэта^МиИ .. [Формы]'[БзятьКниг|/]![ДатаВозврата]<=С«е() . | -Л.
Сообщение • Не выбран Читатель ОстановитьМлкрос ! Сообщение :Не выбрано издание .ОстановитьМакрос ..].. Сообщение : Не заполнена дата возврата ОстанрвиТьМакрос Сообщение Дата возврата допжкэ быть больше текущей ; ; ОстаноеитьМакрос
Рис. 13.28. Создание группы макросов
Следующий макрос мы начнем создавать, пропустив одну строку от последней макрокоманды предыдущего макроса. Этот макрос будет выполняться при нажатии кнопки ВыбратьВозврат. Он должен сначала проверять, заполнено
422
Занятие 13. Макросы
ли поле Читатель, и если заполнено, открывать форму Н е в ы д а н н ы е К н и г и и при этом изменять источник записей и заголовок этой формы. 3. Введите в столбец Имя макроса (Macro Name) имя нового макроса: ВыбратьКнигу. Первые две макрокоманды введите такие же, как в предыдущем макросе. 4. В третьей строке макроса в столбце Макрокоманда (Action) выберите макрокоманду ОткрытьФорму (OpenForrn). 5. Задайте аргументы этой макрокоманды (рис. 13.29).
.
. - > : - : '.•-!.",'
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[ Дат аВозврат а] <=•!• Сор бщение |..... | Остановит ьМакрос. I ОткрьтьЗапрос ВьйратьКнигу • [а)ормс.|]![БэятьКннг/11[Читател1?] Is Null ;...
•
Сообщение рстаноБитьМакрос :рткрь|тьформу; ;ЗадатьЗнвчение \ ЗадатьЗначение ^рткрытьФорму.
iДата возврата должна быть бопьше текущей
Не вв'фан читатель ^Открываем форм-/ "Невыданные книги" Меняемзагоповрк • Меняем источник записей
Рис. 13.31. Копирование макроса 14. Измените условие, проверяющее значение поля ДатаВозврата: [Формы]![ВзятьКнигу] ![ДатаВозврата]>Оа1е(). 15. Закройте макрос, сохранив его под именем Формуляр. Теперь нужно связать макросы с соответствующими кнопками формы ВзятьКнигу. Форма ВзятьКнигу должна быть открыта в режиме конструктора. 1. Выделите кнопку ВыбратьВозврат и откройте вкладку События (Events) окна свойств.
424
Занятие 13. Макросы
2. Раскройте список макросов в свойстве Нажатие кнопки (Click). В нем отображаются все макросы, в том число ге, которые включены в один объект Формуляр. Выберите элемент Формуляр.ВыбратьКнигу. ШГКнопка: СохранитьВо """"•» n I» С c« pa нитьВ аз вра т
Выход
ж К.
да:-
iSIM,- .
эж-ет-иб клжишм , •, .
... >
Новый автор Новый авторГ Обновление списка СдатьКнигу Форма Формуляр Формуляр. ВзятьКнигу Формуляр СдатьКнигу
:-
"
Рис. 13.32. Связывание макроса с кнопкой на форме
3. Выделите кнопку СохранитьВозврат и свяжите с событием Нажатие кнопки (Click) макрос Формуляр.СдатьКнигу. 4. Выделите кнопку Сохранить и измените имя макроса, связанного с событием Нажатие кнопки (Click): Формуляр.ВзятьКнигу. 5. Переместите две новые кнопки так, чтобы они находились точно поверх аналогичных кнопок Выбрать и Сохранить. Выделите обе кнопки и выполните команду Формат > На задний план (Format > Send to Back). Тем самым вы спрячете их под ранее созданные кнопки Выбрать и Сохранить.
Создание макроса, открывающего форму СдатьКнигу Последний макрос, который нужно создать, должен открывать форму СдатьКнигу. В этом макросе нужно открыть форму ВзятьКнигу и установить свойство Вывод на э к р а н (Visible) у кнопок, вызывающих макросы. Кроме этого, нужно изменить заголовок формы и установить значение элемента управления ДатаВозврата. Все это делается с помощью макрокоманды ЗадатьЗначение (SetValue). 1. Нажмите кнопку Создать (New) в окне базы данных для создания нового макроса. 2. Создайте первую макрокоманду ОткрытьФорму (OpenForm), задав имя формы ВзятьКнигу.
Как превратить форму В:1ятьКнигу в форму СдатьКнигу...
425
3. Создайте макрокоманду ЗадатьЗначение (SetValue). Значение аргумента Элемент (Item) должно быть [Формы]![ВзятьКнигу]![ДатаВозврата], а значение аргумента Выражение (Expression) — Date().
; Фор «ь i]! [ В з ятьКни гу ]! [8 ыбр ат ьВ озвр а т ], [ V isi Ы e]j
.ii
— Q КарточкаДвтораПс * { <Форма > *"^— P-.I, LJ Читатели СохранитьВозврат — СЗ Форму пяры Label 1 — СЗ АеторыИздание j Читатель — СЗ Издания Labels — СЗ ИзданиеПодформа •"" -: Автор Labels — fe-^S Издание — Q НееыданныеКнмги -'* I abel7 ДатаВозбрата
i
.лР
; •*.,
Section ShortcutMenuBat Status Bar Text Tablndex Tab Stop Tag TextFontChafSet Top Jtansp rent
_£J Width
>
.ж 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.7. Контекстное меню
13. 14. 15. 16.
Для нового меню по умолчанию применяется Основной стиль (Default Style), когда на элементе меню выводится значок и текст. Для формы выводится стандартный значок формы. Но в данном случае один и тот же значок выводится для всех элементов меню. Поэтому можно либо установить стиль, при котором выводится только текст, либо для каждого элемента меню придумать свой значок. Выберите пункт Только текст (в меню) (Text only (In Menus)). Подправьте название команды: Карточка автора, Измените стиль каждого элемента меню. Чтобы добавить следующее меню со списком команд в строку меню, которую мы создаем, нужно снова выбрать на вкладке К о м а н д ы ( C o m m a n d s ) диалогового окна Настройка (Customize) категорию Новое меню (New M e n u ) ,
15 Зак. 680
434
Занятие 14. Сборка приложения
перетащить элемент Новое меню (New Menu) в строку меню Главное меню и поместить его справа от меню Д а н н ы е (где должна появиться вертикальная черта). Назовите новое меню Формуляры, 17. Добавьте в меню Ф о р м у л я р ы форму В з я т ь К н и г у и макрос СдатьКнигуФорма. Чтобы добавить макрос, сначала выберите категорию Все макросы (ALL Macros) и затем в списке нужный макрос (рис. 14.8).
. ВзятьКнигу Работа с исходный тек Встроенные пеню Все таблицы Все запросы Все формы See отчеты Зсе веб-страницы Элементы ActiveX Новое меню
%$% Формуляр
СдэтьКнигчФорма
^'S Форму ляр.Взять Книг у
Ш Форму л яр. Выбрать К ниг> | 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 .и
'••( •*<••':-
Рис. 14.14. Специальное контекстное меню в форме
440
Занятие 14. Сборка приложения
ЗАДАНИЕ Чтобы форма ВзятьКнигу работала корректно, создайте еще одно контекстное меню Сдать книгу, которое содержит команды, запускающие макросы, связанные с кнопками ВыбратьВозврат и СохранитьВозврат. Измените макрос СдатьКнигуФорма таким образом, чтобы при переключении формы подключалось контекстное меню Сдать книгу.
Создание и изменение панелей инструментов Для обеспечения быстрого доступа к наиболее часто используемым формам или отчетам удобно создать специальные кнопки, которые помещаются либо на панель инструментов, либо непосредственно в меню. Раскройте список макросов в окне базы данных приложения. Выделите макрос СдатьКнигуФорма и перетащите его в строку меню, которое мы создали. В строке меню появляется кнопка со значком макроса и названием формы, при нажатии которой открывается форма ВзятьКнигу в режиме «сдать книгу*- (рис. 14.15).
Рис. 14.15. Добавление кнопки в строку меню
Как видите, в одной строке меню могут размещаться как подчиненные меню, так и кнопки. Точно так же добавляют кнопку в одну из стандартных панелей инструментов. Если таких кнопок, которые вы хотите создать для вызова определенных функций приложения, будет несколько, лучше создать отдельную па-
Создание панелей команд
44 1
нель инструментов и включить в нее все эти кнопки, а также некоторые полез1 ные кнопки стандартных панелей инструментов . Пользовательская панель инструментов создается в режиме настройки панелей команд Access так же, как меню. 1. Создайте новую панель инструментов Библиотека. Оставьте значение свойства тип (Туре) равным установленному по умолчанию значению Панель инструментов (Toolbar). 2. Добавьте на эту панель формы КарточкаАвтора, Издания, Читатели. По умолчанию на кнопке выводится значок и текст (рис. 14.16).
j КаргочкаАетope _JJi Издания j jlgl Чигдтели[|
Рис. 14.16. Пользовательская панель инструментов
Однако если на панели должно быть много кнопок, такой вариант не подходит. Чаще всего на кнопку все-таки помешают какой-нибудь значок, но в данном случае для всех кнопок использован один стандартный значок формы. Можно попробовать поместить на них разные значки, 3. Щелкните правой кнопкой мыши на кнопке КарточкаАвтора. В открывшемся контекстном меню можно ввести нужный текст либо выбрать команду Выбрать значок для кнопки (Change Button Image). Появится таблица стандартных значков (рис. 14.17).
J»
Ш Ф »• %
t с -ц <*
Рис. 14.17. Набор стандартных значков
Можно даже создать специальный значок. Для этого в Access включен редактор кнопок, который появляется при выборе команды И з м е н и т ь з н а ч о к на кнопке (Edit Button Image) контекстного меню. 4. Добавьте на панель инструментов форму ВзятьКнигу и макрос СдатьКнигуФорма., а также отчеты Алфавитный каталог, Формуляры читателей и Суммы покупок. Панель инструментов теперь должна выглядеть как на рис. 14.18. Как правило, стандартные панели инструментов делают недоступными пользователю.
442
Занятие 14. Сборка приложения
ЕШ Издания j .Чжатели 1Д1 6 зять г, ни г и -^ Сдать RH игу gjj Каталог igjj Формуляры [yg С t-м мы покупок
Рис. 14.18. Панель инструментов Библиотека
Еще несколько слов о подсказках - всплывающих сообщениях, которые появляются, когда пользователь удержинает указатель мыши на кнопке панели инструментов. При добавлении кнопок па панель инструментов автоматически устанашшиается значение свойства элемента Всплывающее сообщение (ScreenTip). Это значение можно изменить, а значит, изменится и текст подсказки. 1. Щелкните на кнопке Сдать книгу правой кнопкой мыши и выберите в контекстном меню команду Свойства (Properties). Появится диалоговое окно Свойства элемента (Control Properties) (рис. 14.19). 2. Введите в поле ввода свойства В с п л ы в а ю щ е е с о о б щ е н и е (ScreenTip) новый текст: Оформить сдачу к н и г и . 3. Аналогично измените текст подсказки для кнопки Взять книгу: Оформить выдачу к н и г и . 4. Закройте диалоговое окно Н а с т р о й к а (Customize) и переместите панель инструментов в верхнюю часть окна приложения. Свойства элемента Библиотека ,'"с -; af'H. •". .I'll'-1, ill
•| Рисунок и текст
, I , ,
.
,
; Г" Создать группу
Рис. 14.19. Диалоговое окно Свойства элемента Библиотека
Созданная панель инструментов будет появляться каждый раз при открытии файла Библиотека.mdb и отображаться постоянно, пока вы работаете с этим приложением. Можно создать панели инструментов, связанные с конкретными объектами: формами, отчетами. Например, если вы собираетесь отключить стандартные панели инструментов, чтобы пользователь не мог воспользоваться кнопками,
Управление отображением панелей команд
443
предназначенными для разработчика приложения, и что-нибудь испортить, придется создать специальные панели для отчетов, для форм, в которых предусматривается просмотр, поиск и фильтрация записей и т. д. Обычно такие панели инструментов собирают из стандартных команд Access и затем подключают к нужным объектам. Пример такой специальной панели инструментов представлен на рис. 14.20. В нее включены некоторые кнопки стандартной панели инструментов режима предварительного просмотра; • кнопка Печать категории Файл (File); • кнопка и поле со списком Масштаб категории Вид (View); • кнопка Связи с Office категории Сервис (Tools).
Рис. 14.20. Спеииадьная панель инструментов
Такую панель инструментов можно подключить ко всем отчетам, установив свойство П а н е л ь инструментов (Toolbar) на вкладке Д р у г и е (Other) отчета (рис. 14.21). Эта панель инструментов будет появляться, только когда отчет открыт в режиме предварительного просмотра.
События -Другие •'-< •;- ,",;•• Параметры настройки . . . ...
Н-Г
[Отчеты
fell
Мзличие модупа,
Рис, 14.21. Подключение панели инструментов к отчету
Управление отображением панелей команд Все пользовательские панели инструментов отображаются в контекстном меню, появляющемся при щелчке правой кнопкой на области панелей команд и верхней части окна приложения Access. Снимая или устанавливая флажок у имени панели инструментов, соответствующую панель можно отображать или скрывать (рис. 14.22).
444
Занятие 14. Сборка приложения
Если нужная панель отсутствует в списке, откройте окно Настройка, найдите эту панель в списке Панели инструментов и кнопкой Свойства откройте диалоговое окно Свойства. Проверьте, установлен ли флажок Отображение в меню (Show on Toolbars Menu). Кроме того, панели инструментов, связанные с формами или отчетами, отображаются на экране, только когда открыта соответствующая форма или отчет.
J
Щ
-t.
.-*
-Л
"~
-'*
-
;
' ' : ' , ' '
-; -I
. 1
*
\f'
'• JJ Авторы Q3 Издания f Читатели ^ Ёзятьг.нигу .J; Сдать книгу iji Кзталог %% Формуляры ^ Сумг-^ы^пои^ок Щ ;• £4й" -- ^оомул^Ы
Денные
^тчеты рправочлики _—
;J СдатьКнитуФорр^._„.^щ^т--^--^I v } Баэаданныи 4. Веб-узел I -'.. | Область задач ^Д[Д: Библиотека 1
"?;
Отчеты
Рис. 14.22. Контекстное меню панелей команд
Обратите внимание, что пользовательские меню не отображаются в этом контекстном меню. Чтобы отобразить или скрыть строку меню, нужно открыть диалоговое окно Настройка, найти в списке Панели инструментов нужное меню и установить или снять флажок слева от него. Например, чтобы удалить сейчас с экрана строку меню Главное меню, нужно снять флажок этого меню. Панели инструментов можно скрывать таким же образом, но проще делать это с помощью контекстного меню.
Чтобы совсем удалить строку меню или панель инструментов, нужно выделить ее в списке панелей инструментов окна Настройка и нажать кнопку Удалить (Delete). Чтобы удалить контекстное меню, нужно сначала удалить из него все команды, перетаскивая их на свободное поле окна приложения, а затем преобразовать его в панель инструментов.
Создание главной кнопочной формы Роль меню, где пользователь выбирает нужные операции, может играть кнопочная форма. Эта форма содержит кнопки, нажимая которые, пользователь также выбирает объекты приложения: открывает формы, таблицы, выполняет запросы и создает отчеты. Для создания такой формы проще всего воспользоваться специальным мастером, Диспетчером кнопочных форм (Switchbord Manager). Создадим такую форму для нашего приложения Библиотека.
Создание главной кнопочной формы
445
1. Выберите команду Сервис > Служебные программы > Диспетчер кнопочных форм (Tools > Database Utilities > Swithboard Manager). Поскольку база данных не содержит кнопочных форм, мастер открывает диалоговое окно, запрашивающее, нужно ли создавать кнопочную форму. 2. Нажмите кнопку Да, появится диалоговое окно со списком страниц кнопочной формы (рис. 14.23.). В этом окне перечисляются все страницы кнопочной формы (в нашем приложении их будет четыре). Пока создана только одна страница, и она присутствует в списке. На этой странице нужно создать кнопки, соответствующие элементам строки меню: Авторы, И з д а н и я , Читатели, Формуляр, Отчеты, С п р а в о ч н и к и , Выход. При нажатии любой из первых трех кнопок должна открываться соответствующая форма, при нажатии следующих трех кнопок — другая страница кнопочной формы, кнопка Выход будет обеспечивать выход из приложения. Сначала создадим страницы нашей кнопочной формы. Диспетчер кнопочных Форм
Главная кнопочная форма (По умолчанию)
-Сменить...
Рис. 14.23. Диалоговое окно Диспетчер кнопочных форм 3. Нажмите кнопку Создать (New). В диалоговом окне введите имя новой страницы Формуляры (рис. 14.24) и нажмите кнопку ОК. Имя новой страницы появляется в списке диспетчера. Создайте так же страницы Отчеты и Справочники.
Рис. 14.24. Создание страницы кнопочной формы 4. Теперь выделите первую страницу Главная кнопочная форма (Main Switchboard) в списке и нажмите кнопку Изменить (Edit). Открывается диалоговое окно Изменение страницы кнопочной формы (Edit Switchboard Page (рис. 14.25'),
446
Занятие 14. Сборка приложения содержащее название страницы и список элементов на этой странице (пока пустой). В этом окне можно добавлять, изменять и удалять элементы выбранной страницы формы, а также менять порядок их размещения на странице (кнопками Вниз (Move Down) и Вверх (Move Up)). Изменение страницы кнопочной Формы
"(Главная кнопочная форма < i д ^нц-и- | .чип.,'.,.' .1 ... • i.
•.., .. ir
Рис. 14.25. Диалоговое окно Изменение страницы кнопочной формы 5. В поле Название кнопочной формы (Switchboard Name) замените стандартное название новым Библиотека. Список элементов формы пока пуст, и доступна только одна кнопка Создать (New). Чтобы создать псфвый элемент, нажмите эту кнопку. Появляется диалоговое окно Изменение элемента к н о п о ч н о й формы (Edit Switchboard Item) (рис. 14.26). ^1.-.гЯ5-Н;|::ж1тп^1*
Рис. 14,26. Диалоговое окно Изменение элемента кнопочной формы В поле Текст (Text) введите наименование создаваемой кнопки Авторы. Второе поле Команда (Command) позволяет определить действие при нажатии этой кнопки. Список этих 8 действий представлен на рис. 14.26. Это может быть открытие формы в режиме добавления записей или редактирования, открытие отчета, запуск макроса или процедуры VBA, запуск мастера для редактирования кнопочной формы, переход к другой кнопочной форме и выход из приложения. 7. Выберите элемент Открыть форму для и з м е н е н и я (Open Form in Edit Mode) и в следующем поле выберите в списке имя формы КарточкаАвтора (рис. 14.27).
Создание главной кнопочной формы
447
Изменение элемента кнопочной формы |:|Автсры :
JOT крыть форму дпя изменения &.».'. :: -:. :
{КарточкаДет
Рис. 14.27. Определение кнопки, открывающей форму
Название последнего поля в форме (см. рис. 14.27) изменяется в зависимости от выбранной команды во втором поле. Если выбранное в списке действие не требует задания аргумента, третье поле вообще отсутствует.
8. Нажмите кнопку ОК. В списке элементов кнопочной формы появился первый аргумент. 9. Аналогично добавьте кнопки для форм Издания и Читатели. 10. Следующая кнопка должна открывать страницу Формуляры. Нажмите кнопку Создать (New). В окне Изменение элемента кнопочной формы (Edit Switchboard Item) введите текст Формуляры. Оставьте команду Перейти к кнопочной форме (Go to Switchboard), предлагаемую по умолчанию, и выберите имя страницы кнопочной формы Формуляры (рис. 14.28). Изменение элемента кнопочной формы ГОсрмупяры
[Перейти к кнопочной ферме |формуляры|
Рис. 14.28. Определение кнопки, открывающей другую странииу
11. Аналогично создайте кнопки, которые будут открывать страницы Отчеты и Справочники (сначала нужно создать сами эти страницы). 12. Последняя кнопка Выход должна обеспечить выход из приложения. Создавая ее, выберите в списке команду Выйти из приложения (Exit Application). В результате главная страница должна выглядеть как на рис. 14.29. 13. Нажмите кнопку Закрыть (Close), чтобы закрыть эту страницу. Страница Библиотека будет открываться по умолчанию при открытии главной .кнопочной формы. Аналогично можно добавить кнопки на другие страницы. 14. Выделите в списке Страницы кнопочной формы (Switchboard Pages) страницу Формуляры и нажмите кнопку Изменить (Edit). Снова откроется диалоговое окно Изменение страницы кнопочной формы (Edit Switchboard Page). 15. Добавьте в нее две кнопки: D Взять книгу, открывающую форму ВзятьКнигу. П Сдать книгу, выполняющую макрос СдатьКнигуФорма.
448
Занятие 14. Сборка приложения Изменение страницы кнопочной
Рис. 14.29. Элементы основной страницы кнопочной формы 16. Заполненное окно для кнопки Сдать книгу представлено на рис. 14.30.
[Сдать книгу V
"
.. .
. '^Выполнить макрос • j> JC да ть К ни гу Фо рм а| Ц!
юншншн
'
{Изменением пемента кнопочной Формы
а . .
ок
|
Of "ста
[
.......
Рис. 14.30. Создание кнопки, выполняющей макрос Дополнительно на эту страницу нужно поместить еще одну кнопку, которая позволяла бы вернуться на главную страницу кнопочной формы. 17. Добавьте эту кнопку, заполнив поля как на рис. 14.31. 18. Аналогично создайте кнопки для страницы Отчеты. Их должно быть четыре: три для каждого из отчетов (при их создании используйте команду Открыть отчет (Open Report)) и четвертая для перехода к главной форме. Изменение элемента кнопочной формы . .
|К главной странице < £'|Перейти к кнопс'чной форме
b,nvnC'4i-!a } фО(№13"
[Библиотека
:«j,----.-
- ..^144^
s J
-'
Or,,,.
j
]
Рис. 14.31. Создание кнопки перехода на главную страницу Кнопки на странице Справочники должны открывать для редактирования соответствующие таблицы. Но среди команд в кнопочной форме нет команды О т к р ы т ь таблицу. Поэтому для справочников нужно создать либо соответствующие формы, либо макросы. Однако окно Диспетчера кнопочных форм является модальным, то есть когда это окно открыто, нельзя открывать другие объекты, пользоваться меню и панелями инструментов. Поэтому придется
Создание главной кнопочной формы
449
закрыть это окно, создать макросы, а потом снова открыть и доделать страницу Справочники. 19. Нажмите кнопку Закрыть (Close) в окне Диспетчер кнопочных форм (Switchboard Manager). 20. Создайте макросы для каждой из таблиц-справочников: Города, Издательства, Разделы, МестаХранения. Каждый макрос должен состоять из одной макрокоманды ОткрытьТаблицу (ОрепТаЫе). 21. После этого снова выполните команду Сервис * Служебные программы > Диспетчер кнопочных форм (Tools > Database Utilities > Switchboard Manager). 22. Выделите страницу Справочники и нажмите кнопку Изменить (Edit). 23. Создайте на этой странице кнопки Города, Издательства, Разделы, Места хранения и К главной форме. 24. Закройте все диалоговые окна, в том числе окно диспетчера кнопочной формы. 25. Раскройте список форм в окне базы данных и найдите форму Кнопочная форма (Switchboard). 26. Откройте эту форму. Она будет выглядеть, как на рис. 14.32.
Рис. 14.32. Главная кнопочная форма
Это пока только заготовка. И мы можем улучшить ее внешний вид в конструкторе форм. 27. Переключитесь в режим конструктора. 28. Выделите элемент управления Рисунок (Image) (прямоугольный слева) и добавьте к нему рисунок, установив свойство Рисунок (Picture) (рис. 14.33). 29. Удалите элемент П р я м о у г о л ь н и к (Rectangle) в верхней части окна и оставьте только один элемент Надпись (Label) (по умолчанию создаются два элемента, давая эффект тени).
450
Занятие 14. Сборка приложения
Внедренный Вписать По ент
В; с-г г,о
Ог .*;.:г, <ргЧ
, 1'UH
Тип^ома , .'i ;•.,:, if.i1,:* ^..|;.|,:=,.|Обычный
Рис. 14.33. Настройка главной кнопочной формы
30. Измените цвет текста надписи Библиотека (черный) и увеличьте размер шрифта. 31. Выделите раздел Область данных (Detail) и установите для нее цвет фона белый. В результате вы должны получить форму, представленную на рис. 14.34.
Библиотека И Авторы Издания Читатели Л] Формуляры Отчеты Справочники U Выход
Рис. 14.34. Окончательный вид главной кнопочной формы
Проверьте, как действуют кнопки, например, если нажать кнопку Ф о р м у л я р ы , содержание формы изменится, и вы увидите вторую страницу.
Настройка параметров запуска
451
Настройка параметров запуска Существует два способа задать действия, выполняемые приложением при запуске: установка параметров запуска в специальном диалоговом окне и создание макроса AutoExec. Макрос используется для выполнения некоторой программы инициализации, которая может запросить ввод каких-либо данных, проверить определенные условия, открыть какие-то формы заранее и т. д. При открытии базы данных Access проверяет наличие макроса A u t o E x e c и выполняет его, если он существует. Второй способ использует установку параметров запуска. 1. Выберите команду Сервис > Параметры запуска (Tools > Startup). На экране появится диалоговое окно Параметры запуска (Startup) (рис. 14.35).
т glK неточная формз|
Г~ П Строка состояния
:;
;|Главное меню 1
(по умолчанию)
Полны
Г" Контекстные меню по умолчанию
Г~
(бь!рюд окна б*5ы данных, окнл прда»рки и Рис. 14.35. Диалоговое окно Параметры запуска
В диалоговом окне Параметры запуска (Startup) можно задать: D Значок и заголовок вашего приложения, которые будут отображаться в главном окне приложения и на панели задач вместо стандартного значка и заголовка Microsoft Office Access. Значок должен быть задан в файле с расширением ,1СО, а выбрать этот файл можно с помощью кнопки построителя. D Меню, которое будет появляться при запуске вместо стандартного меню Access и определять основные функции приложения. D Форму или страницу доступа к данным, которая будет появляться на экране при открытии базы данных. D Специальное контекстное меню, заменяющее встроенные контекстные меню во всех окнах приложения, кроме тех, с которыми связаны другие контекстные меню.
452
Занятие 14. Сборка приложения
Флажки Окно базы данных (Display Database Window) и Строка состояния (Display Status Bar) позволяют скрывать при запуске окно базы данных и строку состояния. Следующая группа флажков позволяет запретить пользователям вносить изменения в разработанное приложение. Пока вы разрабатываете приложение, все эти флажки установлены, но когда вы собираетесь передавать его пользователям, целесообразно снять флажки Полный набор меню Access (Allow Full Menus), Встроенные панели инструментов (Allow Built-in Toolbars) и Allow Toolbar/Menu Changes (Изменение панелей инструментов/меню). Вместо стандартных меню и панелей инструментов можно применять пользовательские меню и панели инструментов, которые вы разработали, или встроенные сокращенные меню, не допускающие пользователя к конструкторам. Чтобы пользователь не мог получить доступ к полным меню с помощью специальной комбинации клавиш Ctrl+Fll или к окну базы данных с помощью клавиши F11, нужно снять еще и флажок С п е ц и а л ь н ы е к л а в и ш и Access (Use Access Special Keys). ffiБиблиотека ЕЗЙП
. формуляры
Данные
Отчеты
Отравочники
5 Авторы ГГ| Издания ( Читатели Щ Взятыэдц-у ^ Сдать o*iry .^Каталог §§ Формуляры Ш Суммы покупик
Авторы Издания •13 Читатели Л Формуляры _И Отчеты Справочники 111 Выход
Рис. 14.36. Запуск приложения Библиотека
2. Введите в поле Заголовок приложения (Application Title) текст: Библиотека. 3. В поле Строка меню (Menu Bar) выберите в списке пункт Главное меню.
Подведение итогов
453
4. В поле Вывод формы/страницы (Display Form/Page) выберите форму Кнопочная форма.
5. Снимите все флажки. Все параметры запуска вступают в силу только после следующего запуска приложения.
6. Закройте окно Параметры запуска и закройте приложение Access. 7. Откройте снова файл Библиотека.mdb. Теперь ваше приложение после запуска будет выглядеть как на рис. 14.36. Чтобы снова получить доступ к стандартным меню и панелям инструментов, запустите приложение, удерживая клавишу Shift.
Подведение итогов Последнее занятие было посвящено созданию вспомогательных средств, связывающих в единое целое все множество объектов вашего приложения. Вы научились: • создавать строки меню, контекстные меню и панели инструментов; • добавлять кнопки и команды в стандартные панели инструментов и строки меню; • подключать строки меню, панели инструментов и контекстные меню к формам и отчетам; • управлять отображением панелей инструментов и строк меню; • пользоваться диспетчером кнопочных форм для создания главной кнопочной формы; • настраивать параметры запуска, влияющие на внешний вид приложения при запуске. На этом заканчивается наша серия занятий. Надеюсь, вам понравилась СУБД Microsoft Office Access 2003, освоению которой мы посвятили столько времени. Упражнения данной книги должны были дать вам базовые знания о том, как создавать приложения в среде Access. Если этих знаний окажется недостаточно для решения ваших задач, или вы хотите более глубоко разобраться в возможностях этой СУБД, обратитесь к одной из толстых книг, в которой приводится более полное описание всех аспектов ее использования, в том числе и языка Visual Basic для приложений.
Глоссарий В данном приложении приводятся определения терминов, употребляемых в книге. HTML (Hypertext Markup Language). Язык разметки гипертекста для публикации документов к глобальной или корпоративной сети, построенной по интернет-технологии.. SQL (Structured Query Language). Язык структурированных запросов для выборки, изменения и удаления данных таблиц базы данных. База данных (database). Множество данных определенной структуры, с которыми могут работать одна или несколько прикладных программ. Базовая таблица (base table). Таблица, которая является источником данных запроса, формы, отчета или страницы доступа к данным. Базовый запрос (base query). Запрос, который является источником данных для другого запроса, формы, отчета или страницы доступа к данным. Веб-сайт (Web Kite). Набор веб-страниц и других файлов, связанных гиперссылками, объединенных общей темой, расположенных обычно на одном веб-сервере. Веб-сервер {Web server). 1. Компьютер с определенным программным обеспечением, на котором размещен набор документов, доступный через локальную или глобальную сеть. 2. Программное обеспечение для доступа к набору документов через локальную или глобальную сеть. Веб-страница (Web page). Документ, содержащий специальные команды формирования и оформления содержимого на языке HTML, или его разновидностях (DHTML, XML), или на других языках подобного назначения (ASP, IDC, IDX). Внешнее соединение (левое соединение, правое соединение) {outer join (left join, right join)). Объединение таблиц в запросе, при котором в результирующий набор попадают все записи одной таблицы и только те записи другой, у которых совпадают связанные поля. Внешние соединения бывают левыми и правыми. Внешний ключ (foreign key). Одно или несколько полей в таблице со ссылкой на поле (поля) первичного ключа в другой таблице. Внутреннее соединение (innerjoin). Объединение таблиц в запросе, при котором в результирующий набор попадают те записи из двух связанных таблиц, у которых связанные поля совпадают. Выражение {expression). Любое значение или формула, возвращающая значение. Вычисляемое поле (calculated field). 1. Поле в запросе, значение которого является результатом вычислений над другими полями этого же запроса. 2. Элемент
Глоссарий
4.55
управления в форме, отчете или на странице доступа к данным, в котором иыводится результат вычисления выражения, а не данные, хранимые в таблице. Гиперссылка (hyperlink). Текст, выделенный цветом или подчеркиванием, или графическое изображение, при щелчке на котором осуществляется переход к файлу, определенному месту в файле, на странице HTML в World Wide Web или странице HTML во внутренней сети (интранете). Главная форма (main form). Форма, которая включает другую форму. Группировка (grouping). Разделение данных на группы по определенному критерию, Данные (data). Произвольная информация, представленная в символьной (цифровой) форме. Диаграмма (chart). Графический образ, отражающий количественную зависимость данных. Диалоговое окно (dialog). Один из основных элементов организации приложения. Заголовок группы (group header). Раздел отчета или страницы доступа к данным с элементами группировки. Запись (record). Структурированный тип данных, компоненты которого, ноля, имеют имя и тип. Запрос (query). Обращение к СУБД с заданием на выборку, добавление, изменение или удаление записей. Индекс (index). Средство быстрого доступа к данным таблицы на основе значений одного или нескольких столбцов, упорядоченный список значений и ссылок на записи, в которых хранятся эти значения. Источник записей (record source). Таблица, запрос или инструкция SQL, предоставляющая данные для формы, отчета или страницы доступа к данным. Каскадное обновление (cascade update). Средство поддержания целостности данных в связанных таблицах, которое при изменении значения ключевого поля в главной таблице обновляет все связанные записи подчиненной таблицы. Каскадное удаление (cascade delete). Средство поддержания целостности данных в связанных таблицах, при удалении записи в главной таблице удаляющее все связанные записи подчиненной таблицы. Клавиша быстрого доступа (access key). Комбинация клавиш, при нажатии которой элемент управления получает фокус. Ключевое поле (key field). Поле, однозначно идентифицирующее каждый объект в таблице, может быть частью составного ключа. Кнопки перехода (navigation buttons). Кнопки на нижней границе окон режима таблицы и режима формы для перемещения по записям. Кнопочная форма (switchboard ). Средство, предоставляющее пользователям доступ к функциям приложения. Контекстное меню (popup menu). Меню специального вида, которое появляется при нажатии правой кнопки мыши.
456
Глоссарий
Ленточная форма (continuous form). Форма, в которой одновременно выводится несколько записей базовой таблицы или запроса. Макрокоманда (macrocommand). Инструкция для выполнения некоторого действия, элемент языка макрокоманд Access. Макрос (macro). Структура из одной или нескольких макрокоманд, выполняющихся либо последовательно, либо в порядке, заданном определенными условиями. Маркер перемещения (move handle). Квадрат в левом верхнем углу выделенного элемента управления формы, отчета или страницы доступа к данным. Маркер развертывания (expand mark). Кнопка на странице доступа к данным для отображения и скрытия содержимого одного уровня группировки, или в таблице с подтаблицей. Маркер размера (size mark). Небольшие квадраты по краям выделенного элемента управления, раздела формы или отчета, с помощью которых можно менять размеры формы или элемента управления. Мастера объектов (Object Wizards). Мастера для создания объектов базы данных Access в диалоговых окнах Новая таблица (New Table), Новый запрос (New Query), Новая форма (New Form), Новая страница доступа к данным (New Data Access Page) и Новый отчет (New Report). Мастера элементов управления (Control Wizards). Мастера создания встроенных элементов управления и элементов ActiveX для добавления их в формы, отчеты и страницы доступа к данным. Модель данных (data model). Совокупность принципов организации базы данных. В СУБД Access используется реляционная модель данных. Окно базы данных (database window). Окно со списками всех объектов базы данных для доступа к этим объектам. Окно свойств (properties sheet). Окно просмотра и изменения свойств таблиц, запросов, форм, отчетов, страниц доступа к данным и элементов управления. Операнд (operand). Элемент данных, участвующий в операции. Оператор (operator). Допустимое в языке программирования высокого уровня предложение, задающее целостное законченное действие или описание. Операция (operation). Действие, выполняемое над данными. Отладка (debug). Поиск и исправление ошибок в макросах или процедурах VBA. Отчет (report). Объект базы данных для вывода на печать данных в отформатированном виде. . Панель инструментов (toolbar). Один из видов панелей команд. Панель команд (command bar). Панель для размещения элементов управления. Панель элементов (toolbox). Панель инструментов с кнопками создания элементов управления в формах, отчетах и страницах доступа к данным. Первичный ключ (primary key). Один или несколько столбцов (атрибутов), однозначно идентифицирующие каждую запись в таблице. Подчиненная форма, подчиненный отчет (subform, subreport). Форма (отчет), которая встраивается в главную форму (отчет).
Глоссарий
4э/
Поле (1) {field). Элемент данных в записи. Поле (2) (text box). Элемент управления для ввода и отображения текстовых или числовых данных. Поле подстановок (lookup field). Список возможных значений поля в таблице,. используемый для упрощения ввода данных. Построитель (builder). Визуальный интерфейс для формирования значений свойств объектов. Когда построитель подключается к какому-либо свойству, справа от ячейки с этим свойством появляется кнопка П о с т р о и т ь или в контекстное меню включается одноименная команда. Примечание гриппы (group footer). Раздел отчета с итоговыми значениями групп ы. Присоединенный элемент управления (bound control ). Элемент управления в форме, отчете или на странице доступа к данным, в котором выводятся данные поля базовой таблицы, запроса или инструкции SQL. Проект Access (Access project). Файл Access .adp для создания приложения в архитектуре «клиент-сервер». Процедура обработки события (event procedure). Реакцией объекта на произошедшее событие может быть выполнение им некоторых ладанных действий, процедуры обработки события. Разработчик может определять собственные процедуры обработки события и назначать их объекту. Публикация (publishing). Процесс вывода таблиц, форм и отчетов в статическом или динамическом формате HTML с последующей установкой всех связанных файлов в виде приложений на веб-сервере, например, Microsoft Internet Information Server. Раскрывающийся список (dropdown list). Элемент управления для выбора значения в списке. Редактор сценариев (script editor). Средство для работы с документами в формате HTML. Реляционная система управления базами данных (РСУБД) (relational database management system (RDBMS)). СУБД на основе реляционной модели данных, в которой связи между наборами данных реализованы на совпадении значений полей. Свободный элемент управления (unbound control). Элемент управления в форме, отчете или на странице доступа к данным, не связанный с данными. Свойство (property). Характеристика объекта, принимающая определенное значение. Связанная таблица (linked table). Внешняя таблица, доступная из текущего файла базы данных. Связь (relationship). Логическое отношение между объектами, представленными таблицами. Система управления базами данных (СУБД) (database management system (DBMS)). Комплекс программ и языковых средств, предназначенных для создания, ведения и использования баз данных.
458
Глоссарий
Снимок отчета (report snapshot). Файл .snp — копия страницы отчета, открываемый программой просмотра снимков. Событие (event). Одномоментное идентифицируемое изменение состояния некоторой системы. Соединение (join). Операция над таблицами баз данных. Сортировка (sort). Изменение порядка представления данных. Составной ключ (compound key). Первичный ключ таблицы, состоящий из нескольких полей. Список объектов (object list). Область в правой части окна базы данных, отображающая объекты Access. Статистическая функция (statistic function). Функция расчета итоговых значений. Столбец подстановок (lookup column). Список значений, которые могут быть введены в текстовое или числовое поле, может быть как фиксированным, так и содержаться в таблице или запросе. Страница доступа к данным (data access page). Веб-страница для добавления, редактирования, просмотра и обработки текущих данных в базе данных Microsoft Office Access или Microsoft SQL Server. Строка (string). Последовательность символов, заключенная в двойные кавычки. Строка мелю (menu bar). Панель команд с элементами управления — раскрывающимися списками команд меню. Схема данных (relationship). Графическое представление структуры базы данных Access. Таблица базы данных (table). Набор данных в реляционной СУБД, состоящий из переменного количества записей постоянной структуры. Тип данных (data type). Атрибут поля в таблице, определяющий, какие данные могут содержаться в этом поле. Уровень группировки (grouping level). Уровень вложенности группы в отчете или на странице доступа к данным. Фильтр (filter). Выборка из общего массива данных по определенному критерию. Форма (form). Объект базы данных для ввода, просмотра или редактирования записей в таблицах Access, Целостность данных (data integrity). Система правил для поддержания связей записей в связанных таблицах. Элемент группировки (grouping control). Элемент управления на форме, отчете или странице доступа к данным, к которому привязано поле источника данных, по значению которого производится группировка значений других элементов управления, к которым привязаны другие поля источника данных. Элемент управления (control). Средство графического интерфейса пользователя, предназначенное для ввода-вывода информации и управления работой программы. Воздействие пользователя на элемент управления вызывает событие в системе.
Алфавитный указатель Файлы *.xls, 105 .mdb, 26 А
Access 2003 компоненты, 23 новое, 42 проект, 62 расположение, 22 справка, 43 установка по требованию, 23
S
SQL, 53 активизировать форму, 401
бланк запроса, 151 буфер обмена, 103
В Вид Заголовок/примечание формы, 223 Колонтитулы, 223 Крупные значки, 30 Панели инструментов, 226 Настройка, 115, 429 Панель элементов, 368 Последовательность перехода, 295 Режим формы, 258 Список полей, 368 всплывающая подсказка, 29 всплывающее окно, 274 выражение, 161 вычисляемые поля, 169
Б база данных Korthwind, 26 NorthwindCS, 64 закрытие, 48 объекты, 28 открытие монопольно, 28 монопольно для чтения, 28 открыть, 28 открыть для чтения, 28 реляционная, 51 схемы, 63 учебная, 26, 64 бегущая строка, 368
гиперссылка. 42 группа отчета свойство Группировка, 334 Заголовок группы, 333 Не разрывать, 334 Примечание группы, 333 группы отчета свойство Интервал, 334
д
Диаграмма Office, 369 Диспетчер кнопочных форм, 444
460
Алфавитный указатель
3
Записи Обновить, 309, 398 запись текущая, 96 запрос, 28, 53, 145 выполнение, 153 группировка записей, 409 добавление, 214 записей, 214 полей, 152, 155 таблицы, 154 изменение, 154 изменение порядка вывода полей, 156 итоги, 181 на выборку, 145 на добавление, 416 на обновление, 420 обновления данных, 205 параметры, 177 с параметром, 175 свойства уникальные записи, 204 уникальные значения, 204 создание таблицы, 208 сортировка, 152 удаление, 213 удаление записей, 211 условия отбора, 153, 157
И импорт структуры таблицы, индекс, 77 простой, 77 составной, 77 инструкция SQL, 159
К клавиша Alt, 435 Delete, 310 Enter, 304 Esc, 306 F l l , 92,452
108
клавиша (продолжение) F2, 40 Insert, 409 Shift, 293,453 Tab, 295,304 клавиши доступа, 246, 435 ключ первичный, 52 составной, 52 кнопки панель инструментов, 29 перемещения по записям, 96 кнопочная форма, 444 команда Вставить, 41 Выбрать значок для кнопки, 441 Выстроить значки, 30 Добавить таблицу, 88 Изменить значок на кнопке, 441 Импорт, 400 Копировать, 40 Настройка, 429 Новая группа, 43 Параметры, 177 Переименовать, 40 Переименовать столбец, 68 Последовательность перехода, 295 Свойства, 111, 125,442 Связи с таблицами, 109 Упорядочить значки, 32 комбинация клавиш Alt+Пробел, 29 Ctrl+Fll, 452 Ctrl+Ins, 40, 101 Ctrl+V, 41 Ctrl+C, 40 Shift+F2, 169,305,331 Shift+Ins, 41, 101 Shift+Tab, 295 контекстное меню, 436
м
макет таблицы, 114 макрос, 391 Auto Exec, 451
Алфавитный указатель
макрос (продолжение) отладка, 403 пошаговый режим, 403 продолжить выполнение, 404 условие, 399 макросы. 28 запуск, 426 объединение в группы, 421 маркер развертывания, 368 мастер базы данных Microsoft SQL Server, 63 импорта электронных таблиц, 105 подстановок, 80 связывания электронной таблицы, 109 создания базы данных, 55 установки, 21 меню, 29 контекстные, 28 раскрывающиеся, 28 системное приложения, 28 модули, 28
н
надпись присоединенная, 230 свободная, 230
О
объединение внешнее, 167 левое, 167 правое, 167 внутреннее, 165 объект базы данных, 28 добавить в группу, 42 объекты копирование, 40 открытие, 33 переименование, 40 создание, ярлыки, 33 создать группу, 43 удаление, 40
окно базы данных, 28 заголовок, 28 отношение многис-ко-многим, 53 один-к-одному, 53 один-ко-многим, 53 отчет верхний колонтитул, 322 заголовок, 321 группы, 322 нижний колонтитул, 322 область данных, 322 примечание, 322 свойство Неразрывная группа, 335 отчеты, 28
п
панели инструментов, 28, 29 конструктор форм, 226 пользовательские, 441 стандартная, 29 формат (форма/отчет), 227 панель команд, 428 пользовательская, 428 свойства закрепление, 431 изменение размера, 430 настройка, 430 отобрадение в меню. 430 отображение и скрытие, 430 перемещение, 430 тип, 430 стандартная, 428 панель перехода по записям, 369 панель элементов, 225 отображение, 226 папка Избранное, 32 параметры запроса, 177 параметры запуска, 451 параметры страницы изменение, 135 первичный ключ, 52 поле вычисляемое , 169
461
462
Алфавитный указатель
поле (продолжение) ключевое, 52 поле подстановок, 242 свойство Заглавия столбцов, 82 Значение по умолчанию, 76 Имя, 73 Индексированное поле, 74, 78 Источник строк, 82 Маска ввода, 86 Новые значения, 74 Обязательное поле, 75 Ограничиться списком, 83 Подпись, 74 присоединенный столбец, 82 Размер поля, 74 Сообщение об ошибке, 85 Тин данных, 73 Тип источника строк, 82 Тип элемента управления, 82 Условие на значение, 85, 98 Формат поля, 74 Число столбцов, 82 Число строк списка, 82 Ширина списка, 82 Ширина столбцов, 82 помощник, 24 построитель выражений, 172 Правка Буфер обмена, 103 Восстановить запись, 306 Вставить, 41 Выделить форму, 268 Копировать, 40 Удалить, 256 раскрывающийся список, 372 растровый рисунок, 297 редактор кнопок, 441 режим конструктора, 32 результирующий набор, 149 рисунок внедренный, 298 связанный, 298
Сводная таблица Office, 369 свойства событий, 393 связанный HTML, 368 связь, 52 Сервис Параметры, 114, 119 параметры запуска, 451 Служебные программы Диспетчер кнопочных форм, 445 Сжать и восстановить базу данных, 102 Схема данных, 59, 88 снимок отчета, 346 сортировка по возрастанию, 122 по убыванию, 122 по умолчанию, 122 составной ключ, 52 Справка Показать помощника, 47 Помощник, 44 Справка Microsoft Access, 44 справочники, 67 столбец подстановок, 79, 97 страница доступа к данным, 353 группировка заголовок группы, 378 маркер развертывания группы, 378 элемент группировки, 377 список полей, 370 страницы, 28 строка меню, 28, 29 строка подключения, 355 строка состояния, 28 СУБД операции с данными, 53 реляционная, 51 схемы базы данных, 63 счетчик, 74
Т таблица, 28 внешняя, 109 установка связи, 109
Алфавитным указатель
таблица (продолжение) высота строк, 115 главная, 53 закрепить столбцы, 118 запись, 51 изменение шрифта, 115 изменить макет, 114 копирование структуры, 41 подчиненная, 53 поле, 51 предварительный просмотр, 135 рассылка, 141 связанная, НО скрыть столбец, 117 ширина столбца, 116 экспорт в документ Word, 138 в файл Excel, 138 в файл HTML, 139 типы данных, 51 согласованные, 166
Ф Файл Внешние данные Импорт, 104, 108 Выход, 49 Закрыть, 48 Отправить, 141, 349 Параметры страницы, 135, 321, 344 Печать, 346 Подключение, 63 Создать, 62 Сохранить, 258 Сохранить как, 216,363 Экспорт, 139,348 файл подключений, 357 фильтр обычный, 130 по выделенному, 130 по заданному условию, 130, 131 по форме, 130, 132 расширенны и, 130 фоновый рисунок, 298 форма, 219 вертикальная линейка, 224
форма (продолжение) вертикальная полоса прокрутки, 225 верхний колонтитул, 224 главная , 252 горизонтальная линейка, 224 горизонтальная полоса прокрутки, 225 заголовок, 223 ленточная, 279 нижний колонтитул, 224 нижняя граница, 224 область данных, 224 правая граница, 224 примечание, 224 режим конструктора, 222 таблицы, 222 формы, 220 свойства Автоматический размер, 272 Ввод данных, 270 Всплывающее окно, 274 Выравнивание рисунка, 299 Всточник записей, 268 Кнопка оконного меню, 273 . Кнопки перехода, 272 Контекстное меню, 429, 438 Контекстные меню, 438 Масштабы рисунка, 298 Мозаичное заполнение, 299 Область выделения, 272 Панель инструментов, 429 Подпись, 270 Полосы прокрутки, 272 Порядок сортировки, 269 Разрешить удаление, 270 Режим по умолчанию, 270 Рисунок, 298 Событий, 274 Строка меню, 429 Типа рисунка, 298 стиль, 300 табличная, 264 элементы управления, 219 Формат Автоформат, 300
463
464
Алфавитный указатель
Формат (продолжение) Выровнять По левому краю, 293 Закрепить столбцы, 118 Интервал по вертикали Сделать равным, 293 На задний план, 424 Отобразить все столбцы, 118 Отобразить столбцы, 118 Подтаблица Развернуть все, ИЗ Свернуть все, 114 Размер по самому широкому, 293 Скрыть столбцы, 117 Тема, 382 Ширина столбца, 117 Шрифт, 115 формы, 28 целостность данных, 211 обеспечение, 90
элемент управления Выключатель, 232 Группа переключателей, 233 Копирование, 407 Линия, 253 Набор вкладок, 250 Надпись, 230 Переключатель, 232 Подчиненная форма/отчет, 252 Поле, 228 Поле со списком, 241, 405 Присоединенная рамка объекта, 247 Прямоугольник, 253 Разрыв страницы, 250 Рисунок, 249 Свободная рамка объекта, 247 Список, 237 Флажок, 232 элементы управления, 219 вычисляемые, 228 присоединенные, 227 свободные, 228
Электронная таблица Office, 369
язык структурированных запросов, 53
LJ
Я