|
||||
|
Глава 7 Разработка баз данных в программе Access ? Урок 7.1. Знакомство с программой Access ? Урок 7.2. Основные приемы работы с данными ? Урок 7.3. Создание таблиц ? Урок 7.4. Проектирование базы данных. Создание связей между таблицами ? Урок 7.5. Запросы ? Урок 7.6. Формы и отчеты Access – это приложение для работы с базами данных или система управления базами данных (СУБД). Компьютерные базы данных используются почти во всех областях деятельности. Умение работать с ними обязательно для пользователей компьютеров наряду с навыками использования текстовых редакторов, электронных таблиц и возможностей Интернета. Базы данных и программы для работы с ними отличаются от других приложений тем, что для их настройки и обслуживания приходится привлекать квалифицированных программистов и системных администраторов. Для обслуживания средних и больших информационных систем эти специалисты необходимы, но в случае небольших баз данных большинство задач под силу решить обычным пользователям, изучившим основы работы в среде Access 2007. Основные цели изучения Access 2007: ? разобраться с принципами функционирования и использования современных баз данных; ? научиться выполнять основные операции с данными в среде Access 2007 – ввод, просмотр, редактирование, поиск, отбор и др.; ? самостоятельно разработать проект простой базы данных и реализовать его в среде Access; ? научиться создавать формы, запросы и отчеты, которые помогут редактировать и анализировать данные, а также выводить их на печать. Поскольку все современные программы для работы с данными используют сходные принципы, то, изучив Access, вы сможете разобраться с базами данных других типов. Курс обучения основам Access 2007 состоит из шести уроков, изучение каждого из которых следует выполнять по плану, известному вам из предыдущих частей книги: 1. Внимательно изучите текст урока. 2. Выполните одну или несколько имеющихся в каждом уроке практических работ. В уроках 7.3-7.6 вы будете шаг за шагом разрабатывать простую учебную базу данных. 3. Выполните самостоятельные задания. 4. Ответьте на контрольные вопросы разделов «Подведение итогов». Урок 7.1. Знакомство с программой Access Основные сведения о базах данных и программах для их обработки Сегодня компьютеры хранят и обрабатывают значительные объемы информации, начиная от бухгалтерии маленькой фирмы и заканчивая большими информационными системами. Например, на железной дороге тысячи компьютеров объединены в информационную сеть, что позволяет заказать нужный билет в любой кассе, а в государственных учреждениях (налоговая инспекция или пенсионный фонд) хранится соответствующая информация о миллионах граждан. Для эффективной работы с данными их нужно упорядочить, то есть сгруппировать однотипную информацию, а также указать связи и зависимости между различными группами данных. Для упорядоченной информации применяют термин база данных. База данных – это упорядоченная совокупность сведений об определенных предметах или явлениях. Базы данных могут существовать без компьютеров, например школьный журнал успеваемости является маленькой базой данных, а в качестве больших баз данных могут выступать различные архивы и хранилища документов. В современном мире компьютеры являются основным местом хранения баз данных, но для эффективной работы с ними нужно использовать специальные программы. Система управления базами данных (СУБД) – это компьютерная программа для работы пользователей с базой данных. Следует различать понятия база данных и СУБД. Далее в тексте базой данных будут называться упорядоченные данные, хранящиеся в одном или нескольких файлах, а с помощью СУБД Access 2007 эти данные будут обрабатываться. База данных вместе с программой для ее обработки будет называться информационной системой. На сегодня существует несколько популярных систем управления базами данных, различающихся возможностями и областью применения. Например, СУБД Oracle или Microsoft SQL Server используются в больших информационных системах и требуют квалифицированных специалистов для их установки, настройки и обслуживания. Если информационная система будет использоваться на одном или нескольких компьютерах, а общий объем хранимой информации невелик, то СУБД Access 2007 – оптимальный вариант. Access 2007 как реляционная система управления базами данных Access 2007 является настольной системой управления базами данных (СУБД), которая сочетает широкие возможности с простотой использования и дружественным интерфейсом. Access является СУБД реляционного типа, то есть все данные хранятся во взаимосвязанных таблицах. С основными особенностями реляционной модели хранения информации следует ознакомиться подробнее. Сначала рассмотрим отдельно взятую таблицу с данными (рис. 7.1). Рис. 7.1. Пример таблицы базы данных Каждая таблица базы данных хранит сведения об однотипных объектах или явлениях, которые можно описать одним общим понятием. Например, рассматриваемая таблица содержит информацию о заказах, выполняемых фирмой, а в других таблицах той же базы данных будут храниться такие понятия, как клиенты, поставщики илисотрудники. Столбцы в таблице базы данных называются полями и служат для хранения отдельных свойств понятия. В каждом поле могут храниться данные одного типа, например текст, числа или даты. Поля имеют названия, которые отображаются в верхней строке таблицы. Каждая строка таблицы называется записью и содержит всю информацию об одном объекте или явлении. Например, в таблице Заказы (см. рис. 7.1) каждая запись (строка) содержит информацию об одном выполненном заказе. В нижней части таблицы отображается номер текущей записи и их общее количество. Между отдельными таблицами реляционной базы данных устанавливаются связи, которые позволяют удобно хранить и обрабатывать данные. Например, в уже упомянутой таблице Заказы имеется поле Сотрудник, которое связано с отдельной таблицей Сотрудники. В этой таблице можно хранить расширенные сведения о сотрудниках, а процесс заполнения поля Сотрудник таблицы Заказы будет состоять в выборе фамилии сотрудника из раскрывающегося списка (рис. 7.2). Аналогично можно создать таблицу Клиенты, чтобы хранить в ней расширенные сведения о сотрудниках, и связать ее с полем Клиент таблицы Заказы. Подробно процесс планирования и создания связей будет рассмотрен в уроке 7.4. Рис. 7.2. Выбор значения поля из раскрывающегося списка, который содержит данные из связанной таблицы Чем база данных отличается от электронной таблицы Access является специализированным приложением для хранения упорядоченных данных, однако для этого можно использовать и другие приложения, например Excel. В Excel, как и в Access, данные хранятся в виде таблиц; кроме того, Excel содержит специальные средства для работы с упорядоченными данными, и с помощью этой программы можно создавать простые базы данных. Несмотря на внешнее сходство, между Excel и Access существует несколько существенных различий. ? Excel не позволяет устанавливать реляционные связи между таблицами. С помощью связей в Access можно избежать ненужного дублирования данных и ошибок в процессе обработки информации. Кроме этого, можно совместно использовать данные из разных таблиц. ? Access позволяет хранить в таблицах миллионы записей, обеспечивая высокую скорость их обработки. ? Access позволяет организовать одновременную работу с базой данных нескольких десятков работников, при этом каждый из них сможет в режиме реального времени видеть изменения, внесенные другими пользователями. ? Данные в Access сохраняются автоматически после завершения редактирования текущей записи (в Excel для этого нужно выполнять команду Сохранить). ? Таблицы в Access имеют заранее предопределенную жесткую структуру, и вы не сможете в одном столбце хранить данные разных типов или форматировать отдельные ячейки. ? Прямо в таблице базы данных Access нельзя выполнять вычисления – для этого нужно использовать запросы. Таким образом, Excel является подходящей программой для создания маленькой базы данных, которая помещается на одном рабочем листе. Excel имеет ряд существенных ограничений для ведения полноценной базы данных, но может с успехом использоваться для анализа данных благодаря достаточному математическому аппарату. Запуск Access. Открытие учебной базы данных Борей Access 2007 можно запустить с помощью строки поиска в меню Пуск или выполнив команду Пуск > Все программы > Microsoft Office > Microsoft Office Access 2007. В отличие от Word или Excel после запуска Access новый документ не создается, а появляется окно Приступая к работе с Microsoft Office Access (рис. 7.3). С помощью этого окна можно открыть недавно использовавшуюся базу данных, создать новую на основе готового шаблона или с нуля. В комплект поставки Access 2007 входит специальная учебная база данных Борей, в которой хранятся сведения о работе вымышленной торговой фирмы. Для начала работы с учебной базой данных выполните следующие действия. 1. В окне Приступая к работе выберите категорию Локальные шаблоны, после чего выберите значок Борей 2007. Рис. 7.3. Окно Приступая к работе с Microsoft Office Access 2. В правой части окна Access при необходимости измените предлагаемое по умолчанию имя базы данных и папку для ее сохранения и нажмите кнопку Создать. 3. Дождитесь завершения всех операций и появления стартовой заставки базы данных Борей. 4. В составе базы данных Борей имеется ряд макросов и модулей, которые по умолчанию отключаются встроенной системой безопасности Access. Для использования всех возможностей учебной базы данных следует разрешить заблокированное содержимое, щелкнув на кнопке Параметры в информационной строке Access. В появившемся окне установите переключатель в положение Включитьэто содержимое и нажмите кнопку OK (рис. 7.4).
5. После включения макросов появится окно входа, в котором после нажатия кнопки Вход вы увидите главную форму базы данных. Рис. 7.4. Включение активного содержимого в окне параметров безопасности Для повторного открытия базы данных Борей используйте ссылку в группе Открыть последнюю базу данных, которая находится в правой части окна Приступая к работе (см. рис. 7.3). Основы интерфейса Access 2007 Учебная база данных Борей спроектирована для удобной работы сотрудников вымышленной компании, поэтому разработчики скрыли один важный элемент интерфейса – область переходов. Для ее отображения щелкните на кнопке Область переходов у левой границы окна программы или нажмите клавишу F11 (рис. 7.5). В верхней части окна Access находится лента с несколькими командными вкладками, а в левой части строки заголовка – Кнопка «Office» и панель быстрого доступа. Приемы использования и настройки этих элементов интерфейса одинаковы для всех приложений Microsoft Office и были рассмотрены при изучении программы Word (см. урок 5.1). В левой части окна Access расположена область переходов, в которой содержатся все имеющиеся в базе данных объекты. Основными объектами базы данных являются таблицы, в которых хранятся данные, а другие объекты (формы, отчеты, запросы и др.) служат для обработки и отображения хранящихся в таблице данных. Объекты могут отображаться с группировкой по различным категориям. По умолчанию для новых баз данных используется категория Таблицы и связанные представления, в которой используется группировка объектов по таблицам, с которыми они связаны (рис. 7.6, слева). С помощью меню области переходов можно переключиться на категорию Тип объекта (рис. 7.6, справа) (этот способ группировки применялся во всех предыдущих версиях Access). Разработчики баз данных могут также создавать свои категории для удобства работы (как в базе данных Борей (см. рис. 7.5)). Рис. 7.5. База данных Борей в окне Access 2007 Открытие любого объекта базы данных выполняется следующим образом. 1. Если область переходов скрыта, включите ее отображение с помощью кнопки Областьпереходов у левой границы окна программы или клавиши F11. 2. Найдите в области переходов нужный объект. Для этого нужно знать, в какой группе он находится, и, если нужная группа свернута, разверните ее щелчком на названии. 3. Дважды щелкните кнопкой мыши на нужном объекте – он будет открыт в рабочей области окна Access. Рис. 7.6. Варианты группировки объектов в области переходов: по связанным с ними таблицам (слева), категория Тип объекта (справа) Объекты базы данных могут отображаться в отдельных окнах или на вкладках. Возможность отображения объектов на вкладках появилась только в Access 2007, этот вариант удобнее, чем перекрывающиеся окна в предыдущих версиях программы. Для переключения между объектами щелкайте на заголовках вкладок, а чтобы закрыть активную вкладку, нажмите кнопку в правом углу строки заголовков вкладок. Для некоторых баз данных использование вкладок может быть отключено; чтобы задействовать их, нажмите Кнопку «Office», затем кнопку Парамеры Access, в появившемся окне выберите категорию Текущая база данных и установите переключатель Параметрыокна документа в положение вкладки. Объекты базы данных База данных состоит из отдельных объектов, находящихся в области переходов. Объекты базы данных имеют следующее назначение. ? Таблицы. Используются для хранения данных и являются основным объектом Access. Все остальные объекты используют данные, которые хранятся в таблицах. Таблицы базы данных имеют внешнее сходство с таблицами Excel (см. рис. 7.1). ? Запросы. Используются для отбора данных из одной или нескольких таблиц. В запросах можно задавать условия отбора данных, производить вычисления (в том числе и групповые) и другие операции с данными. Результат выполнения запроса отображается в виде таблицы, однако запрос не хранит никакой информации, а только показывает то, что находится в таблицах. Существуют также специальные типы запросов, которые выполняют добавление, изменение или удаление сразу большого количества записей. ? Формы. Основное назначение форм – облегчение ввода, просмотра и редактирования записей. Формы обычно отображают одну запись из таблицы и имеют кнопки для перехода от одной записи к другой. Формы могут использоваться для других целей, различные виды форм можно найти в учебной базе данных Борей. ? Отчеты. Позволяют отобрать данные из таблиц или запросов для просмотра и вывода на печать. В отчетах можно использовать различные приемы форматирования и оформления документов. ? Макросы. Макрос – это последовательность специальных макрокоманд для выполнения определенных операций. Макросы обычно связываются с кнопками, реже – с другими элементами форм. После нажатия кнопки записанные в макросе команды выполняются автоматически. ? Модули. Модуль – это программа на языке Visual Basic для приложений (VBA), состоящая из процедур и функций. Модули и макросы позволяют значительно расширить возможности базы данных, но их создание требует определенной квалификации. С объектами базы данных можно выполнять различные операции, например создавать, изменять или удалять. Для этого можно использовать соответствующие кнопки на ленте или другие элементы, например контекстное меню. Об особенностях работы с объектами базы данных вы узнаете из следующих уроков. Практическая работа 53. Запуск Access. Работа с объектами базы данных Задание. Ознакомиться с окном программы Access. Запустить и рассмотреть учебную базу данных.
Последовательность выполнения 1. Запустите программу Access и откройте учебную базу данных Борей. 2. Ознакомьтесь с окном программы и его элементами (см. рис. 7.5). 3. Если область переходов не отображается на экране, включите ее с помощью клавиши F11 или кнопки Область переходов у левой границы окна. 4. Щелкните кнопкой мыши на заголовке области переходов и в появившемся меню выполните команду Таблицы и связанные представления. 5. В области переходов найдите группу Заказы и разверните ее, щелкнув кнопкой мыши на заголовке группы. 6. Найдите таблицу Заказы и откройте ее двойным щелчком кнопки мыши. 7. Ознакомьтесь с содержимым таблицы. Для просмотра всей имеющейся информации используйте линейки прокрутки. 8. Аналогично найдите в группе Сотрудники таблицу Сотрудники и откройте ее. 9. Переключитесь между открытыми таблицами с помощью вкладок. 10. Щелкните кнопкой мыши на заголовке области переходов и в появившемся меню выполните команду Тип объекта. 11. В области переходов разверните категорию Формы и откройте форму Сведения о Сотрудниках. 12. Просмотрите сведения обо всех сотрудниках, используя для перехода от одной записи к другой кнопки в нижней части формы или клавиши Page Up/Page Down, затем закройте форму Сведения о Сотрудниках. 13. В группе Отчеты найдите и просмотрите отчет Адресная книга Сотрудников. 14. Закройте все открытые вкладки с помощью кнопки в правом углу строки заголовков вкладок. 15. С помощью меню области переходов верните режим группировки Таблицы и связанные представления. 16. Самостоятельно откройте форму Сведения о Сотрудниках и отчет Адресная книга Сотрудников. 17. Выполните команду Работа с базами данных > Показать или скрыть > Схема данных. В появившемся окне можно увидеть и проанализировать связи между таблицами. 18. Закройте открытые вкладки и завершите работу с программой Access. Подведение итогов Вопросы для проверки ? Чем отличается база данных от СУБД? ? Что такое таблица, поле, запись? ? Для чего используются связи между таблицами базы данных? ? Какие преимущества имеет СУБД в сравнении с электронными таблицами? ? Почему при открытии базы данных некоторые ее функции могут быть отключены? ? Для чего используется область переходов? ? Какой из объектов базы данных является наиболее важным? ? Для чего используются запросы, формы и отчеты? Вы получили основные сведения о базах данных. В следующем уроке будут рассмотрены приемы работы с готовой базой данных, в качестве которой будет использована уже рассмотренная база данных Борей. Урок 7.2. Основные приемы работы с данными Просмотр и редактирование таблиц Для открытия любой таблицы базы данных для просмотра или редактирования найдите ее в области переходов и дважды щелкните кнопкой мыши на ее значке. Для просмотра содержимого таблицы используйте линейки прокрутки, клавиши управления курсором или панель перехода по записям, которая расположена в нижней части таблицы (рис. 7.7). Для редактирования данных в таблице можно применять приемы, известные по программе Excel. Например, для изменения значения поля щелкните на нем кнопкой мыши, введите новое значение и нажмите одну из клавиш перемещения курсора – Tab или Enter. Для добавления новой записи нажмите соответствующую кнопку на панели перехода по данным – курсор переместится в конец таблицы, где будет создана новая запись, и вы сможете заполнить ее данными. Рис. 7.7.Панель перехода по записям Для удаления записи можно щелкнуть правой кнопкой мыши на нужной записи в области заголовков строк, выполнить в контекстном меню команду Удалить запись иподтвердить действие в появившемся окне. Для работы с записями также можно использовать группу команд Записи на вкладке Главная. Эти команды имеют следующее назначение. ? Обновить все. Если с базой данных работают несколько пользователей, то с помощью этой кнопки можно увидеть изменения, внесенные другими пользователями. ? Создать. Добавление новой записи. ? Сохранить. Запись изменений в редактируемой записи. При переходе к следующей записи изменения в текущей сохраняются автоматически. ? Удалить. Удаление значения текущего поля. С помощью стрелки в правой части кнопки можно выполнить команды для удаления поля или записи целиком. ? Итоги. Включение строки с итоговыми данными в нижней части таблицы. Для вычисления итогов щелкните кнопкой мыши на нужном поле в строке Итоги ииз раскрывающегося списка выберите итоговую функцию. ? Орфография. Запуск процедуры проверки орфографии для текстовых полей. ? Дополнительно. Отображение меню дополнительных команд для работы с таблицей.
При просмотре и редактировании данных обратите внимание на следующие особенности: ? порядок записей в таблице определяется способом ее сортировки, поэтому поменять записи местами нельзя, а новая запись будет добавляться в конец таблицы; ? поле с типом данных Счетчик всегда заполняется автоматически; ? на панели быстрого доступа имеется кнопка Отменить, но можно отменить изменения только в последней записи, которую вы редактировали; для оперативной отмены редактирования можно также использовать клавишу Esс; ? после редактирования данных в таблице нет необходимости выполнять команду Сохранить, данные сохраняются автоматически при переходе к следующей записи; ? в первом столбце некоторых таблиц могут отображаться маленькие квадраты со знаком + внутри; щелкнув на этом знаке кнопкой мыши, можно просмотреть связанные данные из подчиненных таблиц (подробнее о связанных таблицах будет рассказано в уроке 7.4). Работа с формами Для редактирования таблиц, состоящих из большого количества полей, лучше использовать формы, которые отображают на экране только одну выбранную запись в виде карточки (рис. 7.8). При использовании в области переходов категории Таблицыи связанные представления формы нужно искать в тех группах, где находятся соответствующие им таблицы. При переключении на категорию Тип объекта все формы будут собраны в одной группе Формы. Возможности работы с данными при использовании форм не очень отличаются от рассмотренных выше приемов редактирования таблиц: ? для смены текущей записи используйте панель перехода по записям (см. рис. 7.7), которая обычно присутствует в нижней части каждой формы; ? для перехода по полям можно использовать кнопку мыши и клавиши Tab или Enter; ? для работы с записями используйте кнопки в группе Записи вкладки Главная или быстрые клавиши. Разработчики баз данных могут добавлять на формы дополнительные элементы управления, повышающие удобство работы пользователей, например ссылки для быстрого перехода к связанным объектам базы данных. Рис. 7.8. Форма для редактирования таблицы Сотрудники базы данных Борей Поиск и замена данных По современным меркам таблица с несколькими тысячами записей считается небольшой, но даже в такой таблице ручной поиск или отбор нужной информации может занять продолжительное время. С помощью средств поиска, сортировки и фильтрации нужные данные можно найти за несколько секунд. Для поиска записи по фрагменту текста используйте строку поиска в нижней части окна. При вводе текста в поле поиска в таблице будет автоматически выделено первое совпадающее значение, а для перехода к последующим совпадениям нажимайте клавишу Enter. Для поиска по значению определенного поля можно воспользоваться диалоговым окном Поиск и замена. Последовательность действий следующая. 1. Установите курсор в нужное поле и выполните команду Главная > Найти > Найти. 2. В появившемся окне (рис. 7.9) в поле Образец введите искомый текст, а в списке Поиск в выберите название поля, по которому нужно выполнить поиск. Рис. 7.9. Окно поиска в базе данных 3. В поле Совпадение выберите один из способов сравнения искомого значения: с любой частью поля, Поля целиком, с начала поля. 4. Нажмите кнопку Найти далее – будет выполнен поиск первой подходящей записи. Для перехода к следующей записи, отвечающей условию поиска, нажимайте кнопку Найти далее. Иногда возникает необходимость замены определенного значения на другое во всех записях таблицы. Для этого выполните команду Правка > Заменить. Окно замены почти не отличается от окна поиска. В нем есть дополнительное поле Заменить на: для ввода заменяемого текста, а также кнопки Заменить (для замены одного найденного значения) и Заменить все (для автоматической замены всех имеющихся значений). Сортировка данных По умолчанию записи в таблице отображаются в том порядке, в котором они были введены в базу данных. Часто возникает необходимость упорядочить (то есть отсортировать) записи в таблице по значению определенного поля. Сортировка позволяет просматривать данные в удобном виде, а также быстро определять максимальные или минимальные значения какого-либо поля. Для сортировки по значению определенного поля достаточно установить в него курсор и нажать одну из двух кнопок в области Сортировка и фильтр вкладки Главная: По возрастанию или По убыванию Команды для сортировки также находятся в контекстном меню столбцов таблицы. Для сортировки по нескольким полям следует последовательно выполнять команды сортировки для нужных полей в последовательности от внутреннего к внешнему (в обратном порядке). Например, чтобы отсортировать таблицу Заказы базы данных Борей по сотруднику и дате отгрузки, сначала следует выполнить команду сортировки для поля Дата отгрузки, а затем – по полю Сотрудник. Если поле участвует в сортировке, то справа от его названия будет отображаться стрелка, указывающая направление сортировки. Для отмены сортировки по всем полям используйте кнопку Очистить все сортировки в группе Сортировка и фильтр вкладкиГлавная.
Использование фильтров С помощью фильтра можно отбирать для отображения в таблице только записи, которые отвечают определенным критериям. Для установки фильтров в Access 2007 существует несколько способов. Рассмотрим их. Фильтр по выделенному значению. Этот способ позволяет отбирать записи, которые являются равными, большими или меньшими определенного значения выбранного поля. Для примера воспользуйтесь таблицей Заказы из базы данных Борей. Пусть нужно отобрать только заказы, оформленные определенным сотрудником, например Корепиным Вадимом. Фильтр по выделенному значению устанавливается следующим образом. 1. Найдите в таблице хотя бы одну запись с нужным значением поля. Это проще всего сделать с помощью строки поиска в нижней части таблицы. 2. Щелкните правой кнопкой мыши на значении найденного поля и выберите одну из команд фильтрации (рис. 7.10) – в таблице останутся только записи, отвечающие условию фильтра, все остальные будут скрыты. Для отмены действия фильтра и отображения скрытых записей в группе Сортировка и фильтр вкладки Главная нажмите кнопку Применить фильтр. Первое нажатие данной кнопки выключает фильтр, второе – включает снова. Фильтр по условию. Этот способ подходит для отбора данных, которые больше или меньше заданного значения. Пусть в таблице Заказы нужно выбрать только записи, в которых цена доставки больше 100 р. Для установки фильтра щелкните правой кнопкой мыши на любой ячейке поля, по которому нужно установить фильтр, и выполните команду Числовые фильтры > Больше (рис. 7.11, слева). В появившемся окне введите значение 100 (рис. 7.11, справа) и нажмите кнопку ОК. Рис. 7.10. Установка фильтра по выделенному значению Рис. 7.11. Установка фильтра по условию: выбор условия (слева), ввод его значения (справа) Фильтр по нескольким значениям одного поля. Иногда может понадобиться установить фильтр для отбора не одного, а нескольких значений определенного поля. Для этого щелкните кнопкой мыши на любой ячейке нужного поля, выполните команду Главная > Сортировка и фильтр > Фильтр и установите флажки для значений, которые нужно отобрать. Фильтр по нескольким полям. Выполняется последовательным применением нескольких фильтров по значениям или условиям. В этом случае можно видеть результат выполнения каждого шага и оценивать его эффективность. В Access 2007 существуют и другие способы установки фильтров, например ручной ввод условий фильтра или настройка расширенного фильтра, но необходимость в этих средствах возникает нечасто. С практическими примерами применения фильтров вы ознакомитесь при выполнении практической работы. Практическая работа 54. Просмотр и редактирование таблиц. Поиск и сортировка в базе данных Задание 1. Дополните таблицы Товары и Сотрудники базы данных Борей собственными данными используя как непосредственный ввод данных в таблицу, так и соответствующие формы. Последовательность выполнения 1. Откройте учебную базу данных Борей. 2. Если область переходов скрыта, нажмите клавишу F11. 3. Щелкните кнопкой мыши на заголовке области переходов и в меню выполните команду Таблицы и связанные представления. 4. В области переходов откройте группу Товары, а в ней – таблицу Товары. 5. Добавьте новую запись в таблицу одним из описанных выше способов и заполните все поля записи. Обратите внимание на следующие моменты: • поставщиков товара вводить не нужно – достаточно установить соответствующие флажки; • поле ИД заполняется автоматически; • значение поля Категория следует выбрать из раскрывающегося списка. 6. Закройте таблицу Товары, после чего в области переходов откройте форму Сведения о товаре. 7. С помощью кнопок навигации найдите запись, которую вы ввели перед этим в режиме таблицы, и отредактируйте ее. 8. Самостоятельно откройте форму Сведения о сотрудниках и добавьте информацию о себе как о новом сотруднике фирмы. 9. При наличии файла с вашей фотографией вставьте ее в базу данных. Для этого в форме Сведения о сотрудниках дважды щелкните кнопкой мыши на картинке с силуэтом, в появившемся окне нажмите кнопку Добавить, укажите путь к файлу с фотографией и нажмите кнопку OK. Задание 2. Используя поиск, сортировку и фильтры в таблице Заказы базы данных Борей, ответьте на следующие вопросы. ? Когда сотрудником Корепиным был размещен последний заказ? ? Сколько заказов во все города, кроме Москвы, было отгружено после 1 апреля 2006 г.? Последовательность выполнения 1. В области переходов базы данных Борей откройте таблицу Заказы. 2. Для ответа на первый вопрос задания сначала найдите в таблице любую запись, где указан сотрудник Корепин. Для этого введите первые буквы фамилии в поле поиска – Access найдет нужную запись. 3. С помощью фильтра отберите только заказы, оформленные Корепиным. Для этого щелкните правой кнопкой мыши на найденном поле со значением Корепин Вадим и в контекстном меню выполните команду Равно «Корепин Вадим». 4. Чтобы узнать, когда сотрудник Корепин разместил последний заказ, выполните сортировку по полю Дата размещения. Для этого щелкните кнопкой мыши на любом значении этого поля и нажмите кнопку По убыванию. Последний размещенный Корепиным заказ окажется в таблице первым. 5. Перед поиском ответа на второй вопрос отмените ранее установленный фильтр с помощью кнопки Применить фильтр. 6. Для ответа на второй вопрос найдите и отберите записи, в которых в поле Город получателя не равен значению Москва. Для этого можно щелкнуть кнопкой мыши на стрелке справа от заголовка данного поля, снять флажок для значения Москва и нажать ОK. 7. Отберите записи с датой отгрузки, большей 01/04/2006. Для этого: 1) щелкните правой кнопкой мыши на любом значении поля Дата отгрузки; 2) выполните команду Фильтр дат > После; 3) введите дату 01/04/2006 и нажмите кнопку OK. Количество отобранных с помощью фильтра записей можно узнать из сообщения в нижней части таблицы рядом с кнопками навигации. Задание для самостоятельного выполнения Найдите в базе данных Борей следующую информацию. ? Когда сотрудник Ильина разместила свой первый заказ? ? Сколько заказов было размещено сотрудником Куликовым в период 01.01.2006-31.03.2006? ? Назовите два самых дорогих напитка, которые продает компания. Подведение итогов Вопросы для проверки ? Сравните приемы редактирования данных в таблицах Access и Excel. ? Какие преимущества дает использование форм? ? Какие средства для поиска и отбора данных в таблицах вы знаете? ? Как отсортировать таблицу по нескольким полям? ? Какие виды фильтров вы знаете и когда их лучше применять? Вы уже знаете, как работать с существующими базами данных. Далее вы начнете самостоятельную разработку простой базы данных. Сначала нужно будет спроектировать структуру базы данных, а затем создать все основные объекты – таблицы, формы, запросы и отчеты. Урок 7.3. Создание таблиц Режимы работы с таблицами Для работы с таблицами в базе данных используются следующие режимы. ? Режим таблицы. Является универсальным: в нем можно просматривать, вводить и редактировать данные, создавать новые таблицы и изменять их структуру. После двойного щелчка на значке таблицы она будет открыта в режиме таблицы, что уже упоминалось в предыдущем уроке. ? Конструктор. Служит только для создания новых таблиц и изменения структуры существующих. в отличие от первого режима, в нем можно установить дополнительные свойства для отдельных полей и таблицы в целом. Для открытия любой таблицы в режиме конструктора найдите ее в области переходов, щелкните на ее значке правой кнопкой мыши и в контекстном меню выполните команду Конструктор. На рис. 7.12 показана таблица Клиенты базы данных Борей, открытая в режиме конструктора. Рис. 7.12. Конструктор таблиц
Типы данных в таблице Для создания таблицы нужно знать названия необходимых полей и тип данных в каждом из них. Решение об использовании полей того или иного типа обычно принимается при проектировании базы данных, причем каждое поле должно содержать определенный тип данных. В таблицах Access можно использовать следующие типы полей. ? Текстовый. Применяется автоматически для всех новых полей. Максимальный размер этого поля равен 255 символам. Кроме текста в полях этого типа можно хранить числа, которые не используются в расчетах, например телефонные номера. ? Поле MEMO. Служит для хранения длинных текстов или форматированного текста. ? Числовой. Используется для хранения чисел, над которыми нужно выполнять расчеты. По умолчанию используются длинные целые числа, при необходимости выбрать другой способ хранения числа воспользуйтесь свойством Размер поля. ? Дата/Время. Поле для хранения даты или времени. При его выборе следует дополнительно указать его формат. ? Денежный. Вариант числового поля для хранения денежных значений. ? Счетчик. Это специальный вариант числового поля, которое служит для автоматической нумерации. При создании новой записи в это поле автоматически помещается новый порядковый номер, и его невозможно изменить или удалить. Это поле в основном используется в качестве ключа при создании связей между таблицами. Еще одна особенность счетчика – при удалении записи номера соседних записей не изменяются. ? Логический. Поле этого типа может иметь одно из двух значений: Да или Нет. В таблицах и формах это поле отображается в виде флажка. ? Поле объекта OLE. Используется для хранения документов различных типов – тексты, рисунки, таблицы, звук, видео и др. ? Гиперссылка. Служит для хранения ссылок на узлы Интернета, файлы на жестком диске или в локальной сети. ? Вложение. Применяется для хранения документов различных типов – тексты, рисунки, таблицы, звук, видео и др. Поля этого типа появились только в Access 2007; их рекомендуется использовать вместо полей объектов OLE. ? Мастер подстановок. После выбора этого поля будет запущен специальный Мастер постановок, с помощью которого можно связать это поле с другой таблицей или задать для него фиксированный набор значений, после чего поле в таблице будет представляться в виде раскрывающегося списка, из которого можно будет выбирать значения из связанной таблицы или вводить одно из фиксированных значений. Дополнительные свойства поля Главным свойством поля является его тип, но с помощью конструктора таблиц для каждого поля можно применять и другие свойства. С их помощью можно задать формат поля, сделать ввод данных в поле удобнее и предотвратить ошибки. Набор дополнительных свойств будет зависеть от типа поля. Ниже (табл. 7.1) приведено описание некоторых свойств полей. Таблица 7.1. Назначение основных свойств полей Создание новой базы данных Все таблицы и другие объекты базы данных Access 2007 хранятся в одном файле с расширением ACCDB (во всех предыдущих версиях использовались файлы с расширением MDB). Перед созданием таблиц следует создать пустую базу данных следующим способом. 1. Запустите программу Access. 2. В окне Приступая к работе перейдите по ссылке Новая база данных. 3. В области Новая база данных (см. рис. 7.3) при необходимости измените имя файла или папку для сохранения, после чего нажмите кнопку Создать. 4. После сохранения базы данных в ней будет создана новая пустая таблица, которая отобразится в окне Access. О том, как создавать структуру таблицы, будет рассказано в следующем разделе. Создание и редактирование таблиц Таблицы можно создавать как в режиме конструктора, так и в режиме таблицы. В режиме таблицы на ленте появляется вкладка Режим таблицы (рис. 7.13), где можно найти команды для работы с полями и их свойствами. Рис. 7.13. Создание новой таблицы Создание простой таблицы можно выполнить в следующей последовательности. 1. На вкладке Создание нажмите кнопку Таблица – будет открыта новая таблица, в которой автоматически будет создано ключевое поле Код. Если вы создали новую базу данных, то команда создания таблицы будет выполнена автоматически. 2. Введите имена полей таблицы. Для этого щелкните кнопкой мыши на заголовке столбца Добавить поле, введите имя и нажмите клавишу Enter. Таким образом можно ввести подряд имена нескольких полей. 3. Для каждого поля установите тип данных и другие свойства с помощью элементов группы Форматирование и тип данных вкладки Режим таблицы. 4. Для сохранения структуры таблицы нажмите кнопку Сохранить на панели быстрого доступа и в появившемся окне введите имя таблицы. 5. При необходимости настроить дополнительные свойства полей переключитесь в режим конструктора с помощью кнопки Режим. В режиме конструктора выберите в списке нужное поле и установите для него желаемые свойства в нижней части окна.
После создания таблицы может возникнуть необходимость изменить ее структуру, например добавить новые поля или удалить существующие. Для добавления поля в конец таблицы отредактируйте заголовок Добавить поле, для вставки нового поля перед текущим нажмите кнопку Вставить в группе Поля и столбцы вкладки Режим таблицы. Для удаления поля щелкните кнопкой мыши на его заголовке, нажмите кнопку Удалить в группе Поля и столбцы и подтвердите действие в появившемся окне.
Сохранение базы данных При работе с данными нет необходимости выполнять команду Сохранить – введенные данные сохраняются автоматически при переходе к следующей записи, а изменения в структуре таблиц и других объектов сохраняются при их закрытии. Автоматическое сохранение позволяет сразу нескольким пользователям работать с данными в режиме реального времени. Автоматическое сохранение имеет и негативную сторону: большинство изменений в базе данных невозможно отменить, то есть существует опасность повредить данные при невнимательном выполнении тех или иных действий. Большие неприятности может принести повреждение базы данных с большим объемом введенной информации, поскольку для ее восстановления может понадобиться значительное время. Во избежание потери данных следует периодически создавать резервную копию базы данных с помощью команды Кнопка «Office» > Управление > Резервная копия базы данных. Резервную копию рекомендуется также создавать перед каждым изменением структуры таблиц и связей. Практическая работа 55. Создание таблицы и ввод данных в нее Задание. Создать новую учебную базу данных с именем Taxi2008, в которой создать таблицу Клиенты для хранения сведений о клиентах службы такси. Ввести несколько записей в созданную таблицу. Проект нужной таблицы приведен в табл. 7.2. В именах полей принято не использовать пробелы, хотя это необязательное требование. Таблица 7.2. Проект таблицы Клиенты Последовательность выполнения 1. Запустите программу Access и создайте новую базу данных с именем Taxi2008. 2. В новой таблице Access автоматически создаст ключевое поле под названием Код. По проекту данной таблицы его следует исправить на НомерКарточки. Для этого дважды щелкните кнопкой мыши на заголовке поля Код, измените текст на НомерКарточки и нажмите клавишу Enter. 3. Введите заголовок второго поля. Для этого дважды щелкните кнопкой мыши на заголовке Добавить поле, введите имя поля и нажмите клавишу Enter. 4. Аналогично создайте поля ДомашнийАдрес и Телефон. 5. Для установки типа данных и других свойств полей сделайте следующее: 1) выделите поле щелчком кнопки мыши на его заголовке; 2) откройте на ленте вкладку Режим таблицы; 3) из раскрывающегося списка Тип данных в группе Форматирование и тип данных установитедля поля нужный тип (см. табл. 7.2); 4) если поле является обязательным, установите для него флажок Обязательное. 6. Сохраните структуру созданной таблицы, нажав кнопку Сохранить на панели быстрого доступа. В появившемся окне введите имя таблицы – Клиенты. 7. Введите в созданную таблицу несколько записей о клиентах. 8. Для установки нужного размера полей (см. табл. 7.2) переключитесь в режим конструктора с помощью кнопки Режим (она находится в левой части вкладки Главнаяи также имеется на контекстных вкладках при работе с объектами базы данных). 9. В конструкторе щелкните кнопкой мыши на названии поля ФамилияИмя, найдите в списке свойств поля параметр Размер поля и установите для него значение 50. 10. Аналогично установите размеры других текстовых полей и проверьте размер поля НомерКарточки. 11. Сохраните изменения в структуре таблицы. При этом вы получите предупреждение, что некоторые данные могут быть потеряны, поскольку вы уменьшили размер полей. 12. Снова переключитесь в режим таблицы, введите в нее еще несколько записей, после чего закройте таблицу и выйдите из программы Access. Задание для самостоятельного выполнения Внесите следующие изменения в структуру таблицы Клиенты: ? измените имя поля Телефон на ДомашнийТелефон и добавьте новое поле МобильныйТелефон; в режиме таблицы добавьте новые данные в созданное поле; ? для поля НомерКарточки поставьте условие <10 000 и создайте свое сообщение об ошибке; в режиме таблицы проверьте действие ограничения. Подведение итогов Вопросы для проверки ? Как открыть таблицу в режиме таблицы и в режиме конструктора? ? Поля каких типов чаще всего используются в базах данных? ? Для чего служат дополнительные свойства полей? Приведите примеры. ? Сравните возможности создания таблиц в режиме таблицы и в режиме конструктора. В этом уроке вы научились создавать таблицы в новой базе данных. Из следующего урока вы узнаете, как спроектировать базу данных из нескольких связанных таблиц и реализовать созданный на бумаге проект в среде Access 2007. Урок 7.4. Проектирование базы данных. Создание связей между таблицами Связи между таблицами Современные базы данных обычно состоят из многих таблиц, связанных между собой. В реляционной теории баз данных выделяют несколько типов связей между таблицами, однако чаще всего используется тип связи «один-ко-многим». Например, в базе данных Борей каждая таблица связана с одной или несколькими другими с использованием отношения «один-ко-многим» (рис. 7.14). Рис. 7.14. Схема данных учебной базы данных Борей Рассмотрим связь между таблицами Заказы и Клиенты. В таблице Клиенты для каждого клиента имеется только одна запись, а один и тот же клиент может быть включен в таблицу Заказы много раз, поэтому линия связи на схеме данных обозначена единицей со стороны таблицы Клиенты и знаком бесконечности со стороны таблицы Заказы. Таблица, участвующая в связи на стороне «один», далее будет называться главной, а таблица на стороне «много» – подчиненной, или подробной. Для создания связи обычно выбирается пара полей – по одному из каждой таблицы. Поле, используемое для связи в главной таблице, должно быть ключевым и называется первичным ключом. В таблице Клиенты ключевым полем выбрано специальное поле ИД (сокращение от слова «идентификатор») с типом данных Счетчик. Поле для связи в подчиненной таблице называется внешним ключом и должно иметь тот же тип данных, что и первичный ключ в главной таблице, за исключением случая, когда первичный ключ имеет тип данных Счетчик (тогда для внешнего ключа следует выбрать числовой тип данных). Чтобы при редактировании подчиненной таблицы появилась возможность выбирать значение внешнего ключа из раскрывающегося списка с содержимым главной таблицы, кроме создания связи нужно выполнить подстановку полей. Порядок выполнения подстановки будет рассмотрен в следующей практической работе. Этапы проектирования базы данных Процесс создания базы данных следует тщательно продумать, поскольку допущенные ошибки исправлять намного сложнее, когда база данных наполнена информацией. Разработку базы данных лучше выполнять в несколько этапов. Постановка задачи. В процессе разработки баз данных обычно присутствуют две стороны: заказчик и разработчик. Заказчик определяет цель и задачи создания базы данных, а разработчик реализует эту задачу. В диалоге между заказчиком и разработчиком нужно решить следующие вопросы: ? для чего создается база данных; ? какие данные будут храниться; ? как нужно обрабатывать данные и какие результаты при этом нужно получить. Если база данных небольшая, то заказчик и разработчик может быть одним и тем же лицом. Однако и в этом случае перед началом создания базы данных следует дать подробные ответы на приведенные выше вопросы. Разработка структуры базы данных. На этом этапе следует определить, какие таблицы будут использоваться в базе данных и как они будут связаны между собой. Результат разработки структуры можно представить в виде схемы данных (см. рис. 7.14), которую можно начертить на листе бумаги. Это самый важный этап при создании базы данных, поскольку ошибки в структуре могут стать источником серьезных проблем при последующем выполнении обработки данных, а изменение структуры уже готовой базы данных – относительно сложная задача. Считается, что правильная структура базы данных – это половина ее успеха, поэтому созданную структуру нужно тщательно проанализировать и при необходимости внести в нее изменения. Для разработки структуры небольшой базы данных из нескольких таблиц самыми подходящими инструментами могут оказаться лист бумаги и карандаш. Для проектирования объемных баз данных существуют специальные программные средства, для работы с которыми необходим соответствующий уровень подготовки. Создание таблиц и связей между ними. После разработки структуры базы данных можно приступать к созданию самой базы данных, таблиц и связей между ними. Для создания таблицы нужно иметь следующую информацию: ? как будут называться все поля таблицы и какой тип данных будет использоваться для каждого поля; ? какие поля в таблице будут являться ключевыми (уникальными); ? какие дополнительные свойства полей будут применяться. Создание форм, запросов и отчетов. Эти объекты создаются для обработки данных, вывода результатов и удобства работы пользователя. Их создание будет подробно рассмотрено в следующих уроках.
Техническое задание на разработку учебной базы данных Необходимо создать базу данных для диспетчера такси, которая должна отвечать следующим требованиям. ? В эту базу диспетчер должен заносить поступающие вызовы клиентов и регистрировать их исполнение. ? На связи с диспетчером находятся несколько автомобилей, каждый из них закреплен за определенным водителем и имеет бортовой номер. При поступлении вызова диспетчер назначает автомобиль для выполнения заказа и фиксирует информацию о заказе в базе данных. ? В базе данных нужно вести учет заказов постоянных клиентов, каждый из которых имеет карточку с персональным номером. Кроме номера карточки база данных должна позволять заносить фамилии, адреса и телефоны клиентов. ? Кроме учета оперативной информации база данных должна обеспечивать получение различных итоговых данных, например количество и сумма заказов постоянных клиентов, интенсивность использования автомобилей и др. Поставив задачу, можно приступать к разработке структуры базы данных. Разработка структуры базы данных Начинающие пользователи для хранения всех данных обычно создают одну таблицу (по аналогии с Excel). Примерная структура такой таблицы для данной задачи может быть следующей (табл. 7.3). Таблица 73. Предварительный проект таблицы учебной базы данных Хранение всех данных в подобной таблице будет неудобным, поскольку в ней смешаны три разных понятия – Заказы, Клиенты и Автомобили, что приведет к повторению информации. Например, для регистрации вызова постоянного клиента придется каждый раз вводить его номер карточки, фамилию и другие данные. Если создать отдельную таблицу Клиенты, то сведения о клиентах будут заноситься только при первом вызове, а при последующих фамилия клиента будет выбираться из раскрывающегося списка. Исходя из аналогичных соображений, можно также создать отдельную таблицу Автомобили, и окончательная структура базы данных может быть такой (рис. 7.15). Несколько замечаний по созданному проекту. ? В каждой таблице нужно определить ключевое поле. В таблице Клиенты это будет поле НомерКарточки, а в таблице Автомобили – НомерАвтомобиля. В таблице Заказы нет подходящего поля для ключевого, поэтому было введено дополнительное поле КодЗаказа с типом данных Счетчик. Рис. 7.15. Проект структуры базы данных диспетчерской службы такси ? Для регистрации исполнения заказов введено дополнительное поле СостояниеЗаказа, в которое оператор сможет вводить следующие значения – Активный, Выполнен, Отменен. ? Для упрощения задачи пусть каждый водитель работает только на своем автомобиле в одну смену. В случае посменной работы водителей нужно будет разделить таблицу Автомобили на несколько отдельных.
Связь «многие-ко-многим» реализуется в Access с помощью дополнительной таблицы. В данном примере таблицы Автомобили и Клиенты связаны между собой отношением «многие-ко-многим» с помощью дополнительной таблицы Заказы. После того как структура базы данных создана и проверена, нужно проработать более детально структуру каждой таблицы. Таблица Клиенты была создана в предыдущем уроке, поэтому рассмотрим проекты таблиц Заказы и Автомобили (табл. 7.4, 7.5). Таблица 7.4. Проект таблицы Автомобили Для полей Автомобиль и Клиент выбран числовой тип, поскольку они используются в связях (см. рис. 7.15), а связанные поля должны иметь одинаковый тип. Порядок создания связей В подавляющем большинстве случаев в базах данных используются связи типа «один-ко-многим». Для создания такой связи в Access можно использовать следующий алгоритм. 1. Сначала создайте таблицу, которая участвует в связи на стороне «один». 2. В процессе создания таблицы, участвующей в связи на стороне «много», выполните подстановку полей из ранее созданной таблицы. 3. В окне Схема данных при необходимости настройте дополнительные параметры связи. Подробно эти действия будут рассмотрены в инструкции по выполнению практической работы. Практическая работа 56. Создание связей между таблицами Задание. Создать в среде Access 2007 базу данных из трех связанных таблиц согласно разработанному в этом уроке проекту. Эта работа будет объемной, поэтому ее выполнение будет разделено на несколько этапов. Создание таблицы Автомобили 1. Откройте базу данных Taxi2008, которая была создана в предыдущем уроке. В ней должна уже быть одна таблица – Клиенты. 2. Выполните команду Создание > Таблицы > Таблица. 3. Введите названия полей и их свойства согласно проекту таблицы (см. табл. 7.4). Процесс создания таблицы был подробно рассмотрен в предыдущем уроке. 4. Переключитесь в режим конструктора – отобразится окно сохранения таблицы, в котором следует указать имя Автомобили. 5. В режиме конструктора установите размеры полей, затем снова переключитесь в режим таблицы. 6. Введите несколько пробных записей в созданную таблицу. Создание таблицы Заказы В процессе создания таблицы Заказы выполним подстановку необходимых полей из таблиц Автомобили и Клиенты. 1. Выполните команду Создание > Таблицы > Таблица и введите названия первых двух полей – КодЗаказа и ДатаЗаказа. Название поля НомерАвто вводить не нужно, поскольку это поле будет создано с помощью подстановки. 2. На вкладке Работа с таблицами нажмите кнопку Добавить поля в группе Поля и столбцы, чтобы отобразить область задач Список полей. 3. Найдите поле НомерАвто в таблице Автомобили и дважды щелкните на нем кнопкой мыши – будет запущен мастер создания подстановки (рис. 7.16). 4. Поле НомерАвто будет выбрано для подстановки автоматически, но для большей наглядности можно добавить в столбец подстановки поле Водитель. Для этого выделите нужное поле и нажмите кнопку 5. Мастер предложит указать способ сортировки списка подстановки. Выберите сортировку по номеру автомобиля и нажмите кнопку Далее. 6. Следующий этап – выбор ширины столбцов для списка подстановки. По умолчанию Мастер предлагает скрыть поле первичного ключа, и с этим можно согласиться, когда его значение не имеет особого смысла (например, в базе данных Борей ключевые столбцы всегда скрыты). В данном случае нужно снять флажок Скрыть ключевой столбец (рекомендуется), чтобы поле НомерАвто также отображалось в списке подстановки (рис. 7.17), после чего нажать кнопку Далее. Рис. 7.16. Выбор полей для подстановки Рис. 7.17. Настройка вывода на экран столбцов подстановки 7. Поскольку вы разрешили отображение ключевого поля, в следующем окне Мастер еще раз спросит, какое поле использовать для связи. Выберите поле НомерАвтои нажмите кнопку Далее. 8. В последнем окне при необходимости измените предлагаемую подпись для столбца подстановки и нажмите Готово, после чего будет сохранена таблица и создана связь. 9. Аналогично добавьте в таблицу Заказы поле НомерКарточки из таблицы Клиенты иукажите параметры подстановки. 10. Поля СуммаЗаказа и СостояниеЗаказа создайте обычным способом, после чего сохраните структуру таблицы Заказы. Настройка параметров связей 1. Закройте все ранее открытые вкладки таблиц. 2. На ленте откройте вкладку Работа с базами данных и нажмите кнопку Схема данных в группе Показать или скрыть. В появившемся окне вы должны увидеть таблицы базы данных и линии связи между ними. Если в окне Схема данных отсутствуют изображения таблиц, щелкните правой кнопкой мыши на свободном месте окна, выполните команду Добавить таблицу, в появившемся окне выберите нужные таблицы и нажмите кнопку Добавить. 3. Если в окне Схема данных связь между таблицами отсутствует или отображается неправильно, значит, при выполнении подстановки была допущена ошибка. Для ее исправления выполните следующие действия: 1) в окне Схема данных щелкните правой кнопкой мыши на ошибочной связи и выберите в контекстном меню команду Удалить; 2) откройте таблицу Заказы, удалите поле подстановки и попробуйте добавить его заново. 4. Дважды щелкните кнопкой мыши на линии связи, чтобы открыть окно ее параметров (рис. 7.18). Установите флажок Обеспечение целостности данных, чтобы программа Access контролировала правильность данных в связанных полях. Станут доступными следующие флажки: • каскадное обновление связанных полей – при установленном флажке будет разрешено изменение первичного ключа, причем соответствующие значения внешнего ключа в связанной таблице будут также изменены, например, если для определенного клиента будет изменен номер карточки, то он также будет автоматически изменен в поле Клиент таблицы Заказы; при снятом флажке изменение первичного ключа будет запрещено при наличии связанных записей; • каскадное удаление связанных записей – разрешает автоматическое удаление всех связанных записей из подчиненной таблицы при удалении записи в главной таблице, например, при удалении записи об определенном клиенте будут автоматически удалены все записи о его заказах; при снятом флажке вы не сможете удалить запись, пока не удалите все связанные с ней записи. 5. Для связей между таблицами можно разрешить каскадное обновление связанных полей, а флажок Каскадное удаление связанных записей устанавливать не стоит, поскольку при ошибочном удалении клиентов будут удалены данные об их заказах, и вы не сможете получить правильные значения сумм оказанных услуг за определенные периоды. Рис. 7.18. Изменение параметров связей 6. После установки параметров связи и нажатия кнопки OK на линии связи должны появиться обозначения «один» и «бесконечность» (см. рис. 7.15); если это не так – значит, в выборе полей была допущена ошибка. Ошибочную связь нужно удалить, а затем создать снова. 7. После настройки обеих связей попробуйте ввести записи в таблицу Заказы. Если вы все сделали правильно, то при заполнении полей Клиент и Автомобиль вы сможете выбирать данные из раскрывающегося списка. Создание подстановки из фиксированного набора значений После ввода нескольких записей в таблицу Заказы становится ясно, что в поле СостояниеЗаказаприходится вводить одни и те же значения. Для упрощения ввода данных в это поле можно создать еще одну связанную таблицу, но это будет не самый рациональный способ. Для случаев, когда набор значений поля не будет изменяться в процессе использования базы данных, лучше использовать подстановку из фиксированного набора значений. Для настройки подстановки фиксированных значений выполните следующие действия. 1. Откройте таблицу Заказы в режиме конструктора и выберите для поля СостояниеЗаказа тип данных Мастер подстановок. 2. В первом окне Мастера (рис. 7.19) установите переключатель в положение Будет введен фиксированный набор значений и нажмите кнопку Далее. 3. В следующем окне введите в таблицу список нужных значений (рис. 7.20), после чего нажмите кнопки Далее и Готово. Рис. 7.19. Первое окно Мастера подстановок Рис. 7.20. Для создания фиксированного списка подстановки следует ввести нужные значения вручную 4. Сохраните изменения в структуре таблицы, переключитесь в режим таблицы и попробуйте ввести несколько записей с использованием подстановки. Автоматический ввод текущей даты и времени При вводе данных в таблицу Заказы неудобно каждый раз вводить текущие дату и время в поле ДатаЗаказа. Для настройки автоматического ввода текущего времени выполните следующие действия. 1. Снова откройте таблицу Заказы в режиме конструктора, затем выберите поле ДатаЗаказа. 2. Щелкните кнопкой мыши в поле ввода свойства Значение по умолчанию и нажмите появившуюся кнопку с изображением троеточия – будет запущен построитель выражений Access, с помощью которого можно создавать различные выражения с использованием множества встроенных функций. 3. В построителе выражений дважды щелкните кнопкой мыши на значке Функции, выберите категорию Встроенные функции, затем выберите в среднем списке пункт Дата/время, а в правом – функцию Now (Сейчас). Нажмите кнопку Вставить – выбранная функция будет добавлена в выражение (рис. 7.21), после чего нажмите кнопку OK. Рис. 7.21. Выбор нужной функции с помощью построителя выражений 4. Сохраните изменения в структуре таблицы и попробуйте добавить новую запись в режиме таблицы. Текущая дата и время должны появляться автоматически, но при необходимости их значения можно отредактировать. Подведение итогов Вопросы для проверки ? Опишите связь «один-ко-многим». Что такое первичный ключ, внешний ключ, главная и подчиненная таблица? ? Почему базу данных из нескольких таблиц лучше сначала спланировать на бумаге? ? Зачем при разработке базы данных делить одну большую таблицу на несколько мелких? ? Для каких целей можно использовать Мастер подстановок? ? Какие параметры связей вы знаете? Вы создали базу данных из трех связанных таблиц и наполнили ее пробными данными. В следующем уроке будет показано, как выполнять различные операции с данными с использованием запросов. Урок 7.5. Запросы Основные сведения о запросах Запросы являются одним из основных объектов любой базы данных и используются для отбора данных, расчетов и других операций. Чаще всего используются запросы на выборку, с помощью которых можно выбрать данные из одной или нескольких связанных таблиц и выполнить с ними различные операции. Запросы на выборку всегда возвращают результат в виде таблицы с данными и имеют некоторое сходство с фильтрами (см. урок 7.2), но в сравнении с ними запросы имеют целый ряд дополнительных возможностей: ? запросы можно строить по нескольким связанным таблицам, в каждой таблице можно выбирать поля для отображения; ? в запросах можно создавать вычисляемые поля и подсчитывать итоги; ? запросы можно сохранять как отдельные объекты базы данных. Кроме запросов на выборку существуют и другие типы запросов. Например, перекрестные запросы используются для расчета итоговых данных и представления результатов в виде двухмерной таблицы. Существуют также запросы для редактирования, добавления или удаления сразу большого количества записей. В простых базах данных в основном используются запросы на выборку, поэтому далее они будут рассмотрены подробнее.
Создание простых запросов на выборку Для создания простых запросов на выборку лучше всего использовать Мастер запросов. Рассмотрим два вида простых запросов: ? подробные – в результате выполнения таких запросов будут отображены все записи из одной или нескольких таблиц, отвечающие заданным критериям; ? итоговые – для записей, отвечающих критериям запроса, будут рассчитаны итоговые значения по выбранным полям. Перед созданием запроса следует сформулировать задачу, которую нужно решить с его помощью. Рассмотрим несколько примеров построения запросов в базе данных, созданной в предыдущем уроке. Пример 1. Простой подробный запрос. В процессе предварительного проектирования базы данных был рассмотрен вариант хранения всех данных в одной таблице (см. табл. 7.3), но это не всегда удобно. Если понадобится отобразить список заказов с подробными сведениями о клиентах или автомобилях, это можно реализовать в виде запроса. Последовательность действий будет следующей. 1. Выберите на ленте вкладку Создание и нажмите кнопку Мастер запросов в группе Другие. 2. В первом окне Мастера выберите пункт Простой запрос и нажмите кнопку OK. 3. В следующем окне нужно выбрать поля для запроса, причем можно указывать поля из нескольких связанных таблиц. Сначала из раскрывающегося списка Таблицыи запросы выберите пункт Таблица: Заказы и перенесите нужные поля из списка доступных в список выбранных с помощью кнопки Затем выберите таблицу Клиенты и добавьте из нее нужные поля в список выбранных. Аналогично можно добавить поля из таблицы Автомобили. На рис. 7.22 показано окно Мастера запросов после добавления нужных полей. 4. Нажмите кнопку Далее, в следующем окне оставьте переключатель в положении Подробныйи снова нажмите кнопку Далее. 5. В последнем окне введите имя создаваемого запроса, например Подробные сведения о заказах, и нажмите Готово. Результат запроса будет отображен в виде таблицы (рис. 7.23). Рис. 7.22. Окно выбора полей для создания запросов Рис. 7.23. Результат построения подробного запроса Пример 2. Итоговый запрос. Нужно создать запрос для отображения сумм заказов, которые ежедневно выполняет каждый водитель. Этот запрос можно построить следующим образом. 1. Запустите Мастер запросов с помощью команды Создание > Другие > Мастер запросов и выберите в первом окне Мастера пункт Простой запрос. 2. В следующем окне выберите для запроса следующие поля: ДатаЗаказа и СуммаЗаказа из таблицы Заказы и поле Водитель из таблицы Автомобили. Нажмите кнопку Далее для перехода к следующему окну Мастера.
3. В следующем окне установите переключатель в положение итоговый и нажмите кнопку Итоги (рис. 7.24). Для подсчета итоговой суммы установите флажок Sum (Сумма). Другие флажки имеют следующие значения: • Avg – среднее арифметическое; • Min – минимальное значение; • Max – максимальное значение. Можно также включить подсчет числа записей в таблице Заказы с помощью одноименного флажка. Установив итоги, нажмите кнопку OK, затем кнопку Далее. Рис. 7.24. Окно установки итогов в Мастере создания запросов 4. В следующем окне Мастера выберите интервал группировки дат по дням, нажмите кнопку Далее, введите имя запроса и нажмите Готово. Результат запроса показан на рис. 7.25. Рис. 7.25. Результат построения итогового запроса Работа с конструктором запросов Широкие возможности для создания запросов имеет конструктор запросов, в котором можно задавать условия отбора по отдельным полям, определять способ сортировки результатов и создавать вычисляемые поля. Для знакомства с конструктором запросов откройте один из ранее созданных запросов с помощью конструктора (рис. 7.26). Рис. 7.26. Конструктор запросов В верхней части конструктора запросов находится схема таблиц, участвующих в запросе, а в нижней – таблица с названиями и параметрами полей. C помощью конструктора можно изменять свойства существующих запросов и создавать новые, что будет рассмотрено в следующих примерах. Пример 3. Подробный запрос с условиями на значение. Создайте запрос с подробными сведениями о заказах, выполняемых в данный момент, отсортировав записи по дате заказа. Для этого модифицируйте созданный ранее запрос Подробные сведения о заказах. 1. В области переходов найдите и выделите ранее созданный запрос Подробные сведения о заказах и откройте его. 2. Для перевода запроса в режим конструктора нажмите кнопку Режим на вкладке Главная. 3. В окне конструктора запросов введите значение Активный как условие отбора для поля СостояниеЗаказа. 4. Для поля ДатаЗаказа из раскрывающегося списка выберите способ сортировки по возрастанию. 5. Сохраните измененный запрос под именем Активные заказы. Для этого нажмите Кнопку«Office» и выполните команду Сохранить как > Сохранить объект как. 6. Снова нажмите кнопку Режим для перевода запроса в режим таблицы и просмотра результата работы запроса. Для выбора из базы данных только записей, отвечающих определенным критериям, следует задать соответствующие условия отбора в конструкторе запросов. Однако если значения условий будут постоянно изменяться, то редактировать запрос в конструкторе перед каждым его открытием будет неудобно. Использование запросов с параметрами позволит вводить значения условий отбора в диалоговые окна, появляющиеся при каждом запуске запроса. Пример 4. Итоговый запрос с параметрами. Нужно построить запрос, рассчитывающий суммы заказов, выполненные каждым водителем за определенный период времени. Начальная и конечная дата периода отбора должна задаваться при запуске отчета. Как и в предыдущем примере, этот запрос можно построить с помощью мастера, а затем подправить в режиме конструктора, но, чтобы лучше познакомиться с конструктором запросов, попробуйте построить этот запрос без использования Мастера. 1. На вкладке Создание щелкните на кнопке Конструктор запросов в группе Другие – должно появиться окно Добавление таблицы. 2. Выберите таблицу, данные из которой будут использоваться в запросе, и нажмите кнопку Добавить. Повторите эту операцию для всех необходимых таблиц, после чего нажмите кнопку Закрыть. В данном примере нужно добавить таблицы Автомобилии Заказы. 3. С помощью мыши перетащите нужные поля из схемы таблиц на соответствующие столбцы бланка запроса (нужно перетащить поля Водитель, ДатаЗаказа, СуммаЗаказа и СостояниеЗаказа). Если вы по ошибке перетащили не то поле, выделите столбец, щелкнув кнопкой мыши на его заголовке, и нажмите клавишу Delete. 4. С помощью перетаскивания полей вы построите подробный запрос, а чтобы превратить его в итоговый, выберите на ленте вкладку Конструктор и нажмите кнопку Итоги в группе Показать или скрыть – в бланке запроса появится дополнительная строка Групповая операция. 5. Для поля СуммаЗаказа выберите групповую операцию Sum (Сумма), а для поля ДатаЗаказа– операцию Условие. 6. Чтобы в результат запроса попали только выполненные заказы, установите для поля СостояниеЗаказа условие «Выполнен». В качестве условия отбора по дате введите следующее выражение: >[Начальная дата] And <[Конечная дата]. Фразы, записанные в квадратных скобках, будут рассматриваться как параметры, значения которых нужно будет вводить при каждом открытии запроса. 7. Отключите вывод на экран полей СостояниеЗаказа и ДатаЗаказа, сняв соответствующие флажки. Выберите требуемый способ сортировки запроса, например по убыванию значения поля СуммаЗаказа. Созданный запрос будет выглядеть в конструкторе так, как показано на рис. 7.27. Рис. 7.27. Пример построения итогового запроса с параметрами с помощью конструктора 8. Чтобы проверить запрос в действии, переключите его в режим таблицы с помощью кнопки Режим. Отобразится диалоговое окно для ввода начальной даты, затем – для конечной, после чего появится результат запроса. Практическая работа 57. Построение запросов Задание. В созданной в предыдущем уроке базе данных Taxi2008 постройте запросы в соответствии с приведенными в этом уроке примерами 1-4. Задание для самостоятельного выполнения Постройте запросы, позволяющие определить клиентов, которые чаще всех пользуются службой такси, а также тех, кто сделал заказов на наибольшую сумму. Добавьте в созданный запрос параметр, позволяющий отобрать клиентов с суммой заказов, большей определенного значения. Подведение итогов Вопросы для проверки ? Какие типы запросов вы знаете? ? В чем разница между подробным и итоговым запросом? ? Какие поля следует выбирать для итоговых запросов? ? Какие дополнительные возможности имеет конструктор запросов в сравнении с Мастером? ? В каких случаях следует использовать запрос с параметрами? В этом уроке были рассмотрены запросы, являющиеся основными объектами для обработки табличных данных. Заключительный урок будет посвящен созданию форм и отчетов, которые позволяют представить информацию из базы данных в виде, удобном для просмотра, редактирования и печати. Урок 7.6. Формы и отчеты Создание простых форм Использование форм для просмотра и редактирования данных было описано в уроке 7.2. Теперь рассмотрим способы создания форм. Простые формы в Access можно создавать одним щелчком кнопки мыши, а более сложные – с помощью маркера или конструктора. Для создания простой формы для просмотра или редактирования данных выполните следующие действия. 1. В области переходов выберите таблицу или запрос, на основе которого нужно создать форму. 2. На вкладке Создание щелкните на кнопке Форма в группе Формы – будет создана новая форма. 3. После создания форма отображается в виде макета, который позволяет внести изменения в ее внешний вид. Если внешний вид формы устраивает, сохраните ее с помощью кнопки Сохранить на панели быстрого доступа. По умолчанию в форму включаются все поля таблицы и подписи к ним; если таблица участвует в связи с другой, то в форму автоматически может быть добавлена подчиненная таблица (рис. 7.28). Если подчиненная форма не нужна, ее можно удалить в режиме макета. Рис. 7.28. Форма с подчиненной таблицей для таблицы Клиенты С помощью кнопок в группе Формы можно быстро создавать и другие типы форм. Например, кнопка Разделенная форма позволяет быстро создать форму, в которой данные отображаются одновременно в двух представлениях – в режиме фор мы и режиме таблицы, а кнопка Несколько элементов создает табличную форму (рис. 7.29). Кнопки Пустая форма и Конструктор форм служат для создания формы вручную в режиме макета и конструктора соответственно, а с помощью команды Формы> Мастер форм можно построить форму в диалоговом режиме. Рис. 7.29. Разделенная (сверху) и табличная (снизу) формы для таблицы Клиенты Дизайн форм Если форма, созданная автоматически, не отвечает требованиям, ее можно доработать вручную в режиме макета (рис. 7.30). После создания новая форма автоматически отобразится в режиме макета. Для переключения в режим макета ранее созданной формы используется кнопка Режим. Рис. 7.30. Форма в режиме макета Автоматически созданные формы состоят из заголовка и области данных. В области данных обычно используются следующие элементы. ? Поле. Предназначено для отображения и редактирования значения определенного поля из базы данных; ? Надпись. Прямоугольник с текстом, который чаще всего используется для отображения названий полей. Надписи также могут служить для отображения текста, не связанного с содержимым базы данных. ? Подчиненная таблица. Позволяет отобразить данные из подчиненной таблицы, связанные с выбранной записью в форме. Поле и соответствующая ему надпись являются связанными и перемещаются совместно. Для упорядочивания всех связанных пар поле-надпись в формах используются макеты управления содержимым – специальные направляющие в форме таблицы. Макет обеспечивает одинаковые размеры и выравнивание всех элементов. При необходимости можно изменить тип макета и его свойства, выбрав вкладку Упорядочить, а на ней – Макет элемента управления. Если вы хотите расставлять элементы по своему усмотрению, следует удалить макет с помощью команды Макет элемента управления > Удалить вкладки Упорядочить. С элементами формы можно выполнять следующие действия. ? Перемещение. Выделите объект щелчком кнопки мыши, затем перетащите его в нужное место, удерживая нажатой кнопку мыши. Если объект входит в состав макета, его можно перемещать только в пределах этого макета. ? Изменение размеров. Щелкните кнопкой мыши на объекте и перетащите одну из границ объекта. Если объект входит в состав макета, то автоматически будут изменены связанные размеры других элементов макета. ? Форматирование. Для форматирования выделенного объекта выберите вкладку Работа с макетами форм, а затем Формат (см. рис. 7.30). С помощью кнопок этой вкладки можно изменять параметры шрифтов, форматы чисел, границы, заливку и другие свойства. Для быстрого форматирования всей формы можно применить один из встроенных стилей формы, выбрав его из списка в группе Автоформат вкладки Формат. ? Добавление и удаление объектов. Для добавления нового поля нажмите кнопку Добавить поля в группе Элементы управления вкладки Формат и перетащите нужное поле из Списка полей на форму. Удалить объект можно, щелкнув на нем кнопкой мыши и нажав клавишу Delete. Построение отчетов Формы предназначены в основном для просмотра и редактирования записей, а отчеты используются для просмотра и печати различной информации из базы данных. Построение отчетов напоминает разработку форм: простой отчет можно построить автоматически или с помощью Мастера, а для его доработки можно использовать режим макета. Быстро построить отчет по выбранному запросу или таблице можно, выполнив команду Отчеты > Отчет на вкладке Создание, но такой отчет, скорее всего, потребует доработки. Более основательно подойти к созданию отчетов позволяет специальный Мастер отчетов, последовательность работы с которым следующая. 1. Для запуска Мастера отчетов выполните команду Отчеты > Мастер отчетов вкладки Создание. 2. Первое окно Мастера отчетов почти не отличается от аналогичного окна Мастера запросов (см. рис. 7.22), где нужно выбирать поля из одной или нескольких связанных таблиц, которые будут использоваться в отчете. Отчеты можно строить на основе таблиц или запросов. 3. В следующем окне Мастера отчетов можно выбрать поля для группировки данных (рис. 7.31) – записи будут отсортированы по уровням группировки, а значения полей, по которым выполняется группировка, будут выделены в отчете особым форматированием. Рис. 7.31. Мастер отчетов: выбор уровней группировки 4. Следующий этап построения отчета – выбор порядка сортировки записей (рис. 7.32). Сортировка сначала выполняется по полям, заданным в качестве уровней группировки (см. рис. 7.31), и только потом – по полям, выбранным для сортировки. Рис. 7.32. Мастер отчетов: настройка способа сортировки 5. В отчетах можно рассчитывать итоговые значения числовых полей как для всего отчета, так и для выбранных уровней группировки. Для этого нажмите кнопку Итоги и установите флажки для итогов, которые нужно вычислить. При выборе итогов по умолчанию сначала выводятся подробные данные, а под ними – итоговые значения. В отчете можно оставить только итоги, установив переключатель Показать в положение только итоги. 6. Следующее окно Мастера – выбор макета, который определяет, как будут расположены данные на странице. Перечень доступных вариантов макета будет зависеть от использования в отчете уровней группировки. 7. Далее будет предложено выбрать один из доступных стилей оформления, по сле чего вы перейдете к последнему окну Мастера, где нужно ввести имя отчета и нажать кнопку Готово для его просмотра. В режиме предварительного просмотра отчета на ленте присутствует только вкладка Предварительный просмотр, с помощью которой можно выполнить различные действия с отчетом: напечатать, изменить масштаб просмотра, настроить параметры страницы, а также передать отчет в Word или другие форматы. Дизайн отчетов Если внешний вид отчета, созданного с помощью кнопки Отчет или Мастера отчетов, не соответствует требованиям, его можно изменить, открыв отчет в режиме макета (рис. 7.33). В процессе редактирования учтите, что любой отчет состоит из нескольких горизонтальных разделов, которые имеют следующее назначение. ? Заголовок отчета. Кроме заголовка здесь могут размещаться и другие сведения, например дата печати или логотип компании. Заголовок печатается один раз в начале отчета. ? Верхний колонтитул. Будет напечатан в верхней части каждой страницы отчета. Как правило, в нем размещаются заголовки столбцов. ? Область данных. Служит для вывода данных и повторяется для каждой записи отчета. Изменения параметров любого объекта в области данных будут автоматически задействованы для всех других записей. ? Нижний колонтитул. Выводится внизу каждой страницы. В этом разделе, как правило, размещаются номера страниц. ? Примечание отчета. Будет напечатан в конце отчета и используется для вывода различных итоговых сведений. Рис. 7.33. Отчет в режиме макета При наличии в отчете уровней группировки используются дополнительные разделы для заголовков и примечаний групп. В заголовке группы обычно помещается поле, которое выбрано уровнем группировки; примечание используется для вывода итогов по группе. Основные приемы редактирования отчетов в режиме макета почти не отличаются от аналогичных приемов редактирования форм, которые были рассмотрены выше. В макетах отчетов можно также выполнить следующие действия. ? Добавить уровни группировки или сортировки. После нажатия кнопки Группировка области Группировка и итоги вкладки Формат в нижней части отчета появится область Группировка, сортировка и итоги (см. рис. 7.33). Для добавления группировки щелкните на кнопке Добавить группировку и выберите поле для нее. Аналогично можно добавлять сортировку по определенным полям. ? Рассчитать итоги по выбранным полям. Для этого выделите любое значение поля, по которому нужно рассчитать итоги, нажмите кнопку Итоги группы Группировка и итоги вкладки Формат и выберите итоговую функцию в появившемся меню. ? Настроить параметры страницы. Для этого используйте кнопки на вкладке Параметрыстраницы, где можно указать размер бумаги, ориентацию, поля и другие параметры. Практическая работа 58. Создание форм и отчетов Это последняя практическая работа в программе Access, поэтому постарайтесь выполнить все задания самостоятельно. 1. В базе данных Taxi2008 создайте формы для просмотра и редактирования каждой таблицы из базы данных. Самостоятельно выберите тип и стиль каждой из создаваемых форм. 2. Измените форматирование созданных форм в режиме макета. Например, можно удалить некоторые поля, изменить их расположение, увеличить размеры элементов и используемые шрифты и т. д. 3. Создайте отчеты на основе ранее созданных запросов. Выберите необходимые параметры отчетов. 4. Измените форматирование созданных отчетов в режиме макета или конструктора по своему усмотрению. Подведение итогов Вопросы для проверки ? Что общего и в чем различие разработки форм и отчетов? ? Как создавать простые формы? ? Что можно изменить в макете формы (отчета)? ? Для чего в отчетах используются уровни группировки? ? Какие вы знаете способы добавления итоговых значений в отчет? Вы изучили основы работы в Access. Поскольку все базы данных построены по одинаковым принципам, полученные знания помогут вам в практическом использовании любой базы данных. Вы сможете также разработать базу данных, однако для получения качественного результата следует обратиться за помощью к специальной литературе или более подробно изучить справочную систему Access. Заключительная глава данной книги будет посвящена настройке компьютера под управлением Windows Vista и поможет справиться с проблемами в работе компьютера без помощи специалистов. |
|
||
Главная | В избранное | Наш E-MAIL | Прислать материал | Нашёл ошибку | Верх |
||||
|