Введение в microsoft access (835789), страница 9
Текст из файла (страница 9)
Добавим и такую возможность. Для этого создадим новую форму. Специально еще раз разберем весь процесс. Нажмем «Создание», затем «Конструктор форм».Мы необращаемся к мастеру потому, что форма не свя-зана ни с каким источником данных. На экране появитсяпустая форма. Возьмем с панели элементов управленияэлемент «Поле» (рис.117). В это поле будем записыватьномер класса.
Для ввода «буквы класса» возьмем «Полесо списком». Откроется диалоговое окно (рис.118). Вы-берем фиксированный набор значений. «Далее». Введем106ГЛАВА 3. КНОПОЧНАЯ ФОРМАРис. 117.Рис. 118.Панель элементовВыбор фиксированного набора значенийсписок значений: а, б, в, г.
Удалим подпись к полю «Буква», передвинем поле со списком ближе к полю с номеромкласса, чтобы мы могли видеть полностью идентификаторкласса. Например, 10а. Первому полю дадим имя «Класс»(рис.119), а второму – «Буква». Напомним, что каждыйРис. 119.Присвоение имени элементу управленияэлемент управления должен иметь имя, по которому мымогли бы обращаться к нему. Система присвоит элементуимя, даже если мы забудем сделать это. Но с именем типа§ 3.6. Редактирование кнопочной формы107«Кнопка17» нам трудно будет работать.
Добавим кнопкудля закрытия формы. Как и в созданных ранее формах,дадим ей имя «Закрыть» и поставим под ней подпись «Закрыть». Следующая кнопка будет открывать список учеников. Возьмем ее с панели элементов. Здесь мы откажемся от услуг мастера. Для этого можно отключить «Мастер» на панели элементов управления или в первом диалоговом окне нажать «Отмена». На экране появится кнопка. Дадим ей имя «Список» (на вкладке «Другие»), выберем рисунок (на вкладке «Макет»). Под кнопкой поместим подпись «Список».
Раскрасим форму так же, как мыэто делали ранее, и сохраним под именем «Список класса» (рис.120). Откроем форму в рабочем режиме. ПокаРис. 120.Сохранение формыпри нажатии на кнопку «Список» ничего не происходит.Работает только кнопка «Закрыть». Заметим, что форма имеет ряд ненужных атрибутов, таких как, например,108ГЛАВА 3. КНОПОЧНАЯ ФОРМАобласть выделения. Переведем форму в режим конструктора.
В окне свойств кнопки «Список» перейдем на вкладку «События». Мы уже умеем присваивать событию метод. В данном случае событию «Нажатие кнопки» поставим в соответствие макрос «ОткрытьФорму» (рис.121).В окне параметров макроса выберем имя формы «СписокРис. 121.Параметры макросаучеников». В строку «Условие отбора» введем текст:[Класс]=[Формы]![Список классов]![Класс] And[Буква]=[Формы]![Список классов]![Буква].Таким образом, мы указали, что критерием отбора записей в форме «Список учеников» будет совпадение значений полей «Класс» и «Буква» со значениями одноименныхполей формы «Список класса».
Разумеется, совпадениеимен полей вовсе не обязательно. Мы могли полям формы«Список класса» дать и другие имена. Сохраним макрос.Перейдемксвойствамформы.Навкладке§ 3.6. Редактирование кнопочной формы109«Макет» укажем значения свойств: «Область выделения»– «Нет»; «Кнопки навигации» – «Нет»; «Полосы прокрутки» – «Отсутствуют» (рис.Рис. 122.122). На вкладке «Другие»Свойства формысделаем окно модальным. Откорректируем свойства поля «Класс». На вкладке «Данные» в строке «Условие назначение» зададим:Рис.
123.>=1 And <=11 (рис.123). МожноУстановка связи между формамизадать значение по умолчанию, например10.Для поля110ГЛАВА 3. КНОПОЧНАЯ ФОРМА«Класс» также можно задать значение по умолчанию «а».Осталось внести изменения в кнопочную форму. Щелкнемпо известному нам значку в левой верхней части окна базы данных, откроем страничку «Первичные данные». Всписке страниц установим указатель на «Первичные данные» и нажмем «Изменить». На открывшейся страничкенажмем «Создать».
Откроется окно для создания кнопки(рис.124).ВведемРис. 124.текст«Списоккласса».Создание кнопкиВ строке «Команда» выберем «Открыть форму для изменения». В строке «Форма» выберем «Список класса».«ОК». Новая кнопка оказалась внизу списка. Установимуказатель на ней и, пользуясь кнопкой «Вверх», передвинем(рис.вположениепослекнопки«Списокучеников»125).
Закроем окно странички, а затем и всего дис-петчера кнопочных форм. После всех правок еще раз протестируем приложение. Откроем кнопочную форму. В нейнажмем кнопку «Список класса». Откроется одноименная§ 3.6. Редактирование кнопочной формыРис. 125.Рис. 126.111Задание имени формыСписок учеников 10а классаформа. Зададим в поле класс значение 10, а в поле «Буква» – «а» и нажмем кнопку «Список». Появится списоквсех «кружковцев», учеников 10а класса (рис. 126). В нашем случае их оказалось всего двое, так как мы для тестированияприложениясоздалинебольшойнабор112ГЛАВА 3.
КНОПОЧНАЯ ФОРМАпервичных данных. На последнем этапе разработки тестирование желательно провести с большим (а еще лучше сполным) набором данных.Поскольку в параметрах Access установлено «Перекрываниеокон»,наэкранемывидимсразувсеоткрытыеформы. Их положение на экране можно определить, задавсвойство на вкладке «Макет» в строке «Выравнивание поцентру»: «Да» или «Нет».Глава 4.
ОтчетыВ Microsoft Access пользователь имеет возможность вывести на печать содержимое любой таблицы, запроса илиформы. Однако согласитесь, в результате получится не то,что можно положить начальнику на стол. Отчет – это документ, предназначенный для печати. В простейшем случае он состоит из заголовка – текста, расположенногов начале документа; верхнего колонтитула – текста, расположенного в верхней части каждой страницы; областиданных; нижнего колонтитула – текста, расположенноговнизу каждой страницы; примечания – текста, расположенного в конце отчета.Отчет может иметь и более сложную структуру. Но мыбудем двигаться от простого к сложному.§ 4.1.
Отчет «Весь список»105⇔118Прежде всего создадим отчет, который будетпредставлять собой список всех «кружковцев» в алфавитном порядке с указанием класса, дня рождения и телефона. Для этого выберем пункт меню «Создание» и щелкнем по пиктограмме «Мастер отчетов». В первом диалоговом окне выберем в качестве источника данных таблицу114ГЛАВА 4.
ОТЧЕТЫ«Ученики». Возьмем для отчета поля «ФИ», «Класс», «Буква», «ДР» и «Телефон» (рис. 127). «Далее». В следующемРис. 127.Выбор таблицы и полейдиалоговом окне мастер предложит добавить уровни группировки. Обойдемся без группировки. «Далее» (рис. 128).Установим сортировку по возрастанию значений поля «ФИ»,Рис. 128.Уровни группировкит. е. по алфавиту (рис. 129).
«Далее». Выберем макет «табличный» и ориентацию «книжная» (рис.130). «Далее».Дадим отчету имя «Весь список» (рис. 131). «Готово». Наэкранепоявитсяотчет(рис.132).Обычнопосле§ 4.1. Отчет «Весь список»Рис. 129.Рис. 130.115Сортировка по значениям поля «ФИ»Выбор макета и ориентации страницыРис. 131.Сохранение отчетамастера отчет приходится дорабатывать. В частности, если мы собираемся печатать отчеты на черно-белом принтере, цветной фон в заголовке отчета будет неуместен.Щелчком по значку конструктора в правом нижнем углу окна базы данных переведем отчет в режим конструктора (рис.133). Точно так же, как в случае с форма-ми, отредактируем цвет фона и текста.
После небольших116ГЛАВА 4. ОТЧЕТЫРис. 132.Рис. 133.Отчет «Весь список»Отчет «Весь список» в режиме конструкторакорректировок отчет примет вид, как на рис.134.На-до заметить, между формами и отчетами много общего.В частности, отчет, как и форма, является контейнеромдля элементов управления. На рисунке мы видим основныеразделыотчета,окоторыхговориливначале§ 4.1. Отчет «Весь список»Рис. 134.Рис. 135.Отчет после корректировкиОкончательный вид отчета «Весь список»117118ГЛАВА 4.
ОТЧЕТЫпараграфа. Обратим внимание на поля в области нижнегоколонтитула. Поле слева содержит вычисляемое значение«=Now()». Функция Now при обращении к ней возвращаетзначение текущей даты. Выражение в поле справа формирует текстовую строку с номером текущей страницы отчета и общего количества страниц. Причем номер текущейстраницы хранится в поле отчета [Page], а общее количество страниц – в поле [Pages]. Закроем конструктор с сохранением результатов. Теперь при открытии отчет будетиметь вид, как на рис.135.§ 4.2.
Отчет «Ученики по классам»113⇔125Следующий отчет будет содержать списокучеников, сгруппированный по классам. Источник данных– таблица «Ученики». Выберем поля «ФИ», «ДР», «Класс»и «Буква» (рис.136). Выделим два уровня группировкипо значениям полей «Класс» и «Буква» (рис.
137). Внутри групп упорядочим записи по значениям поля «ФИ»(рис. 138). Выберем макет отчета «ступенчатый» и книжную ориентацию страницы (рис.139). Сохраним отчетпод именем «Ученики по классам» (рис. 140). Посколькув последнем диалоговом окне мы выбрали параметр «Просмотреть отчет», на экране появится только что создан-§ 4.2. Отчет «Ученики по классам»Рис. 136.Выбор источника данных и полейРис.
137.Рис. 138.Уровни группировкиСортировка записей119120ГЛАВА 4. ОТЧЕТЫРис. 139.Выбор макета отчетаРис. 140.Сохранение отчетаный нами документ (рис.не141). Пока работа мастера насочень устраивает. Расположение полей в области дан-ныхнесоответствуетнадписям.Поля«Класс»и «Буква» захватили большую часть пространства отчета.
Да еще у двух учеников вместо дат рождения проставлены последовательности символов «#». Последнее бывает, если данные не укладываются в размер поля в форме или отчете. Переведем отчет в режим конструктораи отредактируем его, как показано на рис. 142.
Также добавим линии, разделяющие данные о классах. Эти линиивы легко найдете на панели элементов управления. Закроем конструктор с сохранением. Если теперь открыть отчет§ 4.2. Отчет «Ученики по классам»Рис. 141.Рис. 142.121Отчет, созданный мастеромОтчет в режиме конструкторав рабочем режиме, он будет иметь вид, как на рис.143.Допустим, нас попросили представить в отчете данные122ГЛАВА 4. ОТЧЕТЫРис. 143.Отчет «Ученики по классам»о численности «кружковцев». В режиме конструктора мывидели, что отчет имеет заголовок и примечание, а группам «Класс» и «Буква» мастер выделил только заголовок.Здесь явно есть какая-то дискриминация. На самом делегруппам тоже полагается примечание.