
- •Оглавление
- •1. Цель работы 23
- •2. Основы теории 23
- •1. Введение
- •2. Общие требования и методические указания к подготовке и выполнению лабораторных работ
- •3. Правила техники безопасности при выполнении лабораторных работ
- •4. Правила оформления и сдачи отчётов по лабораторным работам
- •Построение логической модели
- •3. Объекты и средства исследования
- •4. Подготовка к работе
- •Варианты заданий
- •6. Контрольные вопросы
- •Модификация структуры таблицы
- •Создание индекса для одного поля
- •Установка первичного ключа
- •Окно диалога «Схема данных»
- •Связывание двух полей одной таблицы
- •Создание между таблицами отношения «многие-ко-многим»
- •Изменение структуры таблицы в окне диалога «Схема данных»
- •Изменение существующей связи
- •Удаление таблицы из макета схемы данных
- •Определение условий целостности данных
- •Простейший способ создания формы
- •Создание кнопок управления
- •Использование линий и прямоугольников
- •3. Объекты и средства исследования
- •4. Подготовка к работе
- •Использование в запросах вычислимых полей
- •Объединение критериев нескольких полей
- •Объединение двух таблиц
- •Условие отбора в многотабличных запросах
- •Итоговые запросы
- •Группировка по нескольким полям
- •Включение в запрос выражений
- •Изменение наименований итоговых полей
- •3. Объекты и средства исследования
- •4. Подготовка к работе
- •1. Цель работы
- •2. Основы теории
- •6. Контрольные вопросы
- •Лабораторная работа №5 построение запросов в access с помощью sql
- •1. Цель работы
- •2. Основы теории
- •1. Инструкция select
- •2. Инструкция select...Into
- •3. Инструкция insert into
- •9. Статистические функции sql
- •6. Контрольные вопросы
- •Лабораторная работа № 6 разработка интерфейса прикладных программ с базами данных на основе технологии ado
- •Цель работы
- •Основы теории
- •Обзор компонент
- •Пример работы с отложенными изменениями
- •События ado
- •События выполнения команд
- •События выборки данных
- •Уведомления об изменении положения текущей записи в наборе.
- •Уведомления об изменении набора данных
- •Асинхронная работа с сервером
- •Асинхронное соединение
- •Асинхронное выполнение команды
- •Асинхронная выборка данных
- •Библиографический список рекомендуемой литературы
- •Приложение варианты примерных предметных областей для выдачи заданий лабораторных работ по бд
1. Цель работы
Получить навыки использования макросов в СУБД Access для решения различных задач.
2. Основы теории
Приложение пользователя, как правило, образуется объединением некоторого множества задач предметной области. Задача может быть определена как совокупность действий по формированию выходной информации на основе входной информации. Выходной информацией являются печатные документы, видеограммы, файлы, сообщения, содержащие результаты решения и имеющие определенное назначение в данной предметной области. Входной информацией задачи являются данные входных документов, файлов базы данных и входные параметры решения задачи.
Рис. 4.1.
Для того чтобы решить задачу пользователя средствами СУБД, необходимо сначала спроектировать эту задачу. При реализации задач широко используются объекты Access: формы, запросы, отчеты, ориентированные на конечного пользователя, не являющегося программистом. При проектировании необходимо выполнить постановку и алгоритмизацию задачи на основе исходной базы данных.
Наряду с такими объектами, как формы, запросы и отчеты для реализации практических задач пользователя, приходится использовать средства программирования: язык макросов и язык Basic. Макросы и модули на Visual Basic оперируют этими объектами и объединяют разрозненные действия в единую задачу пользователя.
Рис. 4.2.
Решающим этапом создания приложения является конструирование интерфейса приложения пользователя, объединяющего технологию обработки данных предметной области, которая означает загрузку, ведение базы данных и решение всего комплекса задач.
Основы создания макросов
Язык макросов является языком программирования, который позволяет реализовать задачи пользователя, выполняя необходимые действия над объектами Access и их элементами.
Макрос — программа, состоящая из последовательности макрокоманд. Макрокоманда — это инструкция, ориентированная на выполнение определенного действия.
Например, макрокомандой можно открыть форму, отчет, напечатать отчет, запустить на выполнение запрос, применить фильтр, присвоить значение, создать свое меню для формы или отчета.
Язык макросов обеспечивает возможность выполнения большинства задач, не прибегая к программированию на Visual Basic. Макросы, являясь надстройкой над Visual Basic, обеспечивают пользователя средствами решения задач, не требующими знания программирования. Язык макросов является языком более высокого уровня, чем Visual Basic.
Макросы определяют набор методов обработки объектов. В системе имеются средства, обеспечивающие взаимодействие макросов с объектами на основе событий. События наступают при свершении определенных действий, к которым относятся прежде всего действия пользователя. Последнее обстоятельство позволяет управлять выполнением программы извне. Пользователь, выполняя различные действия в формах, инициирует выполнение макросов, автоматизирующих решение подзадач.
Наличие аппарата запуска программ через события не исключает возможности написания программ на языке макросов, которые без вмешательства пользователя могут решать нужные задачи. Пользователь запускает программу на выполнение и далее все управление осуществляется изнутри. Программа сама открывает необходимые объекты, выбирает и обрабатывает данные, вызывает другие макросы, следуя алгоритму. При необходимости программа инициирует диалог с пользователем.
Конструирование макроса
Создание макросов осуществляется в диалоговом режиме и сводится к записи в окне макроса последовательности макрокоманд, для которых задаются параметры. Каждому макросу присваивается имя. При выполнении макроса макрокоманды выполняются последовательно в порядке их расположения. При этом используются объекты или данные, указанные в аргументах макрокоманд. Имеется возможность определить условия выполнения макрокоманды.
Создание макроса начинается в окне базы данных, где надо выбрать закладку Макросы (Macros) и нажать кнопку Создать (New). После этого открывается окно макроса.
Формирование макрокоманд в окне макроса
Макрокоманды, составляющие макрос, вводятся в столбец Макрокоманда (Action). Для ввода макрокоманды можно нажать кнопку раскрытия списка макрокоманд в этом столбце и выбрать нужную. Можно ввести имя макрокоманды с клавиатуры.
В нижней части окна выводятся Аргументы макрокоманды (Action Arguments). Значения аргументов задаются путем выбора их из списка, открывающегося в строке аргумента. В поле справа от строк аргументов выводится сообщение с пояснениями для выбранного аргумента.
В строки столбца Примечание (Comment) вводят необязательный комментарий, описывающий результат выполнения макрокоманды. Каждая новая макрокоманда макроса добавляется в следующей строке бланка. Порядок размещения макрокоманд в бланке определяет последовательность их выполнения.
Столбец Условие (Condition) вызывается в окно макроса нажатием соответствующей кнопки на панели инструментов. Условие задается с помощью логического выражения. Для образования набора макрокоманд, которые нужно связать с выполнением условия, в их условии записывается многоточие (...).
Соответственно объекту могут быть созданы макрокоманды ОткрытьТаблицу (ОрепТаblе), ОткрытьФорму (OpenForm), ОткрытьЗапрос (OpenQuery), ОткрытьОтчет (OpenReport), ОткрытьМодуль (OpenModule) или ЗапускМакроса (RunMacro).
Макрокоманда ЗапускМакроса (RunMacro) имеет следующие параметры: Число повторений (Repeat Count) вызова макроса. Условие повторения (Repeat Expression) — логическое выражение. При значении Ложь (False) повторное выполнение не происходит. Эта команда позволяет реализовать циклы в программах на языке макросов. Если аргументы не даны, вызванный макрос выполняется один раз.
Для организации ветвлений в программе нужно наряду с условиями можно использовать макрокоманду ОстановитьМакрос (StopMacro).
Макрокоманда Свернуть (Minimize) позволит свернуть окно, которое было активным в момент запуска макроса на выполнение. Если макрос запускается на выполнение из окна базы данных и кроме этого окна нет открытых окон, на экране будет отображено только свернутое окно базы. Обратная операция – Развернуть.
Макрокоманда СдвигРазмер (MoveSize) позволяет задать размер и местоположение окна активного объекта. Выполнение макрокоманды после открытия таблицы изменяет параметры окна таблицы.
Макрокоманда УстановитьСообщения (SetWarnings) отключает вывод на экран окон сообщений с предупреждениями на время выполнения макроса.
Макрокоманда ВыделитьОбъект (SelectObject) делает текущей указанную в аргументе форму. Это позволяtn в следующих макрокомандах выполнять команды меню для этого объекта.
Макрокоманда КЭлементуУправления позволяет перевести фокус на указанный элемент.
Макрокоманда ОтменитьСобытие позволяет отменить событие, повлекшее вызов макроса.
Макрокоманда НаЗапись (GoToRecord) позволяет задать текущей указанную запись в форме. Имя этой формы указывается в аргументах макрокоманды. В аргументе Запись (Next) указывается, какая запись должна стать текущей.
НайтиЗапись и Следующая запись позволяют выбрать записи по условию. Также ПрименитьФильтр (ПоказатьВсеЗаписи – отмена фильтра)
С помощью команды ЗадатьЗначение (SetValue)допускается определение свойств объектов Форма (Form), Отчет (Report) и Элемент управления (Control), значений свойств разделов формы или отчета.
Для импортирования (экспортирования), переноса данных, установления связи, могут быть использованы команды ПреобразоватьЭлектроннуюТаблицу, ПреобразоватьБД, ПреобразоватьТекст, ПереносБазыДанныхSQL, ВывестиВФормате.
Создание группы макросов
Группа макросов создается как один макрос, в котором содержится несколько макросов, например, связанных с решением одной задачи или используемых при работе с одной формой. Создания группы макросов нужно вызвать столбец Имя макроса (Macro Name). Он появляется, если нажать кнопку Имена макросов (Macro Names) на панели инструментов. В ячейку Имя макроса (Macro Name) надо ввести имя первого макроса, входящего в группу макросов. Затем записать макрокоды, выполняемые в первом макросе. Аналогичным образом ввести имена других макросов и их макрокоманды. Все макросы, созданные в одном окне, будут составлять одну группу.
Для ссылок на макросы, которые вошли в группу макросов, используется следующий синтаксис:
имяГруппыМакросов.имяМакроса
Задание ссылок на объекты БД и формирование логических условий
При программировании задач на языке макросов для обработки данных необходимо ссылаться на объекты Access, элементы управления и их свойства, чтобы оперировать значениями полей, элементами управления или свойствами. Это ссылки на такие объекты, как таблицы, формы, отчеты, их элементы и свойства.
Ссылаться на объекты можно по имени, но если учесть, что в Access объекты объединяются в семейства, таблицы объединены в семейство Таблицы (Tables), формы — в семейство Формы (Forms), отчеты — в семейство Отчеты. Поэтому ссылка на объект включает имя семейства и через восклицательный знак имя объекта. Если имя включает специальные символы, его надо брать в квадратные скобки.
С
сылки
на объекты, элементы управления и
свойства удобно задавать с помощью
построителя выражений. В открывшемся
окне Построитель
выражений (Expression
Builder)
надо ввести или вставить элементы
выражения в поле записи выражений.
Рис.4.3
Для того чтобы вставить ссылку в поле записи выражений, выделите в нижней половине окна построителя элементы, определяющие эту ссылку, и дважды нажмите кнопку мыши или нажмите кнопку Вставить (Paste). Помимо этого здесь доступны операторы и функции, которые могут быть использованы в условии макроса.
Примеры логических выражений в условии выполнений макрокоманды
♦ Проверка в текущей записи формы, из которой запускается макрос, значения в поле Имя на равенство Имя = «Марина»;
♦ нахождения значения в интервале не раньше 2-фев-07 и не позже 2-мар-07
[Дата] Between #2-фев-07# And #2-мар-07#;
♦ значения в поле Имя на равенство пустому (Null) значению
IsNuII([Имя]) или [Имя] Is Null.
Функция MsgBox может.быть использована для вывода на экран окна диалога, содержащего нужное сообщение, и кнопок ОК и Отмена (Cancel), нажатие которых формирует одно или другое значение функции.
♦ Сравнение сформированного функцией MsgBox значения с заданным позволяет выбрать пользователю вариант действий:
МsgВох("Выдать справку?";1 )=1.
Нажатый параметр функции задает выводимое на экран сообщение. Единица на месте второго параметра определяет отображение в окне диалога кнопок ОК и Отмена (Cancel). Если пользователь нажимает кнопку ОК, функция возвращает значение 1, нажимает кнопку Отмена (Cancel), функция возвращает 2.
Запуск макроса
Запуск макроса из его окна. Для запуска макроса из его окна надо нажать кнопку Запуск (Run) на панели инструментов.
Запуск макроса из окна базы данных. Для запуска макроса из окна базы данных надо на закладке Макрос (Macros) установить курсор на имя макроса и дважды щелкнуть кнопкой мыши или нажать кнопку Запуск (Run).
Запуск макроса из любого окна Access. Для запуска макроса из любого окна Access надо выполнить команду меню Сервис|Макрос (Tоols|Macrp...) и ввести в окне диалога Запуск макроса (Run Macro) имя макроса в поле Имя макроса (Macro Name).
Автоматический запуск макроса при открытии базы данных.
Пользователь имеет возможность создать макрос, запускающий при каждом открытии базы данных. Этот макрос отличается только тем, что должен иметь имя AutoExec. В процессе откры-базы данных Access осуществляет поиск макроса с этим именем и, если такой макрос существует, автоматически запускает его. В макросе AutoExec целесообразно поместить макрокоманды, которые подготовят нужную рабочую среду для пользователя.
Выполнение макроса с наступлением события
Access предоставляет возможность автоматически инициировать выполнение макроса при наступлении некоторого события. Для связи макроса с событием достаточно в бланке свойств объекта или его элемента управления внести в строку этого события имя макроса. События, с которыми можно связать макрос, определяются в свойствах форм и отчетов и их элементах управления. Событиями, например, являются открытие отчета, ввод новых данных в элемент управления в форме или перевод фокуса на другую запись или поле в форме, щелчок мышью. Существуют события формы, события элемента управления, события записи и раздела формы, события отчета и раздела отчета. Порядок выполнения макросов в этом случае зависит от порядка возникновения событий и в значительной степени определяется действиями пользователя в формах. При этом управление программой в основном осуществляется пользователем, который выполняет действия, а программа реагирует на них.
Пусть необходима обработка данных при добавлении записей через форму. Если эта обработка реализуется некоторым макросом, то для автоматического запуска этого макроса можно использовать события До вставки (Before Insert) и После вставки (After Insert), которые являются событиями формы. Событие До вставки (Before Insert) наступает при вводе пользователем первого символа в новую запись, но до фактического добавления записи в базу данных. Событие После вставки (After Insert) наступает после добавления новой записи в базу данных.
Пусть необходима обработка данных при обновлении значения в поле записи через форму. Для автоматического запуска макроса, выполняющего такую обработку, можно использовать события До обновления (Before Update) и После обновления (After Update), которые являются как событиями формы, так и событиями ее элементов управления. Событие До обновления (Before Update) наступает, когда пользователь приступает к обновлению данных в элементе управления или записи. Событие После обновления (After Update) наступает после обновления данных в элементе управления или записи. Данное событие возникает при потере фокуса элементом управления.
Последовательность возникновения событий при закрытии формы и при переходе с одного элемента управления на другой. Когда пользователь закрывает форму, для текущего элемента управления возникают события Выход (Exit) и Потеря фокуса (LostFocus), а также события формы, такие как Выгрузка (Unload), Отключение (Deactivate) или Закрытие (Close). Порядок возникновения событий будут следующим:
Выход => Потеря фокуса => Выгрузка => Отключение => Закрытие.
Когда пользователь переводит курсор (фокус) на другой элемент управления, для элемента, с которого переводится курсор, сначала возникает событие Выход (Exit), а затем Потеря фокуса (Lost Focus); для элемента, на который переводится курсор, сначала возникает событие Вход (Enter), а затем Получение фокуса (Got Focus).
5. ПРОГРАММА РАБОТЫ
Ознакомьтесь с теоретическими положениями.
Введите данные (условные) в табличной форме в Excel в соответствии со структурой, указанной в варианте;
№ |
ФИО студента |
№ зачетки |
Дисциплина |
Вид ИА |
Дата сдачи |
Оценка |
|
|
|
|
Экзамен|зачет |
Текущая дата |
|
Создайте макрос, который импортирует данных электронной таблицы Excel в Access, открывает содержащую их таблицу с заданным расположением на экране, копирует ее в другую БД.
Создайте форму для ввода и редактирования таблицы БД. Текущая дата вводится автоматически при щелчке на поле. Предусмотреть контроль введенных значений поля «Вид ИА» – при попытке ввести некорректное значение откат к предыдущему значению. Установить при двойном щелчке на одно из полей вывод отчета, содержащего данные с указанным в текущей записи значением (например, при щелчке на поле «дисциплина» выдается отчет, содержащий итоги сдачи экзаменов/зачетов по указанной в поле дисциплине…). Все макросы должны быть в одной группе (составной макрос).
С использованием макроса вывести форму, установить текущей последнюю запись. По запросу пользователя установить фильтр по одному из полей (например, по оценке), изменить заголовок формы. Найти все записи, у которых поле «оценка» пустое, занести в них слово «неявка».