Введение в microsoft access (835789), страница 11
Текст из файла (страница 11)
Теперь создадимсписок учеников, сгруппированных по кружкам. Можно,как в § 4.3, сформировать последовательность запросов,а затем мастер создаст отчет с группировкой по полю «Кружок». Но мы, дабы не повторяться, пойдем другим путем.Вспомним, как в § 2.7 мы использовали подчиненную форму (с.80). Сейчас аналогичные манипуляции проделаемс отчетом. Прежде всего создадим подчиненный отчет. Выберем пункт меню «Создание» и щелкнем по пиктограмме «Мастер отчетов». В первом диалоговом окне выберем таблицу «Ученик_кружок», а в ней поля «Ученик»и «Кружок» (рис.179). «Далее».
Уровни группировкиРис. 179.Выбор таблицы и полейдобавлять не надо. «Далее». Сортировка не требуется. «Далее». Оставляем, обычно принятые по умолчанию, установки:макет«табличный»иориентациястраницы§ 4.4. Отчет «Ученики по кружкам»141«книжная». Сохраним отчет под именем «Список учеников». На экране появится отчет в рабочем виде (рис. 180).Переведем его в режим конструктора и внесем ряд исправ-Рис. 180.Отчет «Список учеников»лений: отредактируем цвета фона и текста; уберем надпись к полю «Кружок», а само поле сделаем невидимым(для этого в свойствах поля на вкладке «Макет» в строке«Вывод на экран» надо установить значение «Нет»); удалим надпись в заголовке отчета; сдвинем до предела вверхпланку с надписью «Верхний колонтитул»; в нижнем колонтитуле удалим поля с датой и номером страницы; поднимем до предела вверх планку с надписью «Примечаниеотчета», как показано на рис.181.
Закроем конструктор142ГЛАВА 4. ОТЧЕТЫРис. 181.Свойства поля «Кружок»с сохранением корректировок. Откроем отчет в рабочемрежиме. Теперь он имеет вид, как на рис.Рис. 182.182. ОбратимОкончательный вид отчета «Список учеников»§ 4.4. Отчет «Ученики по кружкам»143внимание, что сейчас в отчете содержимое полей можетповторяться. Это потому, что на самом деле в списке представлен перечень всех возможных пар «Ученик_кружок».Но поле «Кружок» мы сделали невидимым.
В дальнейшем в подчиненной форме оно нам не потребуется, но просто убрать его нельзя, поскольку связь между основнойиподчиненнойформамибудетустановленаименнопо полю «Кружок».Теперь создадим основной отчет. В первом окне диалогас мастером выберем источник данных – запрос «КружкиЗапрос», а в нем поля «ID_кружок», «Название» и «Преподаватель» (рис.
183). Будем нажимать кнопку «Далее»Рис. 183.Выбор запроса и полейдо тех пор, пока мастер не предложит сохранить отчет. Сохраним его под именем «Ученики по кружкам» (рис. 184).Наэкранепоявитсяотчет(рис.185).Переведем его в режим конструктора и перейдем к редактированию. Отодвинем вниз планку с надписью «Нижнийколонтитул»ипоместимтудавзятыйспанели144ГЛАВА 4.
ОТЧЕТЫРис. 184.Рис. 185.Сохранение отчетаОтчет «Ученики по кружкам»элементов подчиненный отчет (рис. 186). В открывшемсядиалоговом окне оставим переключатель в положении«Имеющиеся отчеты и формы» и выберем созданныйв этом параграфе подчиненный отчет «Список учеников»(рис. 187). Выберем поле связи «ID_кружок» (рис. 188).Дадим(рис.подчиненному189).отчетуимя«Списокучеников»Откорректируем цвета фона и текста, а так-же размеры полей. Закроем конструктор с сохранениемрезультатов. Теперь отчет выглядит, как на рис.190.§ 4.4. Отчет «Ученики по кружкам»Рис. 186.145Отчет «Ученики по кружкам» в режиме конструктораРис.
187.Выбор подчиненного отчетаРис. 188.Выбор поля связи146ГЛАВА 4. ОТЧЕТЫРис. 189.Рис. 190.Присвоение имени подчиненной формеОкончательный вид отчета «Ученики по кружкам»§ 4.4. Отчет «Ученики по кружкам»147Список «Все объекты Access» в левой части окна базы данных пополнился еще одним отчетом (рис.Рис. 191.191а).Все объекты AccessЧитатель, наверно, уже обратил внимание на то, что всечаще для открытия нужного объекта приходится пользоваться полосой прокрутки. Если это в тягость, можно открыть меню справа от заголовка списка объектов и установить подходящий фильтр (рис.
191б). Например, чтобыперед вами был только список отчетов.148ГЛАВА 4. ОТЧЕТЫ§ 4.5. Отчет «Количество учеников»140⇔157Следующий отчет будет содержать количе-ство учеников по классам и кружкам. Причем нас будутинтересовать только ученики 9–11-х классов. На самомделе последнее будет уже не совсем количеством учеников, поскольку один ученик может заниматься в нескольких кружках. Правильнее говорить о количестве пар «ученик – кружок».
Для начала создадим один вспомогательный запрос: «Создание», «Мастер запросов», «Простой запрос», «ОК». Выберем таблицу «Ученики», а в ней поля«ID_ученик» и «Класс» (рис.Рис. 192.192). Не закрывая окна,Выбор полей из таблицы «Ученики»снова развернем меню «Таблицы и запросы» и выберемтаблицу «Ученик_кружок», а из нее только одно поле «Кружок» (рис. 193). Как видно на рисунке, всего мы выбралитри поля из двух таблиц, связанных по полю «ID_ученик».«Далее».Оставимпереключательвположении§ 4.5. Отчет «Количество учеников»Рис. 193.149Выбор полей из таблицы «Ученик_кружок»«подробный» (рис.194). «Далее». Сохраним запрос подРис.
194.Все объекты Accessименем «Количество учеников_0». На экране появится табличное представление запроса (рис.Рис. 195.195). Здесь фигури-Запрос «Количество учеников_0»руют только коды учеников. Как мы ранее отмечали, кодыуникальны, а имена не всегда. Переведем запрос в режимконструктора (рис. 196). В столбце поля «Класс» в строке150Рис.
196.ГЛАВА 4. ОТЧЕТЫЗапрос «Количество учеников_0» в режиме конструктора«Условияотбора»пишем:>=9.Этозначит,в запросе будут представлены только записи, относящиеся к ученикам 9-го и выше классов. Закроем конструктор.Убедимся в правильной работе запроса. Перейдем к основному запросу: «Создание», «Мастер запросов», «Перекрестный запрос», «ОК». Выберем источник данных. Дляэтого установим переключатель в положение «Запросы»и выберем запрос «Количество учеников_0» (рис.197).«Далее».
Выберем поле «Кружок», значения которого будут заголовками строк (рис.заголовковстолбцоввыберем198). «Далее». В качествезначенияполя«Класс»(рис. 199). «Далее». Осталось поле «ID_ученик». Ему мыпоставим в соответствие функцию «Число», как показано на рис.200.
Это значит, что в ячейке, строка которой§ 4.5. Отчет «Количество учеников»Рис. 197.Рис. 198.Рис. 199.151Выбор запросаОпределение строкОпределение столбцовсоответствует кружку, а столбец – классу, будет находиться соответствующее число учеников. Сохраним запрос под152ГЛАВА 4. ОТЧЕТЫРис. 200.Выбор функцииименем «Количество учеников». «Готово». На экране появится табличное представление запроса (рис.Рис. 201.201).
Пе-Запрос «Количество учеников»реведем его в режим конструктора и в последнем столбце немного сократим имя вычисляемого поля. В первуюстроку этого столбца до двоеточия вместо «Итоговое значение» введем текст «Итого» (рис.202). Во второй стро-ке мы видим одно и то же для всех четырех столбцов§ 4.5. Отчет «Количество учеников»Рис. 202.153Запрос «Количество учеников» в режиме конструктора«Имя таблицы» – запрос «Количество учеников_0». В третьей строке столбцов «Кружок» и «Класс» стоит отметка«Группировка». Значит, по значениям этих полей производится группировка, а в столбце «ID_ученик» указана ужезнакомая нам групповая операция «Count» – число записей. Последнее поле служит для нахождения итогового,т.
е. суммарного значения количества записей по каждойстроке. Перейдем к созданию отчета. «Создание». «Мастеротчетов». Источник данных – запрос «Количество учеников». Выбранные поля – все, т. е. «Кружок», «Итого»,«9», «10» и «11» (рис.203). Это кажется непривычно, но«9», «10» и «11» здесь – это имена полей. «Далее».
Уровни группировки пропустим (рис.204). «Далее». Сохра-ним отчет под именем «Количество учеников» (рис. 205).На экране появится созданный мастером отчет (рис. 206).Внимательно рассмотрим его, чтобы сразу оценить, чтоздесьнуждаетсявдоработке.Перейдемврежим154ГЛАВА 4. ОТЧЕТЫРис. 203.Выбор источника данных и полейРис. 204.Уровни группировкиРис. 205.конструктора (рис.Сохранение отчета207). Отредактируем надпись в за-головке отчета. В примечание добавим надпись «Всего»и четыре поля, соответствующие полям из области данных. Эти поля проще просто скопировать, дабы не тратить§ 4.5.
Отчет «Количество учеников»Рис. 206.Рис. 207.155Отчет «Количество учеников»Отчет «Количество учеников» в режиме конструкторавремя на форматирование. Поля будут содержать суммарные значения по столбцам: «=Sum([Итого])», «=Sum([9])»,«=Sum([10])» и «=Sum([11])». Для их ввода лучше воспользоваться окном свойств (вкладка «Данные»), как показанонарис.207.Вероятно,придетсянемного156ГЛАВА 4. ОТЧЕТЫотредактировать размеры полей и их расположение. Фонсделаем белым, а цвет шрифта – черным. Пожалуй все!Закроем конструктор с сохранением. Теперь при открытии отчет будет иметь вид, как на рис.Рис.
208.208.Окончательный вид отчета «Количество учеников»Всего, не считая подчиненного, в этой главе мы создалипять различных отчетов, рассмотрев наиболее распространенные вопросы, возникающие при их создании. Во многом возможности отчетов определяются набором тех основных сущностей, которые мы выделили в начале книги,и, разумеется, их свойствами. Так, если мы не отметили такое свойство ученика, как «Пол», то лишили себя,§ 4.6. Редактирование кнопочной формы157а значит и пользователя приложения, возможности получать отчеты о количестве мальчиков и девочек, посещающих кружки.§ 4.6.
Редактирование кнопочной формы148⇔160Осталось обеспечить навигацию по создан-ным отчетам. Ранее мы зарезервировали для отчетов страничку кнопочной формы. Щелкнем по пиктограмме «Диспетчер кнопочных форм» в левом верхнем углу окна базы данных. На экране всплывет окно диспетчера. Выберем «Отчеты» и нажмем «Изменить» или просто дваждыщелкнем по соответствующей строке. Появится страничка «Отчеты» (рис.Рис. 209.209). «Создать». В диалоговом окнеОкно диспетчера кнопочных формв строке «Текст» наберем «Весь список»; в строке «Команда»откроемменюивыберем«Открытьотчет»;в строке «Отчет» в меню выберем «Весь список» (рис.
210).У нас текст «Весь список», который в дальнейшем будет158ГЛАВА 4. ОТЧЕТЫРис. 210.Параметры элемента кнопочной формыслужить надписью к соответствующей кнопке, совпадаетс названием отчета, который должен открываться при нажатии на эту кнопку. В общем случае это не обязательно. Нажимаем «ОК». Далее точно так же создаем кнопкидля остальных отчетов: «Возраст учащихся», «Количествоучеников», «Ученики по классам» и «Ученики по кружкам».