Разработка отчета на основе запроса.
Запрос является мощным и удобным средством выборки взаимосвязанных данных. Поэтому с помощью запроса можно подготовить данные для сложного отчета.
Рассмотрим технологию создания сложного отчета с использованием запроса на примере формирования бланка "Экзаменационная ведомость" для группы студентов по заданному предмету. Бланк должен иметь форму документа, используемого для ввода данных после внесения оценок преподавателем в этот бланк.
Проект макета отчета. Бланк " Экзаменационная ведомость", которая должна выводиться из базы данных в режиме просмотра и печати отчета.
Рис.6.26.Проект макета отчета Экзаменационная ведомость.
Рассмотрим подготовку запроса, обеспечивающего выборку информации, необходимой для формирования бланка экзаменационной ведомости.
Создание запроса для подготовки данных в отчет
Определение схемы данных запроса
Для вывода в отчет реквизитов, указанных в проекте макета нужно определить таблицы - источники и их взаимосвязи.
Таблицы источники данных. Для вывода в шапку бланка экзаменационной ведомости значений реквизитов Вид сдачи, Группа необходимы данные из полей ВИДЗ, НГ таблицы ИЗУЧЕНИЕ. Для вывода значений реквизитов с общей надписью Преподаватель (фамилия, ученое звание) необходимы данные из полей ФИО, ЗВ таблицы ПРЕПОДАВАТЕЛЬ. Для вывода реквизита Название предмета необходимы данные из поля НП таблицы ПРЕДМЕТ.
Для вывода в табличную часть бланка экзаменационной ведомости значений реквизитов N п/п, Фамилия И.О. необходимы данные из полей НС, ФИО таблицы СТУДЕНТ.
Таким образом, запрос для выборки этих взаимосвязанных данных должен быть построен на основе таблицы ИЗУЧЕНИЕ, ПРЕПОДАВАТЕЛЬ, ПРЕДМЕТ, СТУДЕНТ.
Связи между таблицами запроса. При создании запроса связи между таблицами установятся автоматически. Связи таблиц ИЗУЧЕНИЕ, ПРЕДМЕТ, ПРЕПОДАВАТЕЛЬ определяются в соответствии со схемой данных БД.
При создании запроса между таблицами СТУДЕНТ и ИЗУЧЕНИЕ автоматически установится также связь по одноименному полю НГ (номер группы). Эта связь является связью - объединением, которой нет в схеме данных базы. Заметим, что эти таблицы находятся в отношениях многие-ко-многим, поскольку один студент изучает много предметов, и один предмет изучается многими студентами. Связь, установленная между таблицами СТУДЕНТ и ИЗУЧЕНИЕ, определяет операцию симметричного объединения. При этом записи из этих таблиц объединяются и добавляются в результат только в том случае, если связанные поля содержат одинаковые значения.
Конструирование запроса для подготовки макета отчета.
Процесс включения в запрос необходимых таблиц и полей из них является достаточно простым и выполняется по технологии, подробно рассмотренной в главе 5. В строке бланка запроса Условие отбора (Criteria) определим параметры запроса |Номер группы| и |Наименование предмета| для аналогового ввода их значений при выполнении запроса. Это позволяет получить данные для конкретной ведомости.
Рис. 6.27. Запрос на выборку в режиме конструктора для формирования
отчета-бланка экзаменационной ведомости
В отчете необходимо выводить значения реквизита Вид сдачи: Экзамен, Зачет, которых нет непосредственно в таблицах БД, но они могут быть получены на основе значений поля ВИДЗ таблицы ИЗУЧЕНИЕ. Два значения реквизита Вид сдачи: "Экзамен" и "Зачет" соответствуют двум возможным значениям поля ВИДЗ: "лек" и "np". Фактически нужно вместо значения "лек" формировать слово "Экзамен", а вместо "пр" - слово "Зачет". Для этого надо в запрос ввести новое поле, которое формируется как вычисляемое. Это поле должно содержать встроенную функцию управления.
Выражение 1 : Iif ( [ВИДЗ] = "лек"; "Экзамен"; "Зачет")
Именно этого вычисляемого поля по умолчанию является "Выражение 1:"
Функция Iif ("immediate if" - мгновенное условие) аналогична инструкции if… Then… Else и имеет следующий формат:
Iif (условие; если Истина; если Ложь)
В соответствии с форматом этой функции, если выполнится условие (ВИД)= "лек" (т.е. в поле ВИДЗ находится значение "лек"), ТО РЕЗУЛЬТАТОМ ФУНКЦИИ БУДЕТ "Экзамен". В противном случае, т.е. если (ВИДЗ) = "пр" результатом функции будет слово "Зачет".
В предыдущем рисунке приведен в окончательном виде запрос для подготовки данных отчета-бланка экзаменационной ведомости. Этот запрос сохранен под именем "Ведомость".
Формирование записей результатов в запросе.
В процессе формирования записей результата из таблицы СТУДЕНТ последовательно выбираются записи с заданным номером группы (НГ).
С каждой записью таблицы СТУДЕНТ объединяются связанные по номеру группы НГ записи из таблицы ИЗУЧЕНИЕ. Из таблицы ИЗУЧЕНИЕ в этом объединении участвуют только записи с заданным наименованием предмета.
Дополнеие формируемых запросом записей полями из таблицы ПРЕДМЕТ и ПРЕПОДАВАТЕЛЬ не добавляет новых записей. Эти таблицы представляют сторону один в отношении один-ко-многим и служат лишь для расшифровки кодов КП и ТАБН из таблицы ИЗУЧЕНИЕ.
Если по заданному предмету проводится не одно, а два вида занятий: лекции и практика, то число формируемых записей удваивается. В этом случае должны быть сформированы две ведомостит - одна для сдачи экзамена, другая для сдачи зачета.
Заметим, что таблица результатов запроса содержит ненормализованные данные, что проявляется в повторяемости значений в столбцах ГРУППА, НАИМЕНОВАНИЕ ПРЕДМЕТА, ФИО ПРЕПОД., УЧ. ЗВАНИЕ, ВИД ЗАНЯТИЙ и ВЫРАЖЕНИЕ1. Поэтому данная таблица не соответствует проекту макета отчета Экзамена ведомость не может непосредственно использоваться как выходной документ.
Использование средств Access для подготовки отчета обеспечивает преобразование получаемой таблицы результатов запроса в выходной документ нужной формы в соответствии с проектом макета отчета.
Рис.6.28 Результат выполнения запрса с данными для экзаменационной ведомости
Конструирование отчета на основе запроса
Рассмотрим технологию отчета на основе запроса Ведомость подготовленного выше. Для конструирования отчета в окне базы данных выберем объект Отчеты (Reports) и нажмем кнопку Создать (NEW). В окне Новый отчет (New Report) выберем запрос Ведомость, который будет источником данных для отчета. Выберем строку Конструктор (Design) для разработки отчета.
Размещение данных в разделах отчета
Результаты запроса содержат много полей с повторяющимися значениями НГ, НП, ФИО преподавателя, ЗВ, ВИДЗ, Выражение 1: Данные в отчете должны быть размещены, как показано на макете отчета Экзаменационная ведомость. Значение каждого из этих полей должно быть представлено в отчете в заголовке один раз.
Заметим, что результаты для отчета получены по заданной группе и предмету. Поскольку по предмету может быть два вида занятий и для каждого вида занятий предполагается вывод отдельной ведомости, необходимо выполнить группировку по полю ВИДЗ. Для группировки по виду занятия нажмем кнопку Сортировка и группировка (Sorting and Grouping)на панели инструментов конструктора отчетов и заполним поля открывшегося окна.
Рис. 6.29. Окно определения групп записей
по полю ВИДЗ и сортировки по полю НС.
После определения группировки в окне конструктора отчета появятся разделы Заголовок группы "ВИДЗ" (ВИДЗ Header) и Примечание группы "ВИДЗ" (ВИДЗ Footer).
Чтобы каждая группировка могла быть оформлена как самостоятельная экзаменационная ведомость, будем формировать шапку макета ведомости в заголовке группы ВИДЗ, а строки о подведении итогов сдачи экзамена (или зачета) в примечании группы ВИДЗ.
Рис. 6.30.офрмление шапки и табличной части отчета.
Рис.6.31.Оформление итоговой части отчета.
Создание текстовых элементов отчета.
Для создания в заголовке и примечании группы ВИДЗ текстовых элементов за исключением названий реквизитов выводимых полей, используем кнопку Надпись (Label). Для оформления текста можно воспользоваться кнопками панели форматирования. Кроме того, можно задавать параметры надписей в окне свойств этих элементов. Окно свойств элемента открывается кнопками панели инструментов Свойства (Properties). Элемент предварительно должен быть выделен.
При размещении элементов может понадобиться расширить раздел отчета. Для этого установить курсор мыши на его нижнюю границу так, чтобы появилась двунаправленная стрелка, и переместить эту стрелку вниз.
Оформление табличной части отчета.
Для размещения в отчете полей вызовем окно списка полей запроса Ведомость, нажав на панели конструктора отчетов кнопку. Список панелей (Field List) .
Рис.6.32. Список полей запрса Ведомость
В область данных разместим поля НС и ФИО, на основе содержимого которых будут формироваться строки табличной части отчета в соответствии с проектом макета отчета. Для этого из списка полей перетащим поля НС (номер студента) и СТУДЕНТ. ФИО в область данных.
Каждое поле представляется двумя элементами: собственно полем и его подписью. Например, поле ФИО таблицы СТУДЕНТ представляется элементом СТУДЕНТ. ФИО, отображающим значение поля, и элементом, содержащим подпись этого поля из таблицы базы данных - Фамилия И.О. Установим нужный шрифт в элементах. Используем команду меню Формат |Размер| по размеру данных (Format |Size| Size To Fit) для установки размеров элемента по размеру текста подписи.
Замети, что подпись поля из табличной части должна быть перемещена для формирования заголовка столбцов в раздел Заголовок группы "ВИДЗ" (ВИДЗ Header). Для этого выделим подпись поля. Затем вырежем его. Активизируем раздел Заголовок группы "ВИДЗ" (ВИДЗ Header) и вставим подпись в этот раздел.
Оформим элементы в соответствии с требованиями проекта макета отчета. В частности, заменим подпись поля "Номер студента на N п/п". Для того чтобы в бланке экзаменационной ведомости были пустые столбцы для оценок и подписи (заполняемые преподавателем вручную на экзамене), добавим в строку с заголовками столбцов новые текстовые элементы "Отметка о сдаче" и "Подпись преподавателя".
Размещение полей в заголовке
Значения полей НГ, НП, ФИО преподавателя, ЗВ, Выражение 1 (экзамен, зачет) повторяются во всех записях группировки. Поэтому они должны размещаться в заголовке группы. Перетащим эти поля из списка полей в раздел Заголовок группы "ВИДЗ" (ВИДЗ Header).
Добавление текущей даты и номера страницы
Для добавления в отчет текущей даты воспользуемся встроенной функцией Now (). Для этого создадим несвязанный элемент, нажав кнопку Поле (Text Box) на панели элементов и разместим его в нужном месте. Зададим в окне его свойств на вкладке Данные (Data) в строке Данные (Control Source) выражение = Now (), а на вкладке Макет (Format) в строке Формат поля (Format) выберем значение - Средний формат даты (Medium Date).
Для добавления номера страницы в раздел Нижний колонтитул создадим несвязанный элемент и заполним в его свойствах строку Данные (Control Source) выражением = "Страница" @ [Page].
Создадим горизонтальные и вертикальные линии в соответствии с макетом, воспользовавшись кнопкой Линии (Line). Установим нужную толщину линий в свойствах этого элемента.
Сохраним отчет под именем "Экзаменационная ведомость".
Предварительный просмотр отчета.
При подготовке к просмотру отчета, построенного на базе запроса с параметрами, Acceess предварительно выполняет запрос и выводит диалоговые окна ввода параметров отчета.
Просмотр отчета. Для отображения отчета Экзаменационная ведомость на экране в том виде, в котором он будет напечатан, выйдем из режима конструктора отчетов, нажав кнопку Вид (View). Последовательно появляются диалоговые окна для ввода параметров запроса, которые являются в то же время параметрами отчета.
Введем значение параметра "Номер группы" - "101" и значение параметра "Наименование предмета" - "Информатика". Для данных значений параметров отчет будет состоять из двух страниц, на первой из которых будет представлена экзаменационная ведомость для экзамена по информатике, на второй - для сдачи зачета. Первая и вторая страницы отчета Экзаменационная ведомость приведены на рис. 6.34, 6.35.
Рис.6.33. Диалоговые окна ввода параметров отчета
рис.6.34. Вывод бланка экзаменационной ведомости для лекций
на первой странице отсчета
Рис. 6.35. Вывод бланка экзаменационной ведомости для практики
на второй странице отчета
Управление приложением пользователя
В предыдущих разделах была рассмотрена технология разработки объектов базы данных Access: таблиц, форм, запросов, отчетов, макросов, модулей как средств решения задач и разработки интерфейса приложения пользователя. При этом большое количество объектов, не сгруппированных по функциям приложения, затрудняет выполнение пользователем задач обработки данных в автоматизируемой предметной области.
Для организации эффективной работы пользователя нужно создать целостное приложение данной предметной области, все компоненты которого должны быть сгруппированы по функциональному назначению. При этом необходимо обеспечить удобный графический интерфейс пользователя.
Особую роль при создании приложения играют формы, так как они являются основным диалоговым средством работы пользователя.
Формы построены таким образом, что любое действие пользователя вызывает реакцию системы, т.е. воспринимается как событие, в зависимости от которого могут выполняться необходимые действия. Для выполнения этих действий используются макросы или процедуры обработки события, созданные пользователем на языке VBA, которые связаны с событием. VBA позволяет вызвать внешние процедуры из библиотечных баз данных MS Access (.mda) и библиотек динамической компоновки (.dll). Именно при работе в форме возникает основной ряд событий, обработка которых позволяет связывать различные объекты в задачах обработки данных. Таким образом, ходом управления приложения можно управлять, обрабатывая возникающие в формах события. Приложения, создаваемые средствами Access, используют расширенную обработку событий, при которой программы приложения выполняются в ответ на различные события.
Для объединения объектов в едином диалоговом приложении могут быть созданы так называемые кнопочные формы. Кнопочная форма является панелью управления приложением. Кнопки такой формы обеспечивают вызов других кнопочных форм, а также отдельных объектов: Отчетов, форм, макросов, модулей, с которых начинается решение задачи. Сюда же помещаются и кнопки для возврата к кнопочным формам предыдущих уровней выхода из Access. Обычно также предусматривается кнопка для изменений самой кнопочной формы.
Пользователь, нажимая кнопку на панели управления, инициирует событие нажатия кнопки. К этому событию могут привязываться действия по открытию других кнопочных форм или конкретные действия по обработке данных, реализующие функции приложения.
Вызов главной кнопочной формы - панели управления приложением при открытии базы данных позволяет пользователю сразу начать работу в среде приложения и приступить к выполнению задач.
В Access имеется средство автоматизированной разработки формы по управлению приложением, называемое диспетчером кнопочных форм.
Создание панели управления приложения
Создание кнопочной формы с помощью диспетчера
Пользователь имеет возможность с помощью диспетчера кнопочных форм создавать кнопочную форму стандартного вида.
¦ Создадим главную кнопочную форму, которая будет использоваться как панель управления приложения "Учебный процесс".
Создание главной кнопочной формы приложения "Учебный процесс"
Выполним команду Сервис|Служебные программы|Диспетчер кнопочных форм (Tools|Utilites|Switchboard Manager).
В окне Диспетчер кнопочных форм (Switchboard Manager) подтвердим создание кнопочной формы (рис.7.62).
Появиться окно со строкой Главная кнопочная форма (Main Switchboard (Default)) (рис.7.63), в котором формируется список кнопочных форм разных уровней.
Рис. 7.62. Окно подтверждения создания кнопочной формы приложения
Рис. 7.63. Окно списка кнопочных форм приложения
Создание подчиненных кнопочных форм приложения
Создадим три кнопочные формы для комплексов задач деканата, кафедр и учебного отдела.
Для создания кнопочной формы в окне диспетчера кнопочных форм нажмем кнопку Создать (New). В окне Создание (Create New) (рис.7.64) в поле Имя страницы кнопочной формы (Switchboard Page Name) введем имя первой кнопочной формы "Кнопочная форма Деканат".
Рис.7.64. Окно создания пустой кнопочной формы
После нажатия кнопки ОК в окне диспетчера кнопочных форм появится строка "Кнопочная форма Деканат".
Аналогичными действиями создадим еще две кнопочные формы: Кнопочная форма Кафедра и Кнопочная форма Учебный отдел (рис.7.65).
Рис. 7.65. Список кнопочных форм приложения "Учебный процесс"
Любую из подготовленных кнопочных форм можно сделать стартовой, которая будет открываться по умолчанию при открытии базы данных. Для этого следует выбрать ее имя в окне диспетчера кнопочных форм и нажать кнопку По умолчанию (Make Default). Оставим главную кнопочную форму стартовой кнопочной формой. Эта кнопочная форма будет находиться на верхнем уровне иерархии взаимосвязанных кнопочных форм в соответствии со структурой создаваемого приложения.
Редактирование имени и формирование элементов кнопочной формы
Элементами кнопочных форм являются кнопки с подписями. Подпись задается пользователем и должна по возможности кратко и точно называть действия, которые будут выполняться принажатии кнопки. Для формирования элементов главной кнопочной формы в окне Диспетчер кнопочных форм (Switchboard Manager) выделим соответствующую ей строку и нажмем кнопку Изменить (Edit).
В окне диалога Изменение страницы кнопочной формы (Edit Switchboard Page) (рис.7.66) главную кнопочную форму переименуем в "Приложение "Учебный процесс"", введя это имя в поле Название кнопочной формы (Switchboard Name).
Элементы, создаваемые в кнопочной форме, могут быть подразделены на два основных типа:
Элементы, предназначенные для организации вызова других кнопочных форм
Элементы, обеспечивающие открытие формы, отчета, запуск макроса программы, выход из приложения с закрытием базы данных или перехода в режим продолжения разработки кнопочной формы диспетчером кнопочных форм.
Рис. 7.66. Окно редактирования имени кнопочной формы и создания ее кнопок
Формирование элементов для вызова кнопочных форм. Для формирования в главной кнопочной форме Приложение Учебный процесс кнопки вызова подчиненной кнопочной формы нажмем кнопку Создать (New).
В окне Изменение элемента кнопочной формы (Edit Switchboard Item) строке Команда (Command) выберем Переход к кнопочной форме (Go to Switchboard) (рис.7.67)
Рис. 7.67. Окно создания элемента кнопочной формы
В строке Кнопочная форма (Switchboard) выбирается форма, переход к которой должна обеспечивать создаваемая кнопка текущей формы. Откроем список созданных для приложения кнопочных форм и выберем элемент Кнопочная форма Деканат.
В строке Текст (Text) введем подпись для этой кнопки: "Задачи деканата" (рис.7.68).
Для завершения формирования элемента нажмем ОК. Элемент отобразиться в списке Элементы данной кнопочной формы (Items on this Switchboard).
Рис. 7.68. Выбор подчиненной кнопочной формы
Аналогичным образом создадим кнопки вызова других подчиненных форм и зададим для них подписи "Задачи кафедры" и "Задачи учебного отдела".
Чтобы изменить или удалить какую - либо из созданных кнопок, надо выбрать имя этой кнопки в списке Элементы данной кнопочной формы (Items on this Switchboard) и нажать кнопку Изменить (Edit) или Удалить (Delete).При необходимости изменить порядок кнопок в списке надо выбрать элемент и нажать кнопку Вверх (Move Up) или Вниз (Move Down).
Для перехода к редактированию созданных кнопочных форм создадим в главной кнопочной форме кнопку Изменение кнопочной формы, выбрав для нее команду Конструктор приложения (Design Application). В дальнейшем это позволит в любой момент вызвать диспетчер кнопочных форм и с его помощью внести необходимые изменения.
Для завершения работы с приложением создадим кнопку, выбрав для него команду Выйти из приложения (Exit Application), и присвоим ей это же имя.
Страница главной кнопочной формы Приложение Учебный процесс после создания всех ее элементов представлена на рис.7.69.
Рис. 7.69. Страница кнопочной формы Приложение Учебный процесс
Закончив создание страницы кнопочной формы, нажмем кнопку Закрыть (Cancel). Это позволит вернуться к списку всех кнопочных форм приложения.
В подчиненных кнопочных формах создадим кнопку для возврата к главной кнопочной форме, заполнив поля в окне Изменение элемента кнопочной формы (Edit Switchboard Item), как показано на рис.7.70.
Рис.7.70. Создание кнопки для возврата в главную форму
Таким образом могут быть установлены все необходимые связи между кнопочными формами, представленными в списке окна диспетчера кнопочных форм. Практически на эти связи и число уровней не накладывается ограничений и могут быть созданы любые удобные пользователю переходы по кнопочным формам.
Формирование элементов для открытия объектов приложения. Для формирования кнопок, обеспечивающих выполнение задач пользователя, необходимо, чтобы они были связаны с одним из объектов приложения. Диспетчер кнопочных форм обеспечивает связь с формами, отчетами, макросами и модулями. Для связи создаваемой кнопки с нужным объектом надо выбрать в строке Команда (Command) (рис.7.71) одну из команд:
Открыть форму для добавления
Открыть форму для изменения
Открыть отчет
Выполнить макрос
Выполнить программу
В третьей строке окна Изменение элемента кнопочной формы (Edit Switchboard Item), которая будет соответствовать команде, выбранной во второй строке, выберем конкретный объект.
Например, если выбрать в строке Команда (Command) команду - Открыть отчет (Open Report), появится третья строка - Отчет (Report), где можно будет выбрать имя открываемого отчета, Если выбрать в строке Команда (Command) - команду Открыть форму для изменения (Open Form in Edit Mode) (см. рис. 7.46), появится строка Форма (Form).
Рис. 7.71. Выбор команды для элемента кнопочной формы
Создадим в кнопочной форме Деканат кнопку для работы с формой УСПЕВАЕМОСТЬ, через которую производится ввод данных из экзаменационной ведомости и с которой связано выполнение макроса, решающего задачу выдачи списков двоечников и отличников (см.выше).
В окне диспетчера кнопочных форм выберем Кнопочная форма Деканат, Для создания элементов в этой форме нажмем кнопку Изменить (Edit). В открывшемся окне Изменение страницы кнопочной формы (Edit Switchboard Page) нажмем кнопку Создать (New).
В окне Изменение элемента кнопочной формы (Edit Switchboard Item) выберем команду Открыть форму для изменения (Open Form in Edit Mode) (рис.7.71). В появившейся строке Форма (Form) откроем список доступных форм и выберем форму УСПЕВАЕМОСТЬ. В строку Текст (Text) введем подписи кнопки "Списки успеваемости".
Аналогичным образом создадим кнопку для выполнения макроса "Расчет числа студентов в группах" (см. выше). Этот макрос решает задачу путем запуска на выполнение двух запросов. Введем для этой кнопки подпись "Расчет числа студентов в группах".
Аналогичным образом могут быть созданы все необходимые в кнопочных формах кнопки для вызова форм, отчетов, макросов и программ пользователя. Главная кнопочная форма Приложение Учебный процесс представлена на рис.7.72.
Фрагмент структуры приложения "Учебный процесс" иллюстрирует рис.7.73.
После завершения работы с диспетчером кнопочных форм в списке форм базы данных появляется форма с именем Кнопочная форма (Switchboard).
Главная кнопочная форма может запускаться при открытии базы данных.
Для этого в параметрах запуска в строке Вывод формы/страницы выбирается форма, созданная диспетчером кнопочных форм. Параметры запуска отображаются при выполнении команды Севрис|Параметры запуска (Tools Startup).
Рис. 7.72. Главная кнопочная форма Приложение Учебный процесс
Рис. 7.73. Фрагмент структуры приложения "Учебный процесс"
Замечание
Эта команда доступна при открытой базе данных. Параметры запуска определяют вид окна приложения при его открытии. Эти параметры позволяют изменить заголовок окна приложения, выбрать собственное меню, контекстное меню, используемое по умолчанию в формах и отчетах, панели инструментов, а также указать форму, открываемую в базе данных по умолчанию.
При помощи параметров запуска можно запретить пользователю работу в окне базы данных, и тогда он сможет выполнять только те работы, которые предусмотрены в кнопочных формах приложения. Для того чтобы запретить просмотр окна базы данных, нужно сбросить флажки Окно база данных (Display Database Window) и Специальные клавиши (Use Access Special Keys), которые размещены в нижней части окна, вызываемого при нажатии кнопки Дополнительно (Advanced>>).
Диспетчер кнопочных форм Access создает таблицу Элементы кнопочной формы, содержащую описания кнопок формы и выполняемых ими действий.
Замечание
Попытка изменить кнопочную форму в режиме конструктора формы может привести к тому, что приложение перестанет работать. Однако вставка в кнопочную форму рисунков не приводит к таким последствиям.
Добавление рисунка в кнопочную форму
В стандартную кнопочную форму можно вставить рисунок, например, созданную в Microsoft Paint эмблему фирмы. В левой части этой формы уже размещен элемент управления Рисунок (Picture), в котором собственно рисунок отсутствует, но создана рамка для его вывода на экран. Заметим, что такой элемент может быть создан в любой форме с помощью кнопки панели элементов Рисунок (Image).
Воспользовавшись кнопкой Вид (View), переключим кнопочную форму режим конструктора. Щелкнем кнопкой мыши на области формы слева и нажмем правую кнопку мыши. В открывшемся окне свойств на вкладке Макет (Format) в строке Рисунок (Picture) укажем путь и имя файла с расширением одного из графических приложений, форматы которых поддерживаются установленными в системе фильтрами.
Если путь или имя файла неизвестны, можно выбрать рисунок с помощью построителя рисунков, который вызывается нажатием кнопки построителя в конце строки Рисунок (Picture). В открывшемся окне Выбор рисунка (Insert Picture) откроем папку, в которой хранится файл с нужным рисунком, и выберем этот файл. Предоставляемая построителем возможность просматривать рисунки значительно облегчает процесс поиска. По умолчанию тип рисунка определен как - Внедренный. Если изменить это свойство на Связанный, то рисунок в форме будет соответствовать содержимому связанного файла. Выше приведена кнопочная форма, в которую рисунок вставлен указанным способом (см. рис. 7.72).
Конструирование кнопочной формы
Главная и подчиненные ей кнопочные формы могут быть созданы пользователем самостоятельно в режиме конструктора. В этом режиме может быть создана панель управления приложением нестандартного вида.
Для создания кнопочной формы необходимо в окне базы данных на вкладе Формы (Forms) нажать кнопку Создать (New). В окне Новая форма (New Form) выбрать Конструктор (Design). При этом не должен указываться источник данных. После нажатия кнопки ОК открывается форма в режиме конструктора. В этой форме можно создать кнопки для вызова кнопочных форм или выполнения любых объектов приложения. Кнопочная форма может быть сохранена под любым именем и в любой момент отредактирована в режиме конструктора. Таким образам могут быть созданы все необходимые кнопочные формы приложения. Каждая созданная кнопочная форма будет являтся отдельным объектом и, в отличие от форм, созданных диспетчером кнопочных форм, будет представлена в списке форм в окне базы данных.
Пользователь имеет возможность создать кнопку самостоятельно или с помощью мастера. Мастера значительно ускоряет процесс построения кнопки и связывания ее с нужными действиями, автоматически выполняя всю необходимую работу. Мастер ведет диалог с пользователем и на основе его ответов создает кнопку. Технология создания кнопок описана в главе 4.
Мастер позволяет создавать кнопки более 30 типов. Например, кнопки для открытия формы, страницы, выполнения запроса, макроса, выхода из приложения или выполнения других действий. Открытие кнопочной формы ничем не отличается от открытия обычной формы.
Мастер кнопок Access создает процедуру обработки событий на языке Visual Basic. Эта процедура связывается с событием "Нажатие кнопки" (On Click) и выполняет выбранное действие.
Пользователь имеет возможность открыть процедуру, ознакомится с программой и при необходимости внести в программу изменения. Для открытия процедуры обработки события надо в режиме конструктора вызвать контекстно-зависимое меню кнопки и выбрать команду Обработка событий (Build Event…).
Например, если в форме FORM_PREPOD создана кнопка для открытия формы DVA, то процедура, связанная с кнопкой, будет иметь вид, представленный на рис. 7.74.
Рис. 7.74. Процедура открытия формы DVA, созданная мастером кнопок.
Запуск Access с открытием приложения пользователя
Если в параметрах запуска установлена ссылка на кнопочную форму, то эта форма открывается автоматически при открытии базы данных. Если на рабочем столе Windows создать ярлык для запуска Access с автоматическим открытием базы данных, то пользователю, для того чтобы сразу попасть в среду своего приложения, достаточно будет дважды щелкнуть на этом ярлыке мышью.
Для запуска Access с автоматическим открытием базы данных создать ярлык для Access или ярлык для базы данных.
Создание ярлыка для Access. Нажмем правую кнопку мыши на кнопке Пуск панели задач Windows. Выберем команду Проводник. Откроем папку, в которой хранится Access. установим курсор на значок программы Msaccess.exe. нажмем правую кнопку мыши и в контекстном меню выберем команду Создать ярлык. Ярлык будет создан в той же папке, где находится программа Msaccess.exe.
Зададим в созданном ярлыке свойства, определяющие открытие базы данных. Щелкнув правой кнопкой мыши на выделенной строке ярлыка, откроем контекстное меню и выберем команду Свойства.
В окне свойств выберем вкладку Ярлык, установим курсор в поле Объект и в конце командной строки добавим имя открываемой базы данных, заключив его в кавычки. Напомним, что при этом указывается полный путь к файлу базы данных.
Новый ярлык можно разместить на рабочем столе или добавить в главное меню Windows, просто перетащив ярлык на рабочий стол или в главное меню. Созданный на рабочем столе ярлык для запуска Access представлен на рис. 7.75.
Рис. 7.75. Ярлыки запуска Access
При запуске приложения с помощью ярлыка можно поменять заставку Access на любой точечный рисунок .gif, если сохранить его в той же папке, где размещен файл базы данных, под тем же именем, что и база данных.
Создание ярлыка для базы данных. Другим, еще более простым способом запуска Access с открытием базы данных, является создание ярлыка для базы данных.
Откроем папку, в которой хранится файл базы данных. Установим курсор на значок файла базы данных, нажмем правую кнопку мыши и в контекстном меню выберем команду Создать ярлык. Перетащим созданный ярлык на рабочий стол. Созданный на рабочем столе ярлык для базы данных "Учебный процесс" представлен на рис. 7.75.
Создание ярлыка для объекта базы данных. Возможно создание ярлыка и для отдельного объекта базы данных, в том числе и для кнопочной формы, управляющей приложением. Такой ярлык позволяет запустить Access, открыть в нем базу данных и кнопочную форму.
Для создания ярлыка достаточно перетащить объект из окна базы данных на рабочий стол. Созданный на рабочем столе ярлык для кнопочной формы базы данных "Учебный процесс" представлен на рис. 7.75.