ЛАБОРАТОРНАЯ РАБОТА №1 Связывание и внедрение объектов

advertisement
3
ЛАБОРАТОРНАЯ РАБОТА №1
Связывание и внедрение объектов (OLE)
Цель работы:
Приобрести навыки использования технологии OLE (создания составных документов). Изучить теоретический материал данной работы.
Краткие теоретические сведения
В операционной системе Windows реализована технология связи приложений, которая обеспечивает гибкую интеграцию специализированных программных пакетов, таких как текстовые процессоры, электронные таблицы,
базы данных, в единую систему. Эта технология дает возможность каждому из них расширять свои функциональные возможности. Она называется
протоколом связывания и внедрения объектов OLE (от англ. Object Linking
and Embedding).
OLE ориентирован на программы работы с документами и позволяет
создавать составные документы, т.е. документы, состоящие из разнородной
информации (текста, графики, электронных таблиц, баз данных). При этом
сохраняется возможность редактирования этой информации с использованием функций тех программ, где эта информация была создана.
Ниже приведен перечень терминов, используемых при описании технологий связывания и внедрения объектов.
Объект OLE – данные, перемещаемые из одного приложения в другое с
сохранением исходного формата. Объекты можно создавать из любых данных, если только создавшее их приложение поддерживает связывание и
внедрение объектов. В этом заключается основная разница между объектами и вырезанием и вставкой.
Клиент OLE – приложение, которое содержит объект. Например, если
поместить электронную таблицу в документ текстового редактора, то этот
редактор становится клиентом.
Сервер OLE – приложение, которое клиент вызывает для работы с объектом. Для редактирования объекта клиент должен вызывать исходное приложение. В результате имеем два приложения, совместно работающие над
созданием одного составного документа.
Составной документ – документ, содержащий один или несколько объектов. Любой документ, содержащий связанный или внедренный объект,
можно считать составным.
Контейнер – объект, содержащий другие объекты.
PDF created with FinePrint pdfFactory trial version www.pdffactory.com
4
Внедрение – копирование объекта из одного приложения в другое. Этот
способ называется внедрением, потому что Windows встраивает дополнительную информацию об объекте (а именно, какой программой он был создан и как ее вызвать, когда придет время редактировать этот объект). Внедренный объект хранит свою информацию непосредственно внутри составного документа. Внедренный объект не связан с исходным файлом.
При связывании объект отображается в составном документе, но его
информация хранится в исходном файле. В составном документе фактически создается указатель на этот файл. Поэтому все изменения в исходном
файле будут автоматически отображаться в составном документе.
Связывание следует применять в тех случаях, если в документ необходимо включить независимо вводимую информацию, такую, как данные,
собранные различными отделами, а также, когда один и те же блок данных
используется сразу в нескольких документах. Связывание обеспечивает
оперативное обновление информации в составных документах, а также
может помочь минимизировать размер файла составного документа.
Внедрение следует применять в том случае, если требуется распространение документа. При любых перемещениях составного документа внедренные данные, в отличие от связанных, будут перемещаться вместе с ним.
Клиенты и серверы
Каждое приложение, поддерживающее технологию OLE, предлагает одну или несколько служб, что влияет на метод использования приложения.
Кроме того, ограниченность поддержки OLE снижает ценность приложения, поскольку оно становится малопригодным для создания окончательно
оформленного документа.
Например, редактор Paint не может выступать в качестве клиента. Это
означает, что при помещении в документ текста, он преобразуется в графический элемент и станет частью графического изображения. При этом текст
уже не будет объектом OLE, который можно обрабатывать текстовым редактором.
Если приложение предполагается использовать в качестве центрального
приложения проекта, желательно, чтобы оно полностью поддерживало
OLE.
Основные функции OLE
Технология OLE впервые была представлена в Windows 3.х (OLE1). Она
предоставила основной набор функций для связывания и внедрения объектов. К настоящему времени функциональность OLE существенно увеличилась (OLE2).
5
6
• Копирование и вставка. Существует несколько способов помещения
объектов в составной документ:
− Выделить объект в окне сервера и выбрать команду Правка/Копировать. Перейти в окно клиента и выбрать команду
Правка/Специальная вставка и указать способ вставки (внедрить или связать).
− Захватить объект левой кнопкой мыши и перенести его в окно
клиента. В этом случае объект будет внедрен. Некоторые приложения поддерживают функцию перетаскивания объекта правой кнопкой мыши. Необходимо захватить объект правой кнопкой мыши и перенести его в окно клиента. В появившемся меню
объекта выбрать способ вставки объекта.
− Предыдущие два способа требуют одновременного запуска двух
программ. Если требуется вставить содержимое какого-либо
файла целиком, а не его часть, то эффективнее использовать команду Вставка/Объект…, выбрать вкладку "создание из файла", найти соответствующий файл и указать способ вставки.
• Редактирование. OLE позволяет внедренный объект редактировать
как в окне программы-сервера (меню объекта/объект…/открыть), так и не
выходя из программы-клиента, при этом клиент заменяет панель инструментов и структуру меню на те, которые присущи серверу (двойной щелчок
левой кнопкой мыши на объекте или меню объекта/объект…/изменить).
Связанный объект можно редактировать только в окне сервера.
• Вложенные объекты: ОLE позволяет помещать объекты в документ-контейнер, в свою очередь вставленный объект также может выступать в роли контейнера. В ОLE2 степень вложенности контейнеров не ограничена.
• Независимость связей от места расположения объекта: OLE2 позволяет создавать связи с документами, даже если они не расположены на локальном диске. Это реализуется на базе механизма упрощенного удаленного
вызова процедур (LRPC).
• Адаптируемые связи. Если, используя OLE1, переместить файлы,
свзязанные с составным документом, то все связи нарушатся, т.к. эта версия
OLE сохраняет полный путь к связанным данным. OLE2 сохраняет относительное расположение связанных файлов. Это дает возможность перемещать связанные файлы, расположенные в одной папке, без нарушения связей.
• Автоматизация OLE. Позволяет клиенту посылать серверу команды, косвенно изменяющие содержимое объекта. Дает возможность работать
с сервером без создания видимого экземпляра этого приложения. Автомати-
зация OLE является частью языка программирования Visual Basic для приложений (VBA)
PDF created with FinePrint pdfFactory trial version www.pdffactory.com
Ярлыки
В Windows существует еще один уникальный способ использования
OLE. Любой созданный ярлык является формой OLE, поскольку он представляет собой связь с некоторым другим объектом. В отличие от приложения, которое для хранения всех связей создает составной документ, Windows вынуждена хранить эту информацию на диске. Для этого служат ярлыки (файлы с расширением LNK). В конечном итоге диск является тем
самым контейнером, в котором Windows хранит необходимую ей информацию.
Порядок выполнения
1. Создайте папки "Проектный институт" и "Заказчик". В папке "Проектный институт" создайте три папки "Главный инженер", "Технологический отдел", "Экономический отдел", " Строительный отдел". В этих папках
создайте соответственно файлы проект1.doc, проект1.xls, проект1.xls, проект1.bmp.
2. В файле технологического отдела создайте таблицу с колонками
Оборудование|Количество. Произвольно заполните несколько строк.
3. В файле экономического отдела создайте таблицу с колонками Оборудование|Цена. По таблице постройте диаграмму.
4. В документе строительного отдела нарисуйте эскиз цеха.
5. В файле главного инженера создайте разными способами объекты
связанные с созданными файлами. Каждый объект расположите под названиями соответствующих отделов. Закройте файл.
6. Внесите изменения в файлы различных отделов. Сохраните изменения.
7. Войдите в файл главного инженера. Просмотрите обновленные объекты. Если изменений не наблюдается, выделите соответствующий объект и
выполните команду "Правка/Связи". Нажмите кнопку "Обновить".
8. От лица главного инженера внесите в объекты возможные замечания.
9. Отделы учитывают замечания и сохраняют изменения.
10. В папку "Проектный институт" поместите графический документ с
условным изображением логотипа института "Логотип.bmp".
11. В документы всех отделов поместите связанный с этим файлом объект.
12. Измените файл Логотип.bmp. Сохраните изменения.
13. В документах отделов обновите связь с этим файлом.
7
8
14. В папке "Заказчик" создайте документ "Проект.doc" Поместите в него
аналогичные созданным внедренные объекты. Сохраните документ.
15. Сравните размеры файлов составных документов из папок "Главный
инженер" и "Заказчик".
ЛАБОРАТОРНАЯ РАБОТА №2
Контрольные вопросы.
1. Для чего предназначена технология OLE ?
2. Что такое объект OLE ?
3. Перечислите способы создания объектов OLE
4. Какие из приложений Word, Exel, Paint, Equation могут выступать в
роли сервера, какие в роли клиента? Какие из них можно использовать в
качестве центрального приложения проекта?
5. В каких случаях целесообразно применять связывание объектов, а в
каких внедрение?
Создание базы данных и объектов типа “Таблица”
в среде MS Access. Определение связей между таблицами
Цель работы:
Изучение процесса создания базы данных и объектов типа “Таблица” с
помощью Конструктора и с помощью Мастера, освоение методов задания
свойств полей таблицы и манипуляций с ними, заполнение таблицы данными и редактирование; изучение способов экспорта/импорта данных из других БД, из БД иной архитектуры, из текстовых файлов; изучение стандартной панели инструментов для окна “Схема данных”, освоение способов определения связей между таблицами.
Краткие теоретические сведения
Таблицы
MS Access поддерживает реляционную модель данных, т.е. база данных
состоит из множества взаимосвязанных отношений, каждому отношению
соответствует отдельная таблица.
Таблицы состоят из строк и столбцов. Столбцы таблицы отражают общие свойства или характеристики объектов реального мира, которые моделируются с использованием данной таблицы. Для каждого свойства пользователь выделяет один столбец. Строки таблицы соответствуют различным
экземплярам реальных объектов и называются записями.
Желательно для каждой таблицы определить первичный ключ – столбец
или набор столбцов, однозначно определяющих строку таблицы.
Каждая таблица имеет свойства, значения которых определяют ее вид и
поведение.
Создание таблицы
Прежде чем создать таблицу, необходимо открыть базу данных, в которой MS Access будет хранить эту таблицу. Затем в окне базы данных следует выбрать закладку “ТАБЛИЦА”, нажать кнопку "Создать" и в открывшемся окне диалога выбрать необходимый режим создания таблицы: Мастер или Конструктор.
MS Access предлагает большое количество таблиц-примеров, содержащих данные из различных областей. В списке “Образцы полей” появится
список полей данных, которые можно выделить и поместить в список “Поля
PDF created with FinePrint pdfFactory trial version www.pdffactory.com
9
10
новой таблицы”. Если имена полей недостаточно информативны, их можно
изменить.
Далее в режиме Мастер MS Access предлагает установить первичный
ключ.
Для изменения структуры таблицы необходимо воспользоваться режимом Конструктор. Поля таблицы расположены друг под другом. Для каждого поля задается имя, тип и описание. Поле первичного ключа таблицы,
как правило, может иметь тип данных "Счетчик". Этот тип данных гарантирует, что во время ввода данных MS Access автоматически нумерует строки
таблицы в возрастающей последовательности.
В режиме Конструктора можно изменить имеющиеся поля и добавить
новые. Если таблица уже содержит данные, то при изменении структуры
таблицы они теряются только в исключительных случаях. MS Access предупреждает об этом соответствующим сообщением.
В именах полей запрещено использовать символы ‘!’ , ’.’ , ’[’ , ’]’. Максимальная длина имени 64 символа. Не рекомендуется использовать в именах полей пробелы, т.к. в дальнейшем могут некорректно выполняться запросы.
В качестве типа данных поля можно использовать следующие стандартные типы: числовой, текстовый, счетчик, поле MEMO, денежный, логический, дата/время, поле объекта OLE.
Для каждого поля можно ввести произвольный комментарий, относящийся к полю данных. Типичным комментарием является описание назначения поля.
Для каждого поля можно задать дополнительные характеристики. Например, для текстовых полей можно определить размер поля, а для числового определить длину разрядной сетки и количество разрядов после запятой.
При создании таблиц с помощью Конструктора MS Access автоматически задает первичный ключ. Чтобы определить в качестве первичного ключа иной набор полей, следует выделить соответствующие поля и нажать
пиктограмму “ОПРЕДЕЛИТЬ КЛЮЧ” на панели инструментов. Во время
ввода данных в поля, определенные в качестве первичного ключа, MS Access автоматически следит за тем, чтобы вводились только уникальные значения. МЕМО-поля и поля объекта OLE не могут быть первичными ключами.
Таблица 1
Описание
Текст, максимальная длина которого равняется 255
символам или определяется значением свойства “Размер поля”
Поле МЕМО
Текст, максимальная длина которого равняется
64000 байтам. Поля этого типа не могут быть индексированными
Числовой
Любые числа. Для получения более подробных
сведений смотрите описание свойства “Размер поля”
Дата/время
Даты и время, относящиеся к годам с 100 по 9999,
включительно
Денежный
Числа, хранящиеся с точностью до 15 знаков в целой и до 4 знаков в дробной части
Счетчик
Число, автоматически увеличиваемое при добавлении в таблицу каждой новой записи. Поля этого типа
не подлежат изменению
Логический
Логические значения, а также поля, которые могут
содержать одно из двух возможных значений. Поля
этого типа не могут быть индексированными
Объект (например, электронная таблица Microsoft
Поле объекта
Excel или рисунок Microsoft Draw), созданный другим
OLE
приложением. Максимальный размер – примерно один
гигабайт. Поля этого типа не могут быть индексированными
Для каждого поля таблицы необходимо обязательно задать тип данных.
В каждом поле могут храниться данные только одного типа. Изменение
типа поля после ввода данных в таблицу может привести к потере данных.
Типы данных
Для каждого столбца создаваемой таблицы определяется тип данных,
хранящихся в поле таблицы. Допустимы следующие значения свойства
“Тип данных” (табл. 1).
PDF created with FinePrint pdfFactory trial version www.pdffactory.com
Значение
Текстовый
Свойство “Размер поля”
Задает максимальный размер данных, которые могут быть помещены в
данное поле. Это свойство может быть определено только в бланке свойств
поля. Рекомендуется использовать как можно меньшее значение свойства
“Размер поля”, поскольку обработка данных меньшего размера выполняется
быстрее и требует меньше памяти.
Невозможно отменить изменения в макете таблицы после его сохранения в режиме Конструктора.
11
12
Свойство “Пустые строки”
Область применения – поля таблиц (текстовые и МЕМО). Указывает,
можно ли вводить в данное поле строки нулевой длины (“”). Допустимы
следующие значения свойства “Пустые строки” (табл. 2).
Таблица 2
Значение
Описание
Да
В данное поле можно вводить строки нулевой длины
Нет
В данное поле нельзя вводить строки нулевой длины
(используется по умолчанию)
Свойство “Пропуск пустых полей”
Указывает, следует ли включать в индекс поля, содержащие пустые
(Null) значения.
Выполнение поиска в определенном поле таблицы и сортировку записей
по этому полю можно ускорить, создав индекс для этого поля. Если индексированное поле может содержать пустые (Null) значения, то можно установить значение “Да” свойства объекта типа Index “Пропуск пустых полей”,
тем самым уменьшив объем индекса.
Для того чтобы ввести в поле строку нулевой длины, введите две кавычки(“”).
Значения свойств “Пустые строки” и “Обязательное поле” можно использовать для различения несуществующих данных (хранящихся в виде
строк нулевой длины) и данных, которые существуют, но неизвестны (хранящихся в виде пустых (Null) значений). Например, база данных может содержать сведения о клиентах, у которых нет факса. Если для поля “Факс”
свойство “Пустые строки” имеет значение “Да”, свойство “Обязательное
поле” имеет значение “Нет”, а значение свойства “Значение по умолчанию”
оставлено пустым, то оператор может ввести две кавычки, чтобы указать,
что у данного клиента нет факса. Если же поле “Факс” оставлено пустым
(номер факса не был введен вообще или был удален), значит, возможно, у
данного клиента есть факс, однако его номер неизвестен.
Свойства “Пустые строки” и “Обязательное поле” не зависят друг от
друга. Свойство “Обязательное поле” всего лишь указывает, можно ли вводить в данное поле пустые (Null) значения. Если свойство “Пустые строки”
имеет значение “Да”, значит, в данное поле можно вводить строки нулевой
длины, независимо от значения свойства “Обязательное поле”.
Свойство “Подпись поля” (Caption)
Указывает текст, который отображается в связанной с полем подписи и
используется в качестве заголовка столбца в режиме таблицы.
Длина подписи поля, формы или кнопки может достигать 255 символов.
Подпись поля можно определить в окне конструктора таблиц или в окне
запроса (в списке “Свойства поля”).
Обычно подписи используются для отображения полезных сведений.
Если подпись связанного поля не определена, то в качестве ее используется
имя базового поля.
PDF created with FinePrint pdfFactory trial version www.pdffactory.com
Свойство “Индексированное поле”
Определяет индекс по одному полю. Допустимы следующие значения
свойства “Индексированное поле” (табл. 3).
Таблица 3
Значение
Описание
Нет
Не создает индекс по данному полю
(используется по умолчанию)
Да (Допускаются совпадения)
Создает индекс по данному полю
Да (Совпадения не допускаСоздает уникальный индекс по данются)
ному полю
Это свойство можно определить в бланке свойств в окне конструктора
таблиц (в списке “Свойства поля”). Кроме того, можно выбрать команду
Индексы в меню ВИД или нажать кнопку “Индексы” на панели инструментов. На экране появится окно “Индексы”. После добавления индекса по одному полю в окно “Индексы” свойство “Индексированное поле” автоматически примет значение “Да”.
Используйте свойство “Индексированное поле” для ускорения выполнения поиска и сортировки записей по одному полю таблицы. Индексированное поле может содержать как уникальные, так и повторяющиеся значения.
Пользователь может создать сколько угодно индексов. Индексы создаются
при сохранении макета таблицы и автоматически обновляются при вводе и
изменении записей. Пользователь может в любое время добавить новые или
удалить ненужные индексы в окне конструктора таблиц. Если ключ таблицы состоит из одного поля, то MS Access автоматически устанавливает значение “Да (Совпадения не допускаются)” свойства “Индексированное поле”
для данного поля.
Однако индексы замедляют изменение, ввод и удаление данных, поэтому не рекомендуется создавать избыточные индексы.
Примечание: МЕМО, логические и OLE-поля не могут быть индексированными. Для создания составных индексов следует использовать окно
“Индексы”.
13
14
Связывание таблиц
Для реляционных СУБД данные разных категорий хранятся в разных
таблицах. Это позволяет исключить избыточность информации. Различают
несколько типов реляционной связи.
На практике наиболее часто встречается связь “один-ко-многим” (1:М).
При таком типе связи каждой записи главной таблицы могут быть поставлены в соответствие одна или несколько записей так называемой подчиненной таблицы.
Для создания связи необходимо определить первичный ключ как для
главной, так и для подчиненной таблиц. Определение первичного ключа для
подчиненной таблицы хотя и не является обязательным, но значительно
увеличивает скорость работы. Для подчиненной таблицы надо определить
поле вторичного ключа, тип данных и размер, которые совпадают с полем
первичного ключа главной таблицы. Вторичные ключи отличаются от первичных тем, что для них допускаются наличие одинаковых значений полей.
MS Access автоматически следит за обеспечением целостности данных.
Если редактировать запись в подчиненной таблице, то эта запись может
быть сохранена лишь в том случае, если значение связующего поля присутствует в главной таблице. При редактировании главной таблицы можно удалить запись лишь в том случае, если эта запись не связана с записями
подчиненной таблицы.
Таблицы связываются в режиме формирования схемы БД, при этом для
установления связи 1 : М необходимо установить мышь на первичный ключ
главной таблицы и потом протащить линию связи до подчиненной таблицы.
Характеристики связи задаются дополнительно.
в поле "Имя файла" введите вашу фамилию и нажмите кнопку "Создать".
После этого откроется окно с пустой базой данных (рис. 2.2), содержащее
вкладки: "Таблицы", "Запросы", "Формы", "Отчеты", "Макросы",
"Модули".
2. Создать новую
таблицу. Для этого
нужно открыть вкладку "Таблицы". Для
создания новой таблицы нужно нажать
кнопку "Создать". В
открывшемся диалоговом окне (рис. 2.3)
выберите из списка
режим
"Конструктор" и нажмите кнопку "OK". При этом
откроется окно создания таблицы в режиме
конструктора
(рис.
Рис. 2.2. Окно новой базы данных
2.4).
Порядок выполнения работы
Рис. 2.1. Создание новой базы данных.
1. Создать новую
базу данных. Для
этого нужно при
открытии программы Microsoft Access
выбрать
команду
"Новая базы данных" в панели "Создание базы данных"
или выполнить команду
меню
"Файл/Создать". В
открывшемся диалоговом окне (рис. 2.1)
PDF created with FinePrint pdfFactory trial version www.pdffactory.com
3. Описать поля таблицы. Для каждого поля вашей таблицы нужно указать имя и тип данных. Для большей информативности таблицы можно ввести описание полей. Тип данных для поля таблицы нужно выбирать из комбинированного списка.
Рис. 2.3. Диалоговое окно
создания таблицы.
Рис. 2.4. Создание таблицы
в режиме конструктора.
4. После ввода всех полей таблицы необходимо определить ключевое поле таблицы. Для этого нужно выделить поле, которое должно быть ключевым и нажать кнопку с изображением ключа на стандартной панели инструментов или щелкнуть на нужном поле правой клавишей мыши и в кон-
15
16
текстном меню выбрать команду "Ключевое поле". При этом слева от
имени поля появится изображение ключа.
5. Сохранить таблицу. Для этого нужно закрыть окно конструктора,
воспользовавшись кнопкой закрытия окна. При этом появится диалоговое
окно Сохранение, в котором нужно ввести имя таблицы и нажать кнопку
"ОК".
6. Повторить действия, описанные в п. 2-5 для всех ваших таблиц.
7. Построить схему данных, определяющую отношения между вашими
таблицами. Для этого нужно выполнить команду СервисàСхема дан-
1. Создание базы данных. В меню Файл выберите команду Создать и из
списка шаблонов на закладке Общие выберите шаблон «База данных». Сохраняем создаваемую БД под именем Абитуриент.mdb.
2. С помощью конструктора создайте следующие таблицы.
ных(кнопка
). Если связь определяется впервые в базе данных, то Access
откроет пустое окно Схема данных, а затем выведет на экран окно диалога
Добавление таблицы. В этом окне необходимо выделить нужные таблицы и
нажать кнопку Добавить. Чтобы установить связь между таблицами, надо
выделить ключевое поле в одной таблице (щелкнуть левой кнопкой «мыши»), перетащить и опустить его на связываемое поле другой таблицы
8. Выполнить подстановку ключевых полей в связанных таблицах.
9. Ввести в каждую таблицу не менее пяти записей, заполнив каждое
поле.
10. Закрыть базу данных и выйти из программы Microsoft Access. Скопировать базу данных на свою дискету.
Задание к лабораторной работе
Создать базу данных, указанную в вашем варианте задания, в MS Access
(определить, сколько и какие таблицы должна содержать БД). При создании
таблиц использовать метод построения таблиц с помощью Мастера и с помощью Конструктора. При создании таблиц учесть все ограничения, которые заданы в постановке задач. Предусмотреть необходимые связи между
таблицами, определить все поля данных (атрибуты или столбцы) таблицы.
Задать схему БД. Установить требуемые связи и создать требуемую схему
БД. Применить необходимые методы поддержки целостности при описании
связей. Выполнить подстановку ключевых полей. Ввести в каждую из них
не менее пяти записей.
Пример выполнения задания
Рассмотрим создание информационной системы "Абитуриент", в которой решались бы следующие задачи:
• ввод, хранение и поиск информации об абитуриентах;
• регистрация основных данных о вузах, предпочитаемых абитуриентами;
• ведение учета оплаты абитуриентами подготовительных курсов;
• отслеживание результатов поступления и посещения занятий после поступления.
PDF created with FinePrint pdfFactory trial version www.pdffactory.com
Таблица: тАбитуриенты
Имя
Тип
КодАб
Счетчик
Фамилия
Текстовый
Имя
Текстовый
Отчество
Текстовый
Паспорт
Текстовый
Индекс
Длинное целое
Город
Текстовый
Адрес
Текстовый
Средний балл
Одинарное с плавающей
Фото
Поле объекта OLE
Примечания
Поле МЕМО
Размер
4
50
50
1
50
4
50
50
4
-
Таблица: тАттестат
Имя
Тип
Русский
Длинное целое
Математика
Длинное целое
Физика
Длинное целое
КодАб
Длинное целое
Размер
4
4
4
4
Таблица: тВУЗы
Имя
КодВУЗа
НазваниеВУЗа
Индекс
Город
Улица
Телефон
Рейтинг
Сочинение
Математика
Физика
ПроцПринятых
Проверка
Дата
Размер
4
50
4
50
50
50
4
4
4
4
2
1
8
Тип
Счетчик
Текстовый
Длинное целое
Текстовый
Текстовый
Текстовый
Длинное целое
Одинарное с плавающей
Длинное целое
Длинное целое
Целое
Логический
Дата/время
Таблица: тОплатаОбучения
Имя
Тип
КодОплаты
Счетчик
КодАб
Длинное целое
ДатаОплаты
Дата/время
Размер
4
4
8
17
СуммаОплаты
Денежный
Таблица: тСвязьАбВУЗ
Имя
Тип
КодАб
Длинное целое
КодВУЗа
Длинное целое
СтатусПоступления Логический
СтатусПосещения
Логический
18
8
Размер
4
4
1
1
3. Создаем схему данных, представленную на рис. 2.5.
Рис. 2.6. Вкладка Подстановка
Варианты заданий
Рис. 2.5. Схема данных
4. Выполним подстановку поля КодАб из таблицы тАбитуриент в таблицы тСвязьАбВУЗ, тОплатаОбучения, тАттестат. Например, открываем таблицу тАттестат в режиме конструктора, выделяем поле КодАб и,
перейдя на вкладку Подстановка, указываем свойства поля, показанные на
рис. 2.6.
Аналогично выполняем подстановку поля КодВУЗа из таблицы тВУЗы в
таблицу тСвязьАбВУЗы.
5. Заполняем таблицы данными, введя в каждую из них не менее пяти
строк. Например, первые две строки таблицы тАбитуриенты.
КодАб Фамилия Имя Отчес- Паспорт Индекс Город Адрес Средний Фото Приме
тво
балл
чания
1 Иванов
Иван И
V-АБ
308000 Белгород
4,60
2 Петров
… …
Петр П
VI-КА
…
…
…
309040 Ст.Оскол
… …
4,30
…
… …
…
PDF created with FinePrint pdfFactory trial version www.pdffactory.com
1. Информационная система "Библиотека" (типовое)
Разработать систему, помогающую обслуживать библиотеку. Система
должна предусматривать режимы ведения системного каталога, отражающего перечень областей знаний, по которым имеются книги в библиотеке.
Внутри библиотеки области знаний в систематическом каталоге могут
иметь уникальный внутренний номер и полное наименование. Каждая книга
может содержать сведения из нескольких областей знаний. Каждая книга в
библиотеке может присутствовать в нескольких экземплярах.
В библиотеке ведется картотека читателей. На каждого читателя в картотеку заносятся следующие сведения: фамилия, имя , отчество, домашний
адрес, телефон (будем считать, что у нас два телефона - рабочий и домашний) и дата рождения. Каждому читателю присваивается уникальный номер
читательского билета. Каждый читатель может одновременно держать на
руках не более 5 книг. Читатель не должен одновременно держать более
одного экземпляра книги одного названия.
Каждая книга, хранящаяся в библиотеке, характеризуется следующими
параметрами: уникальный шифр, название, фамилия автора (может отсутствовать), фамилии соавторов (могут отсутствовать), место издания (город),
издательство, год издания, количество страниц, количество экземпляров
книги в библиотеке.
Каждая книга в библиотеке может присутствовать в нескольких экземплярах. Каждый экземпляр имеет следующие характеристики: уникальный
инвентарный номер, шифр книги, который совпадает с уникальным шифром из описания книг, присутствие в библиотеке.
19
20
В случае отсутствия данного экземпляра книги должны быть записаны
следующие сведения: номер билета читателя, который взял книгу, дата выдачи книги, дата возврата.
Каждый экземпляр книги может находиться на руках только у одного
читателя.
Предусмотреть следующие ограничения на информацию в системе:
1. Не может быть информации о соавторах, если нет информации об авторе. Книга может не иметь ни автора, ни соавтора.
2. В библиотеке должны быть записаны читатели не моложе 17 лет.
3. В библиотеке присутствуют книги, изданные начиная с 1960 по текущий год.
4. Каждый читатель может держать на руках не более 5 книг.
5. Каждый читатель при регистрации в библиотеке должен дать телефон
для связи, он может быть рабочим или домашним.
6. Каждая область знаний может содержать ссылки на множество книг, но
каждая книга может относиться к различным областям.
иных составах. Система не привязана к конкретной станции и, тем самым, с
любой станции можно купить билет на любой состав, как следующий через
эту станцию, так и не следующий, но внесённый в систему. Система предусматривает возможность покупки билета на одно и то же место, если пассажир следует с промежуточной станции, а не со станции отправления состава, или до промежуточной станции.
Продажа билетов осуществляется от текущей даты и на 30 дней вперёд,
для чего имеется таблица “Даты отправления составов”.
В системе ведётся картотека купленных билетов. По прохождении времени прибытия состава на станцию назначения билеты, проданные на этот
состав, удаляются из картотеки. Также удаляется и состав из таблицы “Даты
отправления составов”.
На каждый билет в картотеку заносятся следующие сведения: ФИО пассажира, номер состава, номер вагона, номер места, дата отправления состава со станции следования, станция следования пассажира – станция посадки, станция назначения пассажира – конечная станция для пассажира, дата
отправления пассажира, тип вагона (плацкартный, купейный или сидячий),
время отправления пассажира, время следования пассажира, время прибытия пассажира, цена билета.
Каждому билету присваивается уникальный номер, так как на одно место может быть продано несколько билетов для пассажиров, следующих
через непересекающиеся станции. Как только покупается билет, место, указанное в билете, вносится в список занятых мест на всём протяжении станций от станции следования пассажира до станции назначения. Соответственно, с прибытием состава на место назначения удаляются все занятые
места, связанные с этим составом.
Каждое занятое место характеризуется следующими параметрами: номер
билета, название станции, номер состава, номер вагона, номер места, дата
отправления состава со станции следования.
Каждому составу соответствует уникальный номер состава, а также следующие параметры: станция следования состава, станция назначения состава, время отправления состава, время следования состава, время прибытия
состава, дни недели, по которым отправляются составы.
Для обеспечения целостности системы имеется таблица “Станции”, в которой перечислены названия всех станций следования составов. Названия
станций являются уникальными
Предусмотрены следующие ограничения на информацию в системе:
1) В плацкартном вагоне 60 мест. В купейном и сидячем – соответственно 40 и 100.
2) Время прибытия и отправления пассажира, а также тип вагона в билете должны строго соответствовать реальному времени и типу вагона соста-
2. Информационная система “Обеспечение учебного процесса”
Задано расписание занятий групп, в котором указаны следующие параметры: день недели (занятия в субботу не проводятся), номер пары (занятия
только для дневных факультетов, ограничить допустимый номер пары),
фамилия преподавателя (выбирается из специальной таблицы, содержащей
список преподавателей, с указанием их должностей и ученых степеней),
название дисциплины (выбирается из таблицы дисциплин на семестр), тип
занятий (выбирается из допустимого списка типов занятий: лекция, лабораторные работы, упражнения, курсовой проект), номер группы (выбирается
из списка групп, который хранится в отдельной таблице)
По каждой дисциплине определено количество лабораторных работ, которое требуется выполнить в данном семестре, количество домашних заданий по упражнениям и наличие курсового проекта.
В расписании на одной и той же паре в один и тот же день недели у одной группы не может быть нескольких занятий.
В расписание занятий должны быть внесены все запланированные занятия на данный семестр для всех групп.
Для каждого студента ведется электронный журнал, в котором занесены
данные о сдаче студентом всех лабораторных, домашних заданий и курсовиков. При планировании домашних заданий отводить на каждое задание 2
календарных недели.
3. Информационная система "Железнодорожная станция"
Необходимо разработать информационную систему, обслуживающую
пассажиров на предмет покупки билетов и получения информации о тех или
PDF created with FinePrint pdfFactory trial version www.pdffactory.com
21
22
ва, на который продан билет. Цена билета высчитывается как сумма цен
билетов между всеми станциями следования.
3) Через одну станцию может проходить несколько составов, и каждый
состав, естественно, проходит за время следования несколько станций.
4) На одно и то же место может быть куплено несколько билетов, если
станции следования пассажиров, купивших эти билеты, не пересекаются.
5) За один день может отправиться только один состав с одинаковым
номером.
6) Билеты продаются от текущей даты и до 30 дней вперёд.
компьютеры отвечают цеха, в которых была произведена сборка и настройка компьютера. Для постоянных клиентов в Вашей организации предусмотрены скидки.
4. Информационная система "Транспортная компания"
Вы проектируете информационную систему для транспортной компании, которая занимается перевозками грузов внутри страны и имеет контакты с зарубежными компаниями, осуществляющими перевозки за рубежом.
Одной из основных задач, решаемых вашей системой, является составление
расписания движения автотранспорта.
5. Информационная система "Поликлиника"
Вам необходимо построить информационно-справочную систему для
поликлиники. В поликлинике работают участковые врачи и специалисты.
Расписания врачей стабильны и заданы на неделю. В расписании указаны
часы приема и кабинет. В одном кабинете могут работать разные врачи, но
только в разное время. В поликлинике существуют специальные процедурные кабинеты, где заранее расписан допустимый график проведения процедур, в эти кабинеты пациенты должны направляться или записываться самостоятельно. В поликлинике ведется учет предоставленных услуг, каждый
больной имеет право на некоторое число бесплатных услуг, если он имеет
медицинскую страховку. При превышении лимита услуги могут предоставляться за плату.
6. Информационная система "Компьютер"
Ваша организация занимается сборкой и продажей компьютеров. У
Вас имеются несколько сборочных цехов и несколько филиалов по приему
заказов и продаже готовых изделий. Вы продаете как готовые модели по
образцам, так и компьютеры индивидуальной сборки. Изделия поставляются заказчику в основном прямо из сборочных цехов. Однако несколько типовых моделей имеются в каждом филиале по приему заказов. Между филиалами и цехами установлена телекоммуникационная связь. Ваша информационная система предназначена для оформления заказов на изготовление
индивидуальных моделей и учет продажи готовых деталей, Вы не имеете
права принимать заказ, не обеспеченный имеющимися деталями на складе
(в цехе). У Вас должен вестись учет произведенных работ, за конкретные
PDF created with FinePrint pdfFactory trial version www.pdffactory.com
7. Информационная система "Международный автобус"
Ваша фирма занимается продажей билетов на междугородные автобусы,
которые отходят с разных автовокзалов и имеют различные маршруты. Ваша фирма имеет несколько филиалов по продаже билетов, часть из них
расположена прямо на автовокзалах, а часть - в других районах города. Вы
продаете билеты не только на текущие рейсы, но и заранее. У вас существует возможность возврата билетов.
8. Информационная система "Туристическая компания"
Ваша фирма занимается организацией туристического обслуживания. У
Вас имеется несколько постоянных маршрутов, для которых комплектуются
туристические группы. Заранее известны сроки каждого маршрута. Однако
при наборе группы ниже некоторого количества человек Ваша деятельность
становится нерентабельной. Ваши клиенты после заказа и оплаты маршрута
имеют право от него отказаться, но при этом теряют некоторую страховую
сумму.
9. Информационная система "Внебюджетное образование"
Вы занимаетесь организацией внебюджетного образования. У Вас имеется несколько типов краткосрочных курсов, предназначенных для изучения конкретных вопросов, связанных с программным обеспечением персональных компьютеров, и система второго высшего образования. Краткосрочные курсы все имеют одинаковую длительность, система второго высшего образования имеет перечень учебных дисциплин с распределением их
по часам. У Вас имеется некоторый состав ресурсов: учебных классов, лекционных аудиторий и преподавателей. Вам необходимо решать задачу составления расписаний занятий.
10. Информационная система "Промтоварный магазин"
Ваша фирма занимается торговлей промышленными товарами. В вашем
распоряжении имеется один склад и 5 магазинов. Кроме того, организовано
еще несколько выносных торговых мест на 1 человека в ряде чужих магазинов. Каждый магазин или торговая точка может заказывать товары на
складе, однако он несет ответственность за неэффективность заказов – т.е.
возврат непроданного товара или неэффективное использование торгового
места наказывается. Вам необходимо решать задачи учета продаж по всем
магазинам и торговым местам, осуществлять анализ эффективности продаж
товаров и эффективности работы магазинов и отдельных сотрудников.
23
24
11. Информационная система "Программные системы "
Ваша фирма занимается разработкой программных систем. Вы имеете
один офис, но большинство Ваших разработчиков работают дома, сдавая в
определенные сроки свою работу ответственному разработчику – сотруднику формы. Вам необходимо планировать как разработку, так и внедрение и
обслуживание разработанных ранее систем.
17. Информационная система "Апгрейд ПК"
Ваша фирма занимается ремонтом и апгрейдом персональных компьютеров. У вас есть один стационарный цех и несколько приемных пунктов.
В приемных пунктах работают, кроме приемщиков, дежурные мастера, которые могут выполнять срочный ремонт. Вы принимаете заказы, которые
выполняются у вас в фирме стационарно или можете высылать ваших
мастеров к заказчикам для диагностики и устранения неисправностей на
месте. В распоряжении фирмы имеется 2 микроавтобуса, которые могут
забирать аппаратуру и доставлять заказы не место. Заказчики могут
доставлять и забирать технику самостоятельно. За транспортные услуги
взимается дополнительная плата. В одном из приемных пунктов приемщик
дополнительно может выполнять роль транспортного диспетчера.
12. Информационная система "Гостиница"
Ваша фирма владеет гостиницей. Вам необходимо разработать систему,
обеспечивающую выполнение задач учета и планирования загрузки помещений. Ваши клиенты могут заказывать места в гостинице заранее, но не
более, чем за 30 дней. Вы планируете сотрудничество с туристической фирмой по размещению групп туристов.
13. Информационная система "Рекламная компания"
Ваша фирма занимается предоставлением рекламных услуг. Вы имеете
несколько договоров с транспортными агентствами, с метро и с муниципальными органами по установке рекламы на транспорте и на улицах города. У вашей фирмы заключен ряд договоров на эфирное время на радио и
телевидении. В фирме работают несколько агентств, расположенных в разных городах. В каждом городе, кроме стационарного приемного пункта,
работают рекламные агенты, которые имеют права от имени агентства заключать договоры на предоставление рекламных услуг. В фирме работают
дизайнеры, которые непосредственно формируют внешний вид рекламы.
14. Информационная система "Недвижимость"
Ваша фирма занимается операциями с недвижимостью. Вы продаете и
покупаете квартиры, сдаете квартиры и помещения под офисы. Вы занимаетесь обменами жилплощади для заказчиков.
18. Информационная система "Фильмы"
Разработать информационную систему, содержащую сведения о фильмах, показываемых в кинотеатрах города. В городе несколько кинотеатров.
Информация о фильме должна содержать сведения об актерах, исполняющих главные роли, и о режиссере. Система предназначена для оказания
справочных услуг населению.
19. Информационная система "Отдел кадров"
Необходимо разработать информационную систему для отдела кадров
предприятия. Система должна содержать сведения о работниках предприятия. Помимо общих сведений (фамилия, имя, отчество, год рождения и пр.)
должны содержаться сведения о воинской обязанности, воинском звании,
семейном положении, количестве, возрасте и поле детей. Система предназначена для учета кадров предприятия.
15. Информационная система "Типография"
Ваша фирма занимается издательством. В ее владении имеется типография и ряд периодических изданий. В периодических изданиях имеются
возможности размещения рекламы. В издательствах издаются кроме книг и
журналов малотиражные издания типа буклетов.
20. Информационная система "Справочная аптека"
Разработать информационную систему для предоставления справочных
услуг населению. Система должна содержать сведения о наличии и цене
лекарственных препаратов в аптеках города, сведения об аптеке должны
включать в себя адрес, телефон и наименование аптеки. Препараты должны
быть разбиты по группам (болеутоляющие, желудочные, гомеопатические и
т.д.)
16. Информационная система "Провайдер интернет"
Ваша фирма занимается предоставлением провайдерских услуг в рамках
сети Интернет. Она обслуживает клиентов с подключением через модем
как на общий телефонный канал, так же и через выделенную линию. В рамках обслуживания возможно ведение рекламы в Интернет.
21. Информационная система "Каталог видеофильмов"
Разработать автоматизированный каталог видеофильмов. Информация о
фильме должна включать сведения о режиссере, актерах, исполняющих
главные роли, категорию фильма. Система предназначена для подбора
фильмов по режиссеру, актерам или категории.
PDF created with FinePrint pdfFactory trial version www.pdffactory.com
25
22. Информационная система "Бытовая техника"
Разработать автоматизированную информационную систему, содержащую сведения о наличии в магазинах города бытовой техники. Товары
должны быть классифицированы по категориям (пылесосы, кофемолки,
миксеры, кухонные комбайны и пр.). Информация о магазине должна содержать в себе адрес, телефон и наименование. Система предназначена для
поиска товаров по категориям, наименованию, фирме-производителю.
23. Информационная система "Банк"
Разработать автоматизированную информационную систему «Банк» для
хранения информации о вкладах населения как в рублях, так и в валюте.
Каждый вклад имеет номер счета, тип счета, вид вклада, сумму вклада.
Срок хранения и начальный взнос по разным вкладам различен. Также банк
может предоставлять различные кредиты – в рублях и в валюте. Информация о клиенте должна содержать сведения о фамилия, имени, отчестве, паспортные данные, гражданство, индекс, страну проживания, город и адрес.
26
26. Информационная система "Служба занятости"
Разработать информационную систему, обеспечивающую ведение базы
данных по безработным, вакансиям, выплатам, предприятиям. База данных
должна содержать информацию о предприятиях, готовых предоставить рабочее место по специальности или имеющих вакансии, полную информацию о безработном, его предпочтениях, а также дату постановки безработного на учет в службе занятости и пособие, которое будет ему выплачиваться. На каждое предприятие должны храниться следующие данные: наименование, адрес, телефон, руководитель. Информация о безработнх включает в себя Ф.И.О., адрес, телефон, семейное положение, образование, стаж.
В отдельной таблице необходимо хранить размер выплат, дополнительные
выплаты, дата постановки безработного на учет. В справочную информацию входят данные по вакансиям и специальностям.
Контрольные вопросы
24. Информационная система "Страны Европы"
Необходимо создать информационную систему, содержащую сведения о
странах Европы. В базу данных ИС включить следующие пункты: страна,
столица, население, площадь, сведения об экономике, основные экономические показатели. В базе данных должны храниться географические карты
стран Европы. Также необходимо организовать хранение списка важнейших
исторических событий XX века с указанием даты и страны, в которой это
событие произошло.
25. Информационная система "Цементные заводы"
Разработать базу данных по технологическим замерам на цементных заводах для формирования данных о продуктах производства заводов, а также
для расчетов дополнительных значений параметров продуктов. Требуется
организовать хранение следующих категорий технологических замеров на
цементных заводах: газовый анализ, параметры печи, химия сырья, учет
информации по техническим характеристикам цементных заводов. Организовать в системе следующие таблицы: Заводы, содержащую информацию о
цементных заводах (код завода, название, телефон, тип топлива); Печь, содержащую информацию о печах обжига и выполненных замерах (код замера, код завода, количество оборотов, длина печи, диаметр печи, давление
статическое, давление динамическое, дата замера, время замера); ГазовыйАнализ, содержащую информацию о замерах параметров газа (код замера, код
завода, СО2, СО, О2, дата замера, время замера) и ХимияСырья (код сырья,
код завода, название сырья, дата анализа, SiO2, Al2O3, Fe2O3).
PDF created with FinePrint pdfFactory trial version www.pdffactory.com
1. Какие файлы будут соответствовать созданной вами базе данных, их
назначение?
2. Что такое объект типа “Таблица”, как его можно создать, как задать
свойства объекта “Таблица”, отличные от свойств его отдельных полей?
3. Что означает команда экспортирования объекта типа “Таблица”, как она
выполняется, какие таблицы и откуда можно экспортировать?
4. Что означает команда импортирования объекта типа “Таблица”, как она
выполняется, какие таблицы и откуда можно импортировать?
5. Чем отличается команда Присоединить таблицу от команды Экспортимпорт таблиц, как она выполняется и как выглядят в БД присоединенные таблицы, какие свойства таблиц можно менять и какие нельзя для
присоединенных таблиц?
6. Какие свойства необходимо определять при описании полей данных некоторой таблицы?
7. Чем отличается свойство “Подпись” для элемента данных в таблице от
графы “Описание” в конструкторе таблиц, где и как применяются эти
параметры?
8. Как влияют друг на друга свойства “Формат” и “Маска ввода”?
9. Чем отличается свойство “Пустые строки” для символьных и числовых
данных?
10. Что такое “Ключ” для объекта типа “Таблица” и как его можно задать,
если он состоит из одного или нескольких полей таблицы? Может ли
быть задано для таблицы несколько ключей?
27
11. Что такое связи между таблицами, какого типа связи между таблицами
поддерживает MS Access?
12. Как можно задать связи между таблицами и где эти связи будут зафиксированы? Какие изменения можно внести в связи между таблицами?
13. Как можно удалить таблицу из БД в MS Access, всегда ли это допустимо,
если нет, то какие таблицы не могут быть удалены и почему?
14. Что такое основная таблица и подчиненная таблица, как они связаны
друг с другом?
15. Могут ли быть у одной основной таблицы несколько подчиненных? Если могут – приведите примеры, если нет, то почему?
16. Могут ли быть у одной подчиненной таблицы несколько основных, с
ней связанных, если да – приведите примеры, если нет, то аргументируйте свой ответ?
17. Что такое поддержка каскадного удаления и каскадного обновления при
описании связей?
Содержание отчета
1. Титульный лист.
2. Название и цель выполнения работы.
3. Описание своей предметной области и обоснование принятых решений
по таблицам: их перечень, свойства столбцов таблиц и свойства самих
таблиц, типы данных, ограничения.
4. Письменные ответы на заданные вопросы.
28
ЛАБОРАТОРНАЯ РАБОТА №3
Создание запросов в среде MS Access
Цель работы
Изучение процесса проектирования запроса с помощью стандартной панели инструментов окна запроса в режиме Конструктора.
Краткие теоретические сведения
Запросы
Запросы обеспечивают быстрый и эффективный доступ к данным, хранящимся в таблице.
При создании таблицы с помощью MS Access можно заметить, что программа не разрешает использовать вычисляемые поля. Нет также возможности выполнить сортировку не по первичному ключу.
Благодаря запросам, можно выполнить сортировку или вычислить выражения. Например, свести вместе данные из связанных таблиц.
При выполнении запроса MS Access считывает данные из таблиц и отображает результат выполнения в режиме таблицы. При этом следует учитывать, что результат выполнения запроса не сохраняется. Данные всегда хранятся в таблицах. В запросе MS Access хранит только инструкции о том, как
должны быть организованы данные в результате выполнения запроса.
Для некоторых запросов можно внести изменения в результат запроса,
отображаемый в режиме таблицы. Эти изменения отразятся и в исходных
таблицах. На основании запроса можно разработать форму или отчет.
Сортировка записей таблицы
В таблице данные всегда отсортированы по первичному ключу. Чтобы
организовать другой способ сортировки данных, используется запрос. Для
создания такого запроса в окне базы данных следует выбрать пиктограмму
“ТАБЛИЦА” и указать таблицу, которую необходимо отсортировать. Выбор пиктограммы “Новый объект: запрос” (
), расположенной на панели инструментов (или команда Вставка à Запрос), приводит к открытию
диалогового окна для создания нового запроса для указанной в окне базы
данных таблице. В результате выбора пиктограммы в диалоговом окне отображается список всех имен полей исходной таблицы, в начале которого
расположен символ " * ". Отбуксируйте звездочку в бланк запроса QBE.
Она является символом-заменителем всех полей данных. Кроме того, от-
PDF created with FinePrint pdfFactory trial version www.pdffactory.com
29
30
буксируйте в бланк запроса то поле данных, по которому должна быть проведена сортировка.
Для этого поля из списка "Сортировка" выберите способ сортировки.
символа знак вопроса (?). Сформулируйте критерии запроса. Например, если для текстового поля будет задан только критерий "А*", то в результате
выполнения запроса будут отображены только те записи, текстовое поле
которых начинается с буквы "А" (или "а").
Если требуется отыскать комбинацию нескольких значений, необходимо
ввести их в строку "Условие отбора", употребляя в качестве разделителя
логические операторы AND и OR. Кроме обычных операторов сравнения,
MS Access предоставляет три специальных оператора, полезных для отбора
данных: BETWEEN, IN, LIKE.
Выберите пиктограмму “Запуск” (
) и MS Access отобразит на экране
результат запроса, отображаемый в режиме таблицы, данные в котором отсортированы требуемым образом.
Запросы с критериями поиска
Для выборки данных из таблиц по определенному условию в MS Access
используются запросы с критериями поиска. Предварительно задав условие
отбора, результатом выполнения запроса будет набор данных, удовлетворяющих сформированному критерию.
Для составления запроса следует перейти в окно базы данных, выбрать
пиктограмму “ЗАПРОС” и нажать кнопку "Создать", а затем кнопку "Новый
запрос". В следующем окне диалога следует выбрать одну из таблиц БД и
нажать кнопку "Добавить", MS Access поместит в окно запроса список полей указанной таблицы. Теперь можно выбрать одно или несколько полей и
отбуксировать их в бланк запроса QBE (см. рис. 3.1).
Рис. 3.1. Запрос зХорошисты на основе таблицы тАбитуриенты в
режиме конструктора
В строке "Условие отбора" можно ввести теперь критерии выбора. Для
обозначения произвольного количества символов используйте в качестве
символа-заменителя звездочку (*), а для обозначения одного произвольного
PDF created with FinePrint pdfFactory trial version www.pdffactory.com
Запросы с параметрами
Не всегда можно решить на этапе создания запроса, какие именно значения должен отыскивать MS Access, а иногда требуется гибкое условие отбора, которое может изменяться в зависимости от текущей ситуации. Поэтому вместо условия отбора, непосредственно вводимого в бланк QBE,
можно включить в запрос параметр, и в этом случае перед выполнением
запроса MS Access каждый раз будет запрашивать конкретные условия отбора.
Чтобы установить параметр, необходимо ввести в строку "Условие отбора" имя или фразу, заключенную в квадратные скобки ([]). То, что заключено внутри квадратных скобок, MS Access рассматривает как имя параметра. Это имя выводится в диалоговом окне при выполнении запроса, поэтому
разумно в качестве имени параметра использовать содержательную фразу.
В одном запросе можно задать несколько параметров; при этом имя каждого параметра должно быть уникальным и информативным.
По умолчанию MS Access преобразует введенные в запрос параметры в
текстовый тип данных. Однако, так как текстовые поля нельзя сравнивать с
полями дат, тип данных для параметров необходимо установить точно. Для
этого выберите команду Запрос/Параметры из меню, в результате чего MS
Access откроет окно диалога "Параметры запроса". Введите параметр без
квадратных скобок в диалоговое окно и выберите необходимый тип данных.
Теперь для выполнения запроса сначала необходимо ввести значение
параметра, а результат запроса будет содержать только те поля, которые
удовлетворяют заданному значению параметра.
Вычисляемые поля в запросах
Существует возможность задать вычисления над любыми полями таблицы и сделать вычисляемое значение новым полем в наборе записей. Для
этого используется множество встроенных в MS Access функций. Можно
создать поле в запросе с использованием арифметических операций над
полями таблиц, а можно также создать новое поле как результат конкатенации текстовых полей или символьных констант.
31
32
Создание вычисляемого поля осуществляется путем простого ввода выражения для вычисления в пустом столбце бланка запроса QBE. Необходимо всего лишь составить соответствующий запрос с использованием имен
полей. После того как ввод будет завершен, выражение будет иметь следующий вид:
Выражение 1: [Поле1] “оператор” [Поле2]
В квадратные скобки заключаются только имена полей. MS Access автоматически использует "Выражение 1" в качестве имени вычисленного выражения. Это имя можно изменить на более содержательное.
При построении сложных выражений MS Access предлагает использовать утилиту, называемую “Построитель выражений”. Для перехода в “Построитель выражений” необходимо щелкнуть по пустому полю в бланке
После этого отбуксируйте в бланк запроса поля из главной и подчиненной таблицы. Как правило, имеется больше записей, содержащих сведения
об объектах, чем записей об их категориях. Поэтому MS Access отображает
категорию столько раз, сколько это необходимо. Следовательно, если одной
категории соответствует десять различных объектов, категория будет повторена десять раз.
Примечание: Поля главной таблицы при отношении “один-ко-многим”
нельзя изменить в результате запроса, отображаемого в режиме таблицы.
Кроме того, эти поля могут содержать повторяющиеся значения.
Любые запросы на выборку могут быть преобразованы в запросы создания таблицы. В этом случае создается таблица, которая содержит результат
запроса, полученный в данный момент.
QBE, а затем – по кнопке “Построить” (
Перекрестные запросы
MS Access поддерживает специальный тип итоговых запросов, называемый перекрестным запросом. Такой запрос позволяет увидеть вычисляемые
значения в виде перекрестной таблицы, напоминающей электронную таблицу.
Представьте себе таблицу товаров, которая содержит три поля данных:
"Тип", "Поставщик" и "Цена". Для каждой категории товаров требуется определить суммы цен товаров с указанием поставщика.
Поместите в окно Конструктора запроса таблицу "Товары". Затем
включите строку "Групповая операция", выбрав команду Вид/Групповые
операции. После этого отбуксируйте поле данных "Тип" в бланк запроса.
Для этого поля выберите из списка значение "Группировка".
Во второй столбец бланка запроса отбуксируйте поле данных "Поставщик". Для этого столбца также выберите значение "Группировка".
Последним в бланк запроса отбуксируйте поле "Цена". Для этого поля
выберите значение "Sum".
При выполнении запроса его результат отображается в режиме таблицы,
в первом столбце которой будут все типы товаров, во втором – для каждого
типа будут приведены номера поставщиков, а в последнем столбце – суммы
цен товара данного типа и данного поставщика.
Теперь необходимо итоговый запрос преобразовать в перекрестный запрос. Для этого выберите команду Запросà Перекрестный.
Выбор данной команды приводит к замене в бланке запроса строки "Вывод на экран" на новую строку "Перекрестная таблица". Все остальные параметры остаются без изменения. Поле "Тип" исходной таблицы будет использовано в качестве заголовка строк. Поэтому из поля списка "Перекрестная таблица" выберите элемент "Заголовок строк". Для столбца "Поставщик" выберите из списка "Перекрестная таблица" элемент "Заголовок
столбцов".
)панели инструментов.
Итоговые запросы
Итоговые запросы значительно отличаются от обычных. В них можно
использовать два типа полей. Существуют поля, по которым осуществляется группировка данных, и поля, для которых проводятся вычисления. Дополнительно можно включить еще поля для определения условий запроса.
Для того чтобы составить итоговый запрос, находясь в режиме Конструктора запроса, следует выбрать пиктограмму “ГРУППОВЫЕ ОПЕРАЦИИ” (
) или воспользоваться командой ВидàГрупповые операции. В
результате этого в бланке запроса появится строка "Групповая операция".
Затем для соответствующего поля из списка необходимо выбрать функцию
"Группировка".
Многотабличные запросы
Рассмотрев возможности запросов, основанных на одной таблице, легко
организовать просмотр объединенных данных из нескольких связанных
таблиц. Выбор данных из нескольких таблиц особенно полезно использовать при создании форм и отчетов.
Во-первых, откройте окно Конструктора запроса и добавьте таблицы, в
которых содержится необходимая информация. Если ранее с помощью команды Связи была установлена связь между таблицами, то MS Access определит это автоматически. Эта связь будет отображена в виде линии, проведенной между полями таблиц. Если связь между таблицами отсутствует, вы
должны ее установить.
Далее необходимо определить параметры связи. Укажите на соединительную линию и выберите команду Вид/Параметры объединения. В результате откроется диалоговое окно, в котором предлагаются три опции для
определения параметров связи.
PDF created with FinePrint pdfFactory trial version www.pdffactory.com
33
34
Сумму цен товаров необходимо поместить в ячейках перекрестной таблицы. Поэтому для этого поля из списка "Перекрестная таблица" следует
выбрать элемент "Значение".
При выполнении запроса его результат отображается в режиме таблицы,
в которой номера категорий служат в качестве заголовков строк. Кроме этого, для каждого поставщика сумма цен товаров в перекрестной таблице размещена в отдельном столбце.
Примечание: При создании перекрестной таблицы вы можете выбрать
только одно поле в качестве содержимого таблицы и только одно поле в
качестве заголовка столбцов. В качестве заголовков строк можно указать и
несколько полей исходной таблицы.
Запросы на обновление
Запрос на обновление позволяет производить обновление некоторой
хранимой информации, своевременность которой истекла на текущий момент.
Сначала создайте новый запрос выбора и введите критерии для выбора
изменяемых записей. Только в том случае, если результат запроса отвечает
заданным требованиям, следует преобразовать его в запрос замены. Для
этого выберите команду Запросà Обновление. При этом будут выключены
строки "Вывод на экран" и "Сортировка" в бланке запроса. Обе эти строки
не нужны для запроса замены. Вместо них включается новая строка "Обновление". В эту строку следует ввести новые выражения для заменяемых
записей. Обратите внимание, что тип данных выражения должен совпадать
с типом данных поля исходной таблицы.
Запросы на удаление
Все вышеперечисленные запросы относятся к запросам на выборку информации, которые позволяют только выбирать и просматривать данные из
таблиц. Следующие запросы являются запросами действия, позволяющими
модифицировать хранимую информацию.
С помощью запроса на удаление осуществляется удаление определенных данных из таблиц. Прежде чем сконструировать запрос на удаление,
следует подумать, какие записи необходимо удалить. Самым надежным
методом является предварительное создание запроса на выборку.
В режиме Конструктора запроса выберите таблицу, в которой позднее
будет проводиться удаление. Затем определите критерии и посмотрите результат выполнения запроса, отображаемый в режиме таблицы. Быстрое
переключение между режимами конструктора и выполнения обычно осуществляется с помощью одноименных пиктограмм, расположенных на панели
инструментов.
Лишь в том случае, если в результате запроса присутствуют только подлежащие удалению записи, следует преобразовать запрос на выборку в запрос на удаление.
Для этого в строке меню выберите команду ЗапросàУдаление. После
этого MS Access выключает в бланке запроса строки "Сортировка" и "Вывод на экран". Для запросов на удаление эти строки не нужны. Кроме того,
для всех колонок бланка запроса в новой строке "Удаление" отображается
текст "Условие". Однако критерии при этом не изменяются.
Если выполнить запрос выбором пиктограммы “ВЫПОЛНИТЬ”, MS Access не отобразит на экране результат выполнения запроса. Вместо него
появится сообщение о том, сколько записей будет удалено в исходной таблице. Вы можете прервать процесс удаления нажатием кнопки "Отмена".
Однако нажатие OK приводит к безвозвратному удалению записей, удовлетворяющих критериям запроса.
PDF created with FinePrint pdfFactory trial version www.pdffactory.com
Порядок выполнения работы
1. Открыть базу данных, созданную на предыдущей практической работе и
соответствующую вашему варианту задания (варианты заданий приведены в лабораторной работе №1).
2. Спроектировать пять различных запросов на выборку информации по
определенным критериям. Запросы должны быть как однотабличные,
так и многотабличные.
3. Создать запрос с вычисляемым полем.
4. Создать итоговый запрос.
5. Создать два перекрестных запроса.
6. Создать запросы на модификацию данных.
7. Подготовить отчет по работе.
Пример выполнения задания
Для информационной системы "Абитуриент" (постановку задачи см. в
л/р №1) построим ряд запросов.
1. Построим запрос на выборку имен и фамилий тех абитуриентов, которые имеют средний балл от 4 до 5:
7. С помощью следующего запроса выведем фамилии тех абитуриентов,
которые проживают или в Белгороде, или в Москве:
35
36
Петров
Сидоров
300р.
300р.
200р.
100р.
300р.
При этом в качестве Заголовок строк использовалось поле "Фамилия",
Заголовок столбцов – поле "ДатаОплаты" и в качестве Значения (выводимое
в ячейках перекрестной таблицы) поле "СуммаОплаты".
8. Построим многотабличный запрос для вывода списка фамилий абитуриентов и названий тех вузов, в которые они собираются поступать:
9. С помощью следующего запроса выведем фамилии тех абитуриентов,
которые пока не определились с выбором вуза (без предпочтений):
10. Примером создания вычисляемого поля в запросе может служить
следующий запрос, в котором подсчитайте средний балл оценок аттестатов
абитуриентов:
11. Построим итоговый запрос для определения суммы оплаты каждым
абитуриентом за подготовительные курсы в 2001 году:
Контрольные вопросы
1. Что такое запрос и какие типы запросов поддерживает MS Access?
2. Где находится шаблон вывода при конструировании запроса на выборку?
3. Как задать параметры при создании запроса на выборку с параметрами?
4. Что такое запрос-действие и какие бывают запросы-действия?
5. Как можно добавить или удалить таблицу при конструировании запроса?
6. Что такое агрегированные операции и как они применяются в запросах?
7. Как определить, из каких таблиц взяты поля в шаблон вывода при конструировании запроса?
8. Что такое перекрестный запрос и как он конструируется?
9. Что такое SQL и как этот язык используется при формировании запросов?
10. Можно ли передать параметры в запрос из некоторой формы, если можно, то как это сделать?
11. Можно ли вводить данные в таблицы через запросы, если можно, то в
каких случаях, каковы ограничения, накладываемые на взаимосвязанные
таблицы, на ввод данных через запросы в таблицы?
12. Что такое поля группировки, можно ли использовать одновременно несколько полей группировки в одном запросе и каков смысл получаемого
результата?
13. Какие связи между таблицами могут быть установлены в запросе и в
каких случаях связи устанавливаются автоматически, а когда их можно
установить вручную?
14. Чем отличается запрос на выборку от запроса на создание таблицы? Что
происходит при повторном запуске запроса на создание таблицы?
Содержание отчета
12. С помощью мастера построения перекрестных запросов построим
перекрестный запрос, выводящий следующую таблицу:
Фамилия
Иванов
Итого
300р.
Янв
100р.
Фев
200р.
Мар
Апр
PDF created with FinePrint pdfFactory trial version www.pdffactory.com
1.
2.
3.
4.
Титульный лист.
Название и цель выполнения работы.
Письменные ответы на заданные вопросы.
Виды сконструированных запросов.
37
ЛАБОРАТОРНАЯ РАБОТА №4
Создание объектов типа "Форма" в среде MS Access
Цель работы
Изучение процесса создания объектов типа "Форма" в режиме проектирования форм с использованием Мастера. Редактирование управляющих
элементов в форме, добавление, удаление, изменение созданных ранее элементов управления формы. Задание нестандартных свойств элементам
управления в форме, добавление вычисляемых полей в формах.
Краткие теоретические сведения
Формы
Формы являются основным средством создания интерфейса пользователя, который обеспечивает наиболее удобный способ представления, просмотра, редактирования данных и управления ходом выполнения приложения.
Преимущества формы для ввода и редактирования данных состоит в
простоте и наглядности, так как записи таблицы или запроса представлены
в форме в удобном виде. В режиме Формы можно в полной мере воспользоваться возможностями, предоставляемыми графической средой Windows.
Кроме того, можно создавать необходимые для решения задачи элементы
формы. В формах пользователь самостоятельно определяет, сколько места
должно быть определено для представления конкретной информации. С их
помощью значительно упрощается внесение изменений, добавление и удаление данных из базы.
Мастера для создания форм
MS Access содержит большой набор инструментов для автоматического
создания стандартных элементов интерфейса. Для создания новой формы
сначала следует открыть окно базы данных. Затем необходимо выбрать
пиктограмму “ФОРМА” и нажать кнопку "Создать".
MS Access открывает диалоговое окно "Создание формы". В поле следует указать таблицу или запрос, данные из которых необходимо представить
в форме, после чего следует нажать кнопку Мастера.
MS Access открывает окно со списком доступных мастеров по разработке форм. Выберите элемент "В один столбец" и нажмите кнопку ОК.
PDF created with FinePrint pdfFactory trial version www.pdffactory.com
38
В результате этих действий будет запущен мастер по созданию форм,
данные в которых размещены в один столбец. В первом диалоговом окне
мастера необходимо определить поля данных, которые будут помещены в
формы. Поля можно выбирать по отдельности и помещать в список "Порядок полей в форме" нажатием кнопки >. При нажатии кнопки >> мастер
помещает в этот список все имеющиеся поля. Список определяет не только,
какие поля данных будут присутствовать в форме, но и их очередность.
Продолжите процесс создания формы, нажав кнопку "Далее". Если
больше никаких установок делать не требуется, нажмите кнопку "Готово".
В этом случае для всех остальных установок мастер использует значения по
умолчанию.
MS Access предлагает пользователю еще четыре мастера по созданию
форм. Мастер табличной формы создает формы, данные в которых представлены в виде таблицы.
Мастер диаграмм создает формы с двух- или многомерными столбчатыми, круговыми, линейными или штриховыми диаграммами. Его использование особенно полезно для графического представления числовых данных.
Мастер составных форм можно использовать для создания форм, в которых необходимо отображать информацию из двух связанных таблиц.
Мастер простых форм предлагает самый быстрый способ подготовки
форм и может быть запущен с помощью кнопки "Простая форма", расположенной на панели управления. Он создает стандартную форму за один шаг.
При запуске мастера простых форм посредством пиктограммы форма будет
основана на таблице или запросе, выбранных в данный момент в окне базы
данных.
Режим конструктора
Для редактирования формы используется режим Конструктора. Если форма уже открыта, следует выбрать пиктограмму “КОНСТРУКТОР”. Форму также
можно открыть сразу в режиме Конструктора, для этого в окне базы данных
укажите на ее имя и нажмите кнопку
"Конструктор".
При выводе формы в режиме Конструктора автоматически выводится панель элементов управления (в виде перемещаемой панели, рис. 4.1). Панель элементов позволяет добавлять элементы
управления в формы.
Рис. 4.1. Панель элементов
39
40
Для выбранных элементов можно изменить шрифт, размер и другие
свойства. Для этого используйте списки и кнопки, расположенные на панели управления. Расположение элемента формы можно изменить, используя
технику буксирования.
Для изменения цвета необходимо открыть палитру доступных цветов с
помощью пиктограммы “ПАЛИТРА”. Выберите один или несколько элементов управления и установите требуемый цвет.
В форме MS Access присутствуют три области: область заголовка (размещается заголовок и примечания формы), область колонтитулов (отображаются верхний и нижний колонтитулы) и область данных (непосредственно отображаются данные таблицы). Содержимое областей заголовка и колонтитулов не изменяется при перемещении по записям, в отличие от области данных. Различие между областями заголовка, колонтитулов и данных становится очевидным при распечатке формы.
Для каждой области формы можно установить свой цвет. Для этого следует сначала указать на соответствующую область, а затем выбрать требуемый цвет на палитре цветов.
Для наглядности отображения в форме данных таблиц и запросов содержимое полей можно снабдить подписями. Подпись в этом случае будет
пояснением к данным, отображаемым в поле. При перемещении одного из
этих элементов перемещается и другой. Для того чтобы с помощью буксировки по отдельности переместить подпись или поле, следует "ухватиться"
за большой квадрат, находящийся в левом верхнем углу соответствующего
элемента.
Для изменения размера элемента окна формы следует переместить в
нужную позицию один из маркеров выделения.
Цвет, размер и местоположение являются только частью семейства
свойств элементов формы. Полный список всех свойств элементов можно
получить, открыв окно свойств путем выбора одноименной пиктограммы.
Если выделено несколько элементов окна, можно сразу изменить их общие
свойства.
наименованиями. Каждый из элементов имеет набор свойств, причем свойства элементов различного типа могут не совпадать. Например, линия не
предназначена для отображения текста, поэтому в списке ее свойств отсутствует тип и размер шрифта. Тип элемента можно определить с помощью
окна свойств. MS Access отображает его в качестве заголовка окна.
Создание элементов формы
Создание элементов формы осуществляется в режиме Конструктора.
На панели элементов находятся кнопки, соответствующие доступным элементам управления, которые могут присутствовать в форме. Это следующие
кнопки: "Выключатель", "Группа", "Диаграмма", "Конец страницы", "Кнопка", "Линия", "Несвязанная рамка объекта", "Переключатель", "Подпись",
"Подчиненная форма/отчет", "Поле", "Поле со списком", "Прямоугольник",
"Связанная рамка объекта", "Список", "Флажок" (см. рис. 4.1).
Каждая пиктограмма этой панели предназначена для создания элемента
определенного типа. Назначение пиктограмм однозначно определяется их
PDF created with FinePrint pdfFactory trial version www.pdffactory.com
Поле
"Поле" является основным элементом отображения данных в форме. С
помощью "Поля" можно в форме отобразить не только данные из таблиц и
запросов, но и некоторые дополнительные данные, например, текущую дату. Для этого необходимо создать элемент типа "Поле" в форме и определить в качестве свойства “Данные” для этого поля значение функции Now().
MS Access автоматически создает поле с подписью. Если этого не
происходит, то следует открыть окно свойств. Выберите подпись, расположенную в левой части. Введите в поле "Подпись поля" значение. При подтверждении ввода нажатием клавиши [Enter] в качестве подписи появится
введенный текст.
Однако существует отдельный элемент управления "Подпись", который может быть использован для изображения любых надписей на форме.
Флажки, переключатели и выключатели
Если не подлежащий изменению список выводимых значений содержит
лишь несколько значений, для упрощения ввода и отображения данных в
форме можно использовать выключатели, флажки и переключатели.
Конструктор форм позволяет создать для логических полей такие элементы, как "Флажок", "Переключатель" и "Выключатель". Если элемент
отмечен крестиком, то значение логического поля равно "Да", "Истина" или
"-1". В противном случае полю присваивается значение "Нет", "Ложь" или
"0".
Чтобы создать необходимый элемент управления, следует выбрать соответствующую пиктограмму панели элементов и нажать мышью на пустое
пространство в форме. Затем в поле "Данные" необходимо ввести имя поля
исходной таблицы или запроса. Кроме этого, можно изменить подпись для
созданного элемента.
Если в числовом поле данные могут принимать только определенные
значения, для выбора этих значений можно использовать группы переключателей. Прежде всего выберите пиктограмму “ГРУППА” на панели элементов и нарисуйте рамку. Задайте в качестве значения свойства "Данные"
имя числового поля, значение которого определяется с помощью группы
переключателей.
Затем разместите в группе несколько переключателей. Для каждого переключателя группы в поле "Значение параметра" введите требуемое значе-
41
42
ние. Это значение будет введено в поле таблицы при выборе соответствующего переключателя.
Каждому элементу управления, включенному в группу, присваивается
числовое значение, которое заносится в базовое поле таблицы или запроса
при выборе этого элемента.
Каждый переключатель может быть снабжен смысловой подписью.
Элемент управления кнопка
Этот элемент управления предназначен для запуска макроса, вызова
функции MS Access Basic или выполнения процедуры обработки событий.
Например, форма может содержать кнопку, при нажатии которой открывается другая форма.
Если мастера по созданию элементов управления включены, можно создать кнопку с помощью мастера. Для включения или отключения мастеров
по созданию элементов управления следует нажать кнопку "Мастер" или
выбрать команду Мастер в меню Вид. Если мастера по созданию элементов
управления включены, то кнопка изображается нажатой (утопленной), а
слева от команды в меню изображается метка.
Для размещения текста или рисунка на поверхности кнопки следует определить ее свойство "Подпись поля"(Caption) или "Рисунок"(Picture) соответственно.
Для того чтобы указать, что данная кнопка вызывает выполнение стандартного действия или является кнопкой "Отмена", следует определить ее
свойства "По умолчанию"(Default) и "Отмена"(Cancel) соответственно.
Списки
Списки и поля со списком очень удобны при вводе данных для связанных таблиц, могут содержать перечень значений из инструкции SQL или
запроса.
Для определения списка следует перейти в режим Конструктора. Если
список полей исходной таблицы еще не открыт, следует выбрать команду
ВидàСписок полей. Затем необходимо выбрать пиктограмму списка на панели элементов и буксировать необходимое поле прямо из списка полей в
форму.
MS Access автоматически создает новый список и полю "Данные" присваивает значение выбранного поля. Свойства "Тип источника строк" и
"Источник строк" определяют происхождение данных, которые будут отображаться в списке. Другие свойства определят внешний вид списка.
Поле со списком
Создание полей со списком осуществляется аналогичным образом. При
этом в распоряжение предоставляются точно такие же свойства. Поля со
списком занимают на форме меньше места, а список их значений выводится
на экран только по указанию пользователя. Списки занимают больше места,
однако в них всегда отображается несколько возможных для ввода значений.
Элемент управления является как бы объединением поля и списка. Значение этого элемента управления может быть введено с клавиатуры или
выбрано из предварительно подготовленного списка, который может быть
сформирован из некоторой таблицы или запроса.
В режиме списка нижняя часть поля со списком (список) не изображается до тех пор, пока не будет нажата кнопка раскрытия списка (со стрелкой).
Примечания: Значение свойства "Ограничиться списком" (LimitToList)
определяет, можно ли вводить в поле со списком значения, которых нет в
списке.
Можно сделать так, чтобы при попытке ввода значения, отсутствующего
в списке, на экране появлялось соответствующее сообщение. Для этого следует задать обработку свойства "Отсутствие в списке" (OnNotInList).
PDF created with FinePrint pdfFactory trial version www.pdffactory.com
Рисунки и другие объекты
В форму можно включить простые графические объекты, такие как линии и прямоугольники. Для вычерчивания линий или прямоугольников следует выбрать соответствующую пиктограмму панели элементов, а затем
нажать мышью на пустое пространство в форме.
Кроме того, MS Access поддерживает Windows-технологию OLE 2.0
(Object Linking and Embedding – размещение и связывание объектов). Благодаря этому Вы можете встроить в свои формы объекты, созданные любой
из Windows-программ, поддерживающих режим OLE-cepвера. В качестве
таких объектов могут быть использованы рисунки, диаграммы и т.п.
Для размещения объекта в форме следует выбрать пиктограмму “РАМКА” объекта панели элементов. После определения пользователем размеров
для рисунка MS Access открывает диалоговое окно "Вставка объекта", содержащее список средств, с помощью которых можно встроить объект в
форму, а также позволяющее встроить в форму уже готовые объекты. Выберите соответствующее средство или объект и нажмите ОК. Например,
чтобы создать рисунок, можно выбрать "Рисунок Paintbrush". В результате
будет запущена программа Paintbrush, с помощью которой можно создать
требуемый объект. Завершив создание объекта, сохраните его с помощью
команды Файл/Сохранить. Он будет сохранен вместе с формой.
Рисунки и другие объекты, встраиваемые в формы, можно связывать с
формой целиком, либо с каждой записью формы.
43
44
Вычисляемые элементы управления
Элементы формы могут быть связанными и несвязанными. Связанные
элементы привязаны к полю исходной таблицы или запроса. Несвязанные
элементы, как правило, отображают результат вычисления.
Откройте форму в режиме Конструктора и выберите пиктограмму
“ПОЛЕ” панели элементов. Затем укажите мышью место в пределах формы,
в результате чего MS Access создаст новое поле и подпись. Откройте окно
свойств поля и для свойства "Данные" введите выражение, задающее его
значение.
Имена полей в таких выражениях заключаются в квадратные скобки. В
этом случае их легче отличить от других элементов. Кроме того, применение квадратных скобок для имен полей, содержащих специальные символы,
является обязательным.
Так как MS Access не может самостоятельно определить тип вычисляемых данных при создании формы, необходимо самостоятельно установить
значение свойства "Формат поля".
Область примечаний формы является наиболее подходящим местом для
отображения итоговых значений.
Отображаемая в форме информация не ограничивается таблицей или запросом. Например, Вы можете воспользоваться уже знакомой Вам функцией Date(), определяющей системную дату. Кроме того, при помощи несвязанных элементов управления возможно выполнение программ, написанных
на встроенном языке программирования Visual Basic.
Подчиненная форма
Часто требуется визуально представить отношение 1 : М между элементами данных. Для этого используется режим подчиненной формы. Например, при представлении издательства мы хотим видеть список книг, изданных в данном издательстве. Таблица с данными об издательствах связана с
таблицей "Книги". Связь осуществляется посредством поля "Код издательства", присутствующего в обеих таблицах.
Выберите пиктограмму “НОВАЯ ФОРМА”, после чего MS Access откроет диалоговое окно "Создание формы". Выберите таблицу "Издательства" и нажмите кнопку "Мастер". Из списка мастеров выберите "Составная
форма" и снова нажмите ОК.
Данный мастер автоматически дополняет создаваемую форму так называемой подчиненной формой. В первом диалоговом окне мастера запрашивается имя таблицы для подчиненной формы. Выберите из списка таблицу
"Книги" и нажмите кнопку "Далее".
Следующее диалоговое окно предназначено для выбора полей главной
формы. Поля подчиненной формы выбираются в следующем диалоговом
окне. Еще одно диалоговое окно позволяет выполнить размещение полей в
форме. В последнем диалоговом окне остается задать заголовок формы и
окончить работу с мастером, нажав кнопку "Готово".
Затем мастер предложит ввести имя для подчиненной формы. Откройте
главную форму в режиме просмотра.
В верхней части формы расположены поля таблицы "Издательства", ниже – таблица, образованная полями таблицы "Книги". Особенность заключается в том, что в форме отображаются только те из записей таблицы
"Книги", которые связаны с текущей записью таблицы "Издательства".
При редактировании данных MS Access автоматически поддерживает
целостность данных. Поэтому запись об издательстве можно удалить лишь
после того, когда будут удалены все записи о соответствующих ему книгах.
При вводе информации о новых книгах MS Access автоматически связывает записи с текущим издательством. Поэтому пользователю не нужно самому заполнять поле "Код издательства". Это поле можно удалить из подчиненной формы.
Составная форма может быть построена и иным путем. Для этого сначала разрабатывается подчиненная форма в виде ленточной формы. Потом
разрабатывается основная форма, а подчиненная форма встраивается путем
простого перетаскивания готовой подчиненной формы и размещения ее
внутри основной.
Построитель выражений
Для создания полей, информация в которых отсутствует в таблицах или
запросах, используется построитель выражений.
Создайте форму для исходной таблицы, поместив в нее все необходимые
поля. Далее откройте форму в режиме Конструктора и разместите в ней
новое поле. Вызовите окно свойств, перейдите в поле "Данные". Справа,
рядом со строкой ввода, находится кнопка вызова построителя выражений.
Нажатие этой кнопки приводит к открытию окна построителя выражений.
Диалоговое окно построителя выражений состоит из двух областей.
В верхней области расположено поле выражения, в котором отображается составленное выражение. В нижней области находятся три списка, элементы которых могут быть добавлены в выражение.
Чтобы поместить в окно ввода требуемое поле, следует либо дважды
нажать мышью требуемый элемент списка, либо воспользоваться кнопкой
"Добавить".
Возможно использование набора предлагаемых встроенных функций
при задании полям определенных значений.
PDF created with FinePrint pdfFactory trial version www.pdffactory.com
45
46
Свойства формы
Каждая форма имеет свойства, значения которых определяют ее вид и
поведение, также MS Access представляет более 40 свойств событий форм,
которые могут запускать макросы (или процедуры Visual Basic). Ниже приведен перечень этих событий:
• Открытие и закрытие форм.
• Изменение данных.
• Обнаружение смены фокуса.
• События работы с клавиатурой и мышью.
• Печать.
• Включение пользовательского меню формы.
• Отслеживание ошибок.
• Истечение промежутка времени.
Вам необходимо самостоятельно разобраться со свойствами формы.
Порядок выполнения работы
1.
2.
3.
4.
5.
6.
Открыть разрабатываемую вами базу данных.
Спроектировать формы для всех таблиц вашей базы данных. В каждой
форме должен присутствовать заголовок. Формы должны быть спроектированы как в ленточном виде, так и в один столбец. Например, рассмотрим создание ленточной формы. В окне БД перейдите на закладку
"Формы" и нажмите кнопку "Создать". Выберите из списка строку
"Мастер форм" и нажмите Оk. На втором шаге мастера нужно выбрать
режим формы "Ленточный". На 3-м шаге – любой, понравившийся вам,
стиль.
Запретить доступ к одному из элементов управления. Для этого надо
открыть форму в конструкторе; выделить элемент; установить свойства:
Доступ – Нет и Блокировка – Да.
Создать формы для основных запросов. Использовать подчиненные
формы для таблиц, связанных отношением 1:М.
Используя элемент "Рисунок" ( ), вставить в каждую форму логотип.
Подготовить отчет по работе.
Пример выполнения задания
Разработаем ряд форм для информационной системы "Абитуриент".
1. Создадим форму для ввода данных в таблицу тАбитуриенты (рис.
4.1). Для этого, используя Мастер форм, на первом шаге выбираем все поля
таблицы тАбитуриенты с помощью кнопки >> . На втором шаге выбираем
внешний вид формы "Выровненный", и на третьем – стиль "Чертеж".
PDF created with FinePrint pdfFactory trial version www.pdffactory.com
Рис. 4.1
2. С помощью элемента "Вкладка" создаем форму для ввода информации
по вузам (рис. 4.2).
Рис. 4.2
3. Форма, состоящая из двух связанных форм для ведения учета оплаты
абитуриентами занятий на подготовительных курсах, создается с помощью
мастера (рис. 4.3).
4. Ленточную форма для изменения статуса абитуриентов можно создать
с помощью мастера(рис. 4.4).
47
48
7.
8.
9.
10.
11.
12.
Рис. 4.3
13.
14.
15.
16.
1.
2.
3.
4.
5.
6.
Рис. 4.4
17.
Контрольные вопросы
18.
19.
Что такое объект типа "Форма", какие типы форм предлагает вам создать мастер и чем они отличаются одна от другой?
Что такое элемент управления в форме, какие в MS Access используются элементы управления в форме?
Что такое список и поле со списком в форме, чем они отличаются, каковы свойства этих элементов управления?
Что такое элемент типа "Переключатель", как он работает, как и зачем
объединяют эти элементы в группы?
Чем отличается элемент типа "Рамка объекта" от элемента типа "Встроенная рамка объекта"?
Что такое подпись элемента управления и как ее можно изменить, переместить, убрать?
PDF created with FinePrint pdfFactory trial version www.pdffactory.com
20.
21.
Какие разделы объекта типа "Форма" используются при разработке экранных форм и что они означают?
Где задаются свойства объекта типа "Форма"?
Чем отличается свойство объекта, встроенного в форму, от свойства
самой формы?
Из каких областей состоит форма и каково их назначение? Как можно
изменить цвет формы целиком или по частям?
Какие свойства цветов соответствуют объекту типа "Подпись" и как эти
свойства влияют на внешний вид этого объекта?
Можно ли сделать цвет фона объекта типа "Поле" таким же как цвет
фона формы, если цвет формы отличен от стандартного серого, если
можно, то как?
Чем является элемент "Встроенная форма" по отношению к основной
форме? Какие свойства элемента типа "Встроенная форма" используются для синхронизации работы основной и встроенной формы?
Что такое свойство формы "Диалоговое окно", какие значения может
принимать это свойство и как его можно использовать?
Что такое свойство формы "Тип границы", какие значения оно может
принимать и какие эффекты при этом мы видим на экране? Как может
быть использовано это свойство при разработке приложений?
Что такое имя формы и какая надпись появляется в заголовке окна
формы? Как можно изменить эту надпись? Какие стандартные системные элементы управления появляются в окне формы, с какими свойствами формы эти элементы связаны и как их можно изменить?
Какие события влияют на поведение формы и каковы свойства формы,
обеспечивающие обработку этих событий?
Каков порядок обработки событий, связанных с формой?
Как можно заменить действия стандартных системных кнопок: закрытие, разворачивание, сворачивание?
Что такое область номера записи и каким образом можно изменить ее
внешний вид, можно ли убрать эту область и какими элементами
управления ее можно заменить?
Что такое свойство PopUp (всплывающее окно) и как оно может быть
использовано?
Содержание отчета
1.
2.
3.
4.
Титульный лист.
Название и цель выполнения работы.
Письменные ответы на заданные вопросы.
Виды сконструированных форм.
49
ЛАБОРАТОРНАЯ РАБОТА №5
Разработка отчетов в среде MS Access
Цель работы
Изучение процесса создания объектов типа "отчет". Редактирование полей отчета, группировка, задание вычисляемых значений полям отчета. Работа с областями отчета.
Краткие теоретические сведения
Отчеты
Отчеты позволяют представить и распечатать данные в соответствии с
требованиями пользователя. Причем возможности оформления данных для
вывода на печать почти настолько же гибки, как и возможности отображения их на экране.
Отчеты очень похожи на формы. Так, например, режимы конструктора
форм и отчетов почти идентичны. Это также касается панели инструментов,
панели элементов, а также средств, предназначенных для размещения и работы с элементами управления.
При работе над отчетом можно использовать те же области, что и при
создании форм: области заголовка и примечания, области верхнего и нижнего колонтитулов, а также область данных. Кроме того, можно включить в
отчеты до четырех областей для полей, по которым осуществляется группировка записей.
MS Access печатает верхний колонтитул вверху каждой печатной страницы. Нижний колонтитул размещается в конце каждой печатной страницы.
В отличие от них, заголовок отчета печатается один раз в начале, а примечание отчета – один раз в конце отчета. Содержимое области данных печатается один раз для каждой записи исходной таблицы или запроса. Кроме
того, пользователь может определить несколько полей, по которым будет
проводиться группировка записей исходной таблицы или запроса. Тогда для
каждого поля, по которому проводится группировка данных, MS Access в
качестве областей отчета формирует заголовок группы и примечание группы.
Однако между формами и отчетами имеется существенное различие –
отчеты предназначены исключительно для вывода данных на печать. В них
отсутствует необходимость наличия управляющих элементов для ввода
PDF created with FinePrint pdfFactory trial version www.pdffactory.com
50
данных. Поэтому в отчетах можно отказаться от использования списков,
полей со списком и флажков.
Так как отчеты предназначены только для вывода данных на печать, для
них нельзя установить режим таблицы или формы. Для отчета можно выбрать только режим конструктора и предварительного просмотра. При обработке больших таблиц или запросов иногда прибегают к просмотру отчетов, осуществляемому с помощью команды ФайлàПредварительный просмотр. Как правило, данная операция требует меньше времени по сравнению с созданием отчета, однако в этом случае в ваше распоряжение предоставляется минимальный набор средств.
Одноколоночные отчеты
Простейший путь создания отчета состоит в использовании интегрированных в MS Access мастеров отчетов. Выберите в окне базы данных
таблицу или запрос, данные которых требуется напечатать. Затем выберите
пиктограмму “НОВЫЙ ОТЧЕТ”. В диалоговом окне "Создание отчета" нажмите кнопку "Мастер".
MS Access отображает список доступных мастеров отчетов, выберите “В
один столбец” и нажмите ОК. Первое диалоговое окно мастера предназначено для выбора полей, которые должны быть представлены в отчете. Выберите поля в нужной последовательности, после чего нажмите кнопку "Далее".
Во втором диалоговом окне мастера вы можете задать, по каким полям
данных из таблицы или запроса должна осуществляться сортировка записей. Подтвердите установку нажатием кнопки "Далее". После того, как будет выбран стиль оформления отчета и задан его заголовок, в последнем
диалоговом окне мастера следует нажать кнопку "Готово". Мастер создает
отчет, и MS Access откроет его в режиме предварительного просмотра. Для
вывода отчета на бумагу нажмите пиктограмму “ПЕЧАТЬ”.
Наиболее быстрый способ создания отчета, всего за один шаг, заключается в выборе таблицы или запроса в окне базы данных, а затем – пиктограммы “ПРОСТОЙ ОТЧЕТ”.
Отчеты с группировкой данных
Отчеты MS Access представляют мощные средства, позволяющие сортировать и группировать данные и проводить итоговые расчеты самыми разнообразными способами.
После запуска мастера в первом диалоговом окне надо выбрать поля исходной таблицы или запроса, которые должны быть представлены в отчете.
Во втором диалоговом окне можно задать до четырех полей, по которым
будет осуществляться группировка данных. Например, если вы создаете
отчет для таблицы товаров, то здесь можно указать поля "Тип" и "Цена". В
51
этом случае мастер создает отчет, в котором данные исходной таблицы объединены по категориям и ценам.
Кроме этого, если в отчете представлены числовые поля, для каждой
группы мастер автоматически вычисляет сумму значений, содержащихся в
этих полях. Так, например, можно создать отчет, в котором товары сгруппированы по категориям и ценам и для каждой категории указана сумма цен
товаров.
После выбора полей, по которым будет проводится группировка данных,
в следующем диалоговом окне для каждого из этих полей можно задать интервал группировки. При выборе стандартной установки "По полному значению" автоматически производится группировка данных с одинаковыми
значениями.
Если поля группировки не заданы, то в следующем диалоговом окне
можно указать порядок сортировки данных исходной таблицы или запроса.
Если же поля группировки определены, то данное диалоговое окно содержит только те поля, которые не были выбраны в предыдущем окне, и в нем
можно задать последовательность сортировки данных внутри группы. В
следующем диалоговом окне выбирается стиль оформления отчета и ориентация бумаги. В последнем диалоговом окне мастера присутствует опция
Расположить все поля на одной странице. При выборе этой опции мастер
уменьшает элементы управления для всех полей отчета так, чтобы они все
поместились рядом друг с другом на одной печатной странице.
Если вы хотите самостоятельно внести изменения в групповой отчет, в
режиме Конструктора следует выбрать пиктограмму “Сортировка и группировка”(
). После этого MS Access открывает одноименное окно, в котором можно выбрать поля для группировки отчета.
Задание управляющего элемента в одной из областей отчета автоматически определяет его функцию. Например, если в области примечаний группы
"Тип" определить управляющий элемент с выражением: =Sum( [Цена]), в
результате будет вычислена сумма цен на товары по каждой категории.
Конструктор отчетов
Оформление отчета осуществляется в режиме конструктора. Переход из
окна базы данных в режим конструктора осуществляется нажатием кнопки
"Конструктор".
Режим конструктора для отчетов очень похож на аналогичный режим
для форм. Даже панель элементов для создания новых управляющих элементов та же. Однако в нем содержится одна пиктограмма, которая при создании форм не используется. Это пиктограмма “КОНЕЦ СТРАНИЦЫ”.
Как правило, MS Access автоматически выполняет разбивку по страницам. Правила разбивки устанавливаются в свойствах отчета. Однако, ис-
PDF created with FinePrint pdfFactory trial version www.pdffactory.com
52
пользуя пиктограмму “РАЗРЫВ СТРАНИЦЫ” (
), можно осуществлять переход на новую страницу вручную и, следовательно, выполнить разбивку по страницам в соответствии с требованиями пользователя.
По умолчанию MS Access различает в отчете пять областей. Заголовок и
примечание отчета печатаются один раз в начале и в конце отчета. Обе эти
области вы можете включать и выключать посредством команды
ВидàЗаголовок/Примечание отчета.
Верхний и нижний колонтитулы страницы выводятся соответственно
вверху и внизу на каждой отпечатанной странице. Обе эти области можно
включать и выключать посредством команды ВидàКолонтитулы.
Наиболее важной является область данных отчета. MS Access распечатывает ее один раз для каждой записи исходной таблицы или запроса.
Каждая из пяти областей отчета имеет собственные свойства. Выберите
пиктограмму “СВОЙСТВА”, чтобы MS Access открыл окно свойств. Затем
выберите одну из полосок с наименованием области отчета. В результате в
строке заголовка окна свойств отображается текст: "Раздел" и имя соответствующей области.
С помощью свойства "Конец страницы" вы определяете, должен ли осуществляться переход к новой странице перед началом области. Интересным
является также свойство "Не разрывать". Если установить для данного
свойства значение "Да", MS Access попытается напечатать управляющие
элементы области на одной странице.
Однако если на текущей странице не достаточно места для всех управляющих элементов области, тогда MS Access печатает все управляющие
элементы на следующей странице. Свойство "Вывод на экран" определяет,
должна ли отображаться на экране данная область отчета. В отчетах некоторые из управляющих элементов содержат свойства "Расширение" и "Сжатие". Аналогичные свойства в формах отсутствуют.
Использование вычисляемых значений
MS Access предоставляет десятки встроенных функций, которые можно
использовать для обработки данных или для добавления информации в отчет. Одним из видов информации, которая наиболее часто включается в
отчет, является информация о дате подготовки отчета или номера текущих
страниц. Для дат MS Access предоставляет две встроенные функции Date() и
Now(), возвращающие текущие системные даты. Чтобы добавить текущую
дату в отчет, необходимо создать несвязанное поле и установить его свойство "Данные" в значение =Date() (или Now()).
Чтобы добавить номер страницы, используйте свойство отчета "Страница" (Page), посредством создания несвязанного поля и установки его свойства "Данные" равным "Страница" (Page).
54
53
Главные и подчиненные отчеты
Помимо внедрения в другие формы подчиненных форм, существует
возможность вставлять подчиненные отчеты (или подчиненные формы) в
другие отчеты.
На первом шаге создайте стандартный отчет для подчиненной таблицы.
Сохраните отчет под именем "Подчиненный". На втором шаге создайте отчет для главной таблицы. Сохраните данный отчет под именем "Главный".
На третьем шаге объедините оба отчета и перейдите в окно базы данных.
Затем в режиме Конструктора буксируйте подчиненный отчет из окна базы
данных в область данных главного отчета. В результате MS Access автоматически размещает управляющий элемент для подчиненного отчета.
MS Access автоматически установил связь между таблицами на основании отношения, определенного в модели данных. В этом можно убедиться с
помощью конструктора отчета. Откройте окно свойств и выберите управляющий элемент для подчиненного отчета.
Отметьте, что MS Access ввел для свойств управляющего элемента
"Подчиненные поля" и "Основные поля" наименование связующего поля.
Посредством этих двух свойств устанавливается связь между главным и
подчиненным отчетами. При объединении главного и подчиненного отчетов
для двух таблиц, которые не были связаны предварительно, вы должны самостоятельно определить значения этих свойств.
При просмотре отчета становятся видны некоторые недостатки размещения управляющих элементов в отчете, которые можно легко устранить.
Так, например, подчиненный отчет имеет собственную нумерацию страниц
и заголовок. Поскольку в данном случае подчиненный отчет встроен в главный отчет, оба элемента оказываются лишними.
Откройте подчиненный отчет в режиме Конструктора. Удалите заголовок, нумерацию страниц и все другие управляющие элементы, которые
больше не понадобятся. Затем переместите заголовки полей таблицы из области верхнего колонтитула страницы в область заголовка отчета. Затем
выберите Формат/Колонтитулы, чтобы выключить соответствующие области. Сохраните изменения. В режиме Конструктора главного отчета несколько раз нажмите мышью управляющий элемент для подчиненного отчета, пока курсор не станет видимым. Затем нажмите клавишу [Enter], в
результате чего MS Access будет учитывать изменения, выполненные в
подчиненном и в главном отчетах.
Порядок выполнения работы
1.
2.
Открыть разрабатываемую вами базу данных.
Спроектировать отчеты для всех таблиц вашей базы данных.
PDF created with FinePrint pdfFactory trial version www.pdffactory.com
3.
4.
Создать итоговый отчет. Применить операцию группировки данных.
Подготовить отчет по работе.
Контрольные вопросы
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
Какие типы Мастеров для создания отчетов имеются в MS Access?
Что представляет из себя бланк отчета и как его разделы располагаются
на странице при печати?
Как производится группировка данных в отчете?
Как включить в отчет заголовок и примечание группы, для чего они
используются?
Как ввести в отчет пропущенное поле данного и как задать его свойства?
Как ввести в отчет вычисляемое поле?
Каким образом проектируется поле – итоговые величины по группам
данных?
Где располагаются итоговые данные по группам и по всему отчету?
Как добавляется в отчет описательная текстовая информация ?
Что означает свойство раздела “Не разрывать”?
Что означает свойство раздела “Вывод на экран”?
Каким образом установить размер, формат и шрифт поля ?
Как выровнять группу данных по горизонтали?
Как выровнять группу данных по вертикали?
Каким образом вводятся в отчет текущая дата распечатки и номера
страниц?
Содержание отчета
1.
2.
3.
4.
Титульный лист.
Название и цель выполнения работы.
Письменные ответы на заданные вопросы.
Виды сконструированных отчетов.
55
ЛАБОРАТОРНАЯ РАБОТА №6
Работа с макросами в среде MS Access
Цель работы
Изучить принципы использования макрокоманд в MS Access. Получить
навыки разработки и выполнения простых макросов. Получить представление о событиях и привязке макросов к различным событиям.
Макросы
Макросы великолепно подходят для автоматизации повторяющихся действий. С помощью макросов Вы можете решить большинство своих проблем. Если макросов станет недостаточно, нужно обратиться к интегрированному в MS Access языку программирования Visual Basic. Данный язык
является наиболее доступным языком программирования в мире, с другой
стороны, Visual Basic обеспечивает очень высокую производительность.
Даже если вы работаете с MS Access довольно продолжительное время, маловероятно, что возникнут задачи, которые вы не сможете решить с помощью Visual Basic.
Макросы встречаются гораздо реже, чем программы. Как правило, они
очень тесно связаны с объектами среды MS Access. Практически каждый
управляющий элемент располагает множеством так называемых "реакций
на события". События определяют, что должно произойти при выполнении
нажатия кнопки, перехода в поле и выходе из него.
Если в окне свойств активизировать одно из событий, MS Access выведет на экран список всех сохраненных в базе данных макросов. Пользователю остается только выбрать один из элементов списка, чтобы связать свойство элемента управления с макросом.
Построитель макросов
Прежде всего следует открыть в режиме Конструктора форму, в которой находится соответствующий объект (например, кнопка). Поместите
указатель мыши на объект (в данном случае на кнопку) и нажмите правую
кнопку мыши. Объект будет выбран, и откроется контекстное меню, из которого следует выбрать элемент "Свойства". В окне свойств в верхнем поле
выберите элемент "Свойства событий", после чего на экране будут отображены только свойства событий. Выберите то событие, в результате которого будет вызываться макрокоманда. В той же строке выполните щелчок
мышью на кнопке вызова построителя, которая расположена рядом со строкой ввода значения свойства.
PDF created with FinePrint pdfFactory trial version www.pdffactory.com
56
Появляется диалоговое окно "Построитель", в котором для запуска построителя макросов необходимо выбрать Макросы и нажать ОК. MS Access
создает новый макрос и предлагает пользователю ввести его имя. После
этого указанное имя макроса будет автоматически внесено в строку ввода
свойства события. Одновременно макрос открывается в режиме Конструктора, после чего можно непосредственно приступать к его созданию. Каждый макрос может содержать одну или несколько команд. Макрокоманды
могут запускаться с использованием условий или строго последовательно.
После завершения работы над макросом его следует сохранить и закрыть
окно макроса. Теперь можно снова нажать кнопку вызова построителя. Однако MS Access не создает нового макроса, а открывает заданный, непосредственно готовый к редактированию в режиме Конструктора.
Автоматический запуск макроса
Как правило, при открытии базы данных постоянно выполняются одни и
те же действия. Типичным примером этого является открытие формы, содержащей панель управления прикладной программой. Было бы удобно,
если бы MS Access выполнял это действие автоматически. Все, что для этого нужно – это автоматически выполняемый макрос, который называется
AutoExec.
В окне базы данных выберите пиктограмму “МАКРОС”. Затем нажмите
кнопку "Создать", в результате чего MS Access откроет пустое окно макроса
в режиме Конструктора. Нажмите мышью самую верхнюю строку столбца
"Макрокоманда". MS Access отображает на экране список макрокоманд.
Осуществите прокрутку списка и выберите элемент "Открыть Форму".
Теперь необходимо определить аргументы макрокоманды. Нажмите
мышью строку "Имя формы" в нижней части окна. Здесь MS Access отображает список всех форм базы данных. Выберите ту форму, которая должна открываться автоматически (например, "Панель управления формами").
Для всех других аргументов можно оставить стандартные установки без
изменений.
Сохраните новый макрос под именем AutoExec. При следующем открытии базы данных автоматически будет открываться форма "Панель управления формами".
Если в исключительном случае потребуется подавить выполнение AutoExec-макроса, при открытии базы данных следует удержать нажатой клавишу [Shift].
В более серьезных случаях в макрос AutoExec помещают команды подготовки приложения к работе, например, сюда можно поместить команды
подсоединения таблиц из другой БД.
57
58
Макросы в качестве заменителей команд меню
Взаимодействие с формой можно упростить, разместив наиболее часто
используемые команды меню в виде кнопок. Нажатие кнопки выполняется,
как правило, гораздо быстрее, чем выбор команды меню. Это оправдывает
себя в том случае, если часто приходится возвращаться в окно базы данных.
MS Access позволяет создавать макрос, в котором можно объединить несколько макрокоманд. Создание такой группы рекомендуется в тех случаях,
когда для формы нужно несколько макрокоманд.
При использовании группы макрокоманд можно избежать того, что в
окне базы данных появляется каждая отдельная макрокоманда. Это значительно улучшает наглядность.
Определение группы макрокоманд выполняется точно так же, как определение отдельной макрокоманды.
кнопку "Нет", то не будет выполнена только первая макрокоманда. Однако
второй отчет MS Access распечатает.
Причина этого заключается в том, что по умолчанию условие влияет
только на ту макрокоманду, которая расположена в одной строке с условием. Можно повторить условие во всех последующих строках. Однако это
приведет к тому, что на экране многократно будет появляться окно диалога.
Решение проблемы заключается во вводе в столбец условий многоточия
(...) для всех макрокоманд, которые должны выполняться только при удовлетворении условия. В результате MS Access оценивает условие только
один раз, следовательно, и окно диалога появляется только однажды. Если
теперь нажать кнопку "Нет", то MS Access не выполняет макрокоманду из
первой строки. Кроме этого, он пропускает и все последующие строки,
столбец условий которых содержит многоточие.
Следующие друг за другом строки макрокоманд одного условия выполняются только тогда, когда условие удовлетворено.
Если необходимо воспрепятствовать тому, чтобы макрокоманды следующего макроса выполнялись даже тогда, когда условие удовлетворено, в
качестве последней макрокоманды макроса следует выбрать "Остановить
Макрос". Данная макрокоманда останавливает выполнение макроса.
Дополнительную информацию о возможных параметрах функции
MsgBox можно найти в справочной системе MS Access под ключевым словом MsgBox.
Условие выполнения макроса
Не всегда макрос должен выполняться сразу же, как только вы нажали
определенную кнопку. Так, например, можно создать макрос, который последовательно распечатывает несколько отчетов. Прежде чем начнется печать, на экране должно появиться сообщение о том, что печать займет продолжительное время. Процесс печати должен начаться лишь после того, как
пользователь согласится с этим.
Создайте новый макрос. Выберите команду Вид/Условия, в результате
чего на экране появится столбец "Условия". Прежде всего следует указать
макрокоманды в той последовательности, в которой они должны выполняться. Например, если требуется отпечатать несколько отчетов, следует
выбрать макрокоманду "Открыть Отчет" несколько раз.
Затем с помощью аргумента макрокоманды "Режим" можно определить,
будет MS Access сначала открывать отчеты в режиме предварительного
просмотра или сразу выводить их на печать.
Перейдите в столбец условий, введите там следующее выражение:
МsgВох ("Печать требует продолжительного времени. Приступить к печати?"; 4+32 )=6.
Сначала вызывается встроенная функция MsgBox (Сообщение). Данная
функция отображает на экране диалоговое окно с указанным текстом сообщения и двумя кнопками "Да" и "Нет". Функция возвращает значение 6
лишь тогда, когда вы нажмете кнопку "Да".
MS Access выполняет указанную после условия макрокоманду только
тогда, когда условие выполнено, а именно, когда пользователь нажимает
кнопку "Да".
Теперь, если выбрать пиктограмму “ВЫПОЛНИТЬ” для запуска макроса, MS Access сначала отображает на экране окно диалога. Если нажать
PDF created with FinePrint pdfFactory trial version www.pdffactory.com
Порядок выполнения работы
1. Создайте форму, содержащую две кнопки: “Ввод данных” и “О системе”.
2. Выделите кнопку "О системе" и откройте окно свойств кнопки. На
вкладке События (рис. 6.1) можно увидеть список событий, которые могут
наступить при действиях с кнопкой. Среди этих событий имеется событие
Нажатие кнопки (OnClick). Если макрос, обрабатывающий событие нажатия кнопки, уже существует, его можно привязать к событию, выбрав этот
макрос из комбинированного списка свойства Нажатие кнопки. Создать
макрос для обработки события можно при помощи кнопки создания макроса.
Для обработки события нажатия кнопки "О системе" создадим простой
макрос, выполняющий вывод на экран сообщения со сведениями об учебной базе данных. Для создания макроса нажмите кнопку создания макроса в
строке Нажатие кнопки. При этом откроется окно нового макроса, подобное тому, что показано на рисунке 5.2. Верхняя часть окна используется для
определения нового макроса, а нижняя предназначена для ввода аргументов
59
60
макрокоманд, включенных в макрос. В верхней части присутствуют как
минимум два столбца с заголовками Макрокоманда и Примечание.
9. Проверьте работу макроса Autoexec. Проверьте работу макросов, обрабатывающих события нажатия кнопок на кнопочной форме.
10. Подготовить главную кнопочную форму.
11. Разработать макросы для запуска объектов базы данных из главной
кнопочной формы.
12. Подготовить отчет по работе.
Контрольные вопросы
Рис. 6.1. Свойства командной
кнопки.
Рис. 6.2. Окно нового макроса.
3. В столбце Макрокоманда задается одна из 49 макрокоманд, предоставляемых Access. Выберите из комбинированного списка макрокоманду
Сообщение. Она используется для открытия монопольного окна диалога с
сообщением и кнопкой "OK". Это прекрасный способ для вывода в приложении различных предупреждающих или информационных сообщений без
создания для этого специальных форм.
После выбора макрокоманды Access выведет в нижней части окна макроса ее аргументы. Задайте аргументы макрокоманды Сообщение, руководствуясь подсказками, выводимыми в правой нижней части окна макроса.
4. Закройте окно макроса. При этом Access выведет окно диалога, в котором нужно ввести название макроса и нажать кнопку "OK", чтобы сохранить макрос.
5. Выделите кнопку "Ввод данных" и откройте окно свойств кнопки.
Создайте новый макрос для обработки события нажатия кнопки (п. 2).
6. Для кнопки "Ввод данных" создадим более сложный макрос. Этот
макрос должен открывать форму для ввода данных в режиме формы и открывать основную таблицу базы данных в режиме таблицы. Для открытия
формы применяется макрокоманда ОткрытьФорму. Для открытия таблицы
используется макрокоманда ОткрытьТаблицу. Задайте параметры для
этих макрокоманд, руководствуясь подсказками, выводимыми в правой
нижней части окна макроса. Сохраните макрос (п. 4).
7. Закройте и сохраните кнопочную форму.
8. При открытии базы данных всегда запускается специальный макрос с
именем Autoexec (если он существует). Для создания макроса Autoexec перейдите на вкладку Макросы в окне базы данных. Этот макрос должен открывать только что созданную кнопочную форму. Сохраните созданный
макрос, присвоив ему имя Autoexec.
PDF created with FinePrint pdfFactory trial version www.pdffactory.com
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
В каких случаях используются макросы?
Как привязать выполнение макроса к одному из событий формы?
Какие существуют способы создания макросов?
Как привязать выполнение макроса к элементу управления "Кнопка"?
Что такое макрокоманда? Как определяется последовательность выполнения макрокоманд?
Что такое аргументы макрокоманды? Где они задаются?
Где определяются условия выполнения макрокоманд?
Каким образом объединить макросы в одну группу?
Как осуществляется автоматизация вычислений с помощью макросов?
Как осуществляется замена команд меню с помощью макросов?
Как создать сообщение используя макросы?
Как произвести ускорение поиска в форме определенного значения в
одном и том же поле?
Где осуществляется пошаговое выполнение макроса?
Какие функции выполняет макрос AutoExec?
Содержание отчета
1.
2.
3.
4.
Титульный лист.
Название и цель выполнения работы.
Письменные ответы на заданные вопросы.
Виды разработанных макросов.
Download