Шаг 2. Выбрать внешний вид формы.
Рис. 3.3. Выбор внешнего вида формы
В данном случае вид формы значения не имеет, поэтому оставим форму В один столбец.
Шаг 3. Выбрать стиль формы.
Рис. 3.4. Выбор требуемого стиля формы
В правой части окна показан список возможных стилей. При указании стиля в левой части окна отображается пример формы. Выбираем стиль – «Камень».
Шаг 4. Задать имя формы.
Рис. 3.5. Указание имени формы и действия по завершении процесса создания
Это последний шаг проектирования формы с помощью мастера. Здесь задается имя, под которым форма будет сохранена в Базе данных, и указываются дальнейшие действия, которые следует предпринять по завершению работы с Мастером.
После завершения работы с Мастером (нажать на кнопку Готово) получаем форму для просмотра и редактирования данных таблицы Поставщики (рис. 3.6).
Рис. 3.6. Форма «Поставщики», полученная с помощью Мастера
Теперь на основании полученной формы можно в режиме Конструктора сформировать бланк отображения данных.
Для редактирования формы в режиме Конструктора можно воспользоваться одним из следующие способов:
· находясь в режиме просмотра формы нажать кнопку Вид ;
· в окне Базы Данных выбрать форму, затем нажать на кнопку Конструктор;
· в окне Базы Данных щелкнуть правой кнопкой мыши и воспользоваться командой Конструктор контекстного меню.
В режиме конструктора переместим элементы формы соответствующим образом, чтобы получить такое расположение полей данных, как в требуемом бланке отображения (рис. 3.7).
Рис. 3.7. Форма в режиме конструктора
Выполнение работы (варианты)
Создать форму в соответствии с вариантом задания.
1 Форму «Клиенты», отображающую следующие сведения о клиентах:
· Наименование
· ФИО_Руководителя
· Адрес
2. «Товары», содержащую следующие сведения о товарах:
· Наименование
· Цена
· Количество
· Стоимость
Рис. 3.8. Бланк сведений о товарах
сведения должны выводиться в бланке, представленном на рис. 3.8 Стоимость - вычисляемое поле. Значение вычисляется по формуле: Стоимость = Цена * Количество.
3. Отобразить сведения о поставщиках. По каждому поставщику отображать сведения о товарах (см. вариант 2) в табличном виде. Сведения о поставщиках отобразить на бланке, показанном на рис. 3.7.
4. Сведения о зарубежных клиентах. По каждому клиенту показать информацию о сделанных заказах. Поля клиентов выводить в ленточной форме, поля заказов - в столбец.
5. Информация о просроченных заказах, с истекшим сроком поставки.
6. Сведения о поставщиках и клиентах, сделавших заказ у этих поставщиков. Поля выводить в виде свободного бланка. На каждой странице формы отображать логотип организации-поставщика.
7. Бланк заказов. На бланке расположить поле со списком городов где проживают клиенты, сделавшие заказ. В подчиненной форме вывести сведения о клиентах, проживающих в указанной городе.
8. Сведения о зарубежных клиентах и обслуживающих их поставщиках. Продвижение по записям таблиц осуществлять с помощью кнопок, добавленных в форму.
9. Бланк регистрации клиента. Изменение поля КодКлиента запретить. Удаление записи о клиенте осуществлять с помощью кнопки, добавленной в форму.
10. Список заказанных товаров. В форму добавить кнопку запуска запроса на выборку, выводящего записи содержащие сведения о товарах, срок поставки которых совпадает с указанной датой. Дату указывать в поле формы.
11. Списки клиентов по поставщикам. С помощью кнопки запускать запрос на выборку, выводящий сведения о клиентах, проживающих в указанном городе.
12. Бланк регистрации заказа. Поставщика выбирать из раскрывающегося списка. Условия оплаты указывать с помощью переключателей.
Вопросы для самопроверки
1. Формы СУБД MS Access. Как создаются формы. Шаги построения формы.
2. Отчеты и элементы управления СУБД MS Access.
3. Типы данных СУБД MS Access.
Лабораторная работа №4.
Макросы MS Access
Определение и назначение
Макрос - это последовательность, состоящая из одной или нескольких макрокоманд, выполняющих определенные действия над записями данных базы данных. Это могут быть такие наиболее часто выполняемые действия как, например, открыть форму, выполнить запрос, вывести отчет на печать и другие. Макрокоманда, в свою очередь, - это основной компонент макроса замкнутая инструкция самостоятельно или в комбинации с другими макрокомандами определяющая выполняемые в макросе действия. Иногда их называют просто командами.
Предназначен макрос главным образом для автоматизации выполнения последовательности часто повторяющихся действий. Например, имеется база данных "Сотрудники". При работе с этой базой данных могут возникать следующие задачи: прием на работу нового сотрудника, увольнение сотрудника, поиск в базе данных сведений об определенном сотруднике, печать отчетов. При этом каждый раз приходится выполнять одну и ту же последовательность определенных действий. К примеру, чтобы в нашу базу данных ввести сведения о новом сотруднике, необходимо открыть форму "Сотрудники" в режиме добавления новой записи, ввести посредством данной формы новые записи, закрыть форму и вывести отчет о новых сотрудниках. Если подобную задачу приходится решать довольно часто, то имеет смысл создать макрос, включающий в себя макрокоманды, выполняющие перечисленные действия. Макрос можно назвать "Зачисление нового сотрудника". Теперь для ввода данных о новом сотруднике достаточно щелчком мыши запустить наш макрос, и все макрокоманды, одна за другой, последовательно будут выполнены в том порядке, в каком они записаны в макросе.
Макрокоманды
В этом макросе выполняется линейная последовательность команд. Первой командой открывается форма «Сотрудники» для добавления записей о новых сотрудниках. Вторая команда запускает запрос «Продажи по сотрудникам и странам». Последняя макрокоманда выдает в режиме просмотра отчет «Продажи по сотрудникам и странам». После чего макрос завершает свою работу.
Создание макросов
Линейные макросы
Как указывалось выше, для некоторой последовательности часто повторяющихся простых действий используют макросы линейной структуры, представляющие собой последовательность определенных макрокоманд. Эти макрокоманды выполняются в том порядке, как они записаны в макросе и последовательность выполнения не изменяется в зависимости от условий. Отсюда и условное название макросов такого типа.
Рис. 4.1. Вкладка Макросы окна базы данных
Рассмотрим способы создания макросов. Для начала следует напомнить, что макрос является объектом базы данных MS Access. Для того чтобы создать макрос, необходимо перейти на вкладку Макросы (рис 4.1) окна базы данных. Затем нажать кнопку Создать для создания нового макроса. В результате откроется окно конструктора, (макросы создаются только в режиме конструктора), в котором можно формировать макрокоманды с соответствующими аргументами, если необходимо. Как создавать собственно макрокоманды, мы и рассмотрим на примере простейшего линейного макроса.
Рис. 4.2. Окно конструктора нового макроса
Первый способ предполагает выбор макрокоманд из поля со списком Макрокоманда (рис. 4.2). При выборе макрокоманды из списка автоматически становится доступным раздел Аргументы макрокоманды, в котором имеется возможность выбрать аргументы, соответствующие выбранной команде. Под аргументами макрокоманды понимается уточняющие параметры. Например, для макрокоманды Открыть форму в качестве аргумента должны быть указаны следующие аргументы: имя открываемой формы, режим, в котором необходимо открыть форму, имя фильтра и условие отбора, режим ввода записей и режим окна вывода. Каждую макрокоманду можно также снабдить примечаниями. Для этого нужно внесли соответствующий текст в поле Примечание. Примечание никак не влияет на работу макрокоманды, но значительно упрощает понимание цели ее применения и помогает быстрее разобраться в макросах сложной структуры.
Второй способ заключается в использовании объектов базы данных (рис. 4.3). Так, например, если требуется создать макрос, открывающий форму, можно воспользоваться следующим приемом:
· Открыть вкладку Макросы окна базы данных.
· Нажать кнопку Создать.
· Используя соответствующие команды меню Окно, расположить окно базы данных и окно конструктора макроса таким образом, чтобы оба окна были видны полностью.
· В окне базы данных перейти на вкладку с объектами требуемого типа.
· В окне базы данных выбрать нужный объект и мышью перетащить его в окно Конструктора макроса в поле столбца Макрокоманда.
Рис. 4.3. Перетаскивание объекта базы данных в поле макрокоманд
В результате выполненных действий в окне Конструктора будет сформирована команда Открыть форму со всеми необходимыми атрибутами, принятыми по умолчанию.
Пример 1
Предположим, при работе с базой данных «Сотрудники», требуется выводить форму для просмотра или ввода сведений о сотрудниках, запрос «Продажи по сотрудникам и странам» и отчет по сотрудникам и продажам для просмотра. Для автоматизации выполнения этих действий создадим макрос «Работа с сотрудниками».
![]() | 1. На вкладке Макросы нажать на кнопку Создать. 2. С помощью команды Слева направо меню Окно расположить рядом окна конструктора макросов и окно базы данных. 3. В окне базы данных перейти на вкладку Формы. 4. В колонку Макрокоманда конструктора макросов из окна базы данных перетащить мышью значок формы Сотрудники. 5. Изменить аргументы макрокоманды, выбрав режим данных Добавление. |
6. По аналогии с пп. 3, 4 сформировать макрокоманды ОткрытьЗапрос и ОткрытьОтчет.
7. Изменить аргумент макрокоманды ОткрытьОтчет Режим, выбрав значение Просмотр.
Созданный макрос решает поставленную нами задачу - последовательно открывает форму «Сотрудники» для добавления новых данных, запрос «Продажи по сотрудникам и странам» в режиме таблицы для изменения данных и одноименный отчет для просмотра.
Макросы с условиями
В ряде случаев требуется, чтобы некоторые действия макроса могли выполняться лишь при выполнении определенных условий. Так, например, в нашей базе данных при достижении некоторого среднего значения стоимости заказа должен выводиться итоговый отчет по продажам.
Процесс создания макроса остается таким же, как и в случае с линейным макросом, необходимо лишь добавить условие проверки. Для того, чтобы добавить условие, можно воспользоваться одним из нижеперечисленных действий.
· ![]() | ![]() |
В результате в бланке конструктора макросов появится еще одна колонка - Условие (рис. 4.4). В этой колонке с помощью логических операторов и функций формируется логическое выражение проверки Условие. Если условие выполняется (значение логического выражения - «ИСТИНА»), то выполняются команды, записанные в строке с условием и все последующие, в которых в ячейке Условие содержится символ «..» (две точки подряд) до строки с другим условием или до конца макроса. В том случае, если условие не выполняется (значение логического выражения - «ЛОЖЬ»), эти команды пропускаются, и выполнение макроса продолжается с команды, указанной в следующей строке или команды содержащей пустую ячейку Условие.
Рис. 4.4. Окно конструктора макроса с условиями
Пример 2
Пусть требуется выводить отчет по сотрудникам и продажам в том случае, если средняя стоимость заказов превысила сумму 2000 рублей. Для решения задачи создадим макрос с условием. Ниже приведем последовательность действий, предпринятых при создании этого макроса.
1. Создать новый макрос.
2. В окне конструктора макроса нажать кнопку Условия.
3. Описанным выше способом вставить макрокоманду ОткрытьФорму, которая будет открывать форму «Заказано (средняя цена)», содержащую вычисляемое поле для определения среднего значения цены заказов.
4. В колонке Условия следующей строки ввести логическое выражение для проверки условия. При этом можно воспользоваться Построителем выражений (рис. 3.5). Для этого необходимо нажать кнопку Построить в панели
инструментов Конструктор макросов или воспользоваться контекстным меню в ячейке Условие строки соответствующей макрокоманды. Используя элементы Построителя выражений, сформировать условие проверки значения средней цены заказанных товаров: [Forms]![Заказано(средняя цена)]![Avg_Цена]>20000. | ![]() |
Рис. 4.5. Окно Построителя выражений
5. В ячейке Макрокоманда этой же строки, где задано условие, ввести макрокоманду ОткрытьОтчет- эта макрокоманда будет выполняться всякий раз, когда средняя цена заказа будет превышать сумму 2000 рублей, отображая отчет «Продажи по сотрудникам и станам».
В результате выполненных действий мы создали простейший макрос с условием, позволяющий решить конкретную задачу - выдача отчета по продажам при средней цене заказов, превышающей 2000 рублей. Данный макрос выдает отчет лишь в том случае, когда выполняется заданное условие.
Группа макросов
В сложных формах базы данных может содержаться большое количество различных элементов управления, поля с особыми свойствами, может осуществляться обработка нестандартных событий. Как правило, эти элементы связаны с соответствующими макросами. Иногда база данных может содержать несколько десятков различных макросов. Ориентироваться в таком большом множестве бывает не очень удобно. В таких случаях для того, чтобы упростить управление базой данных, создают группу макросов.
Группа макросов - это набор связанных макросов, сохраняемых под общим именем. При этом каждая группа может «специализироваться» либо по объектам, либо по определенным действиям. Например, может быть создана группа макросов для активных элементов формы «Сотрудники» или группа макросов для вывода на печать из различных объектов базы данных.
Группа макросов представляет собой объединение различных макросов (чаще родственных по своему назначению) в одном объекте. Причем в одной группе могут быть как простые линейные макросы, так и сложные макросы с условиями разветвленной структуры. Макросы внутри каждой группы различаются по их именам. Имя макроса группы состоит из двух частей, разделенных точкой - Имя_Группы.Имя_Макроса. Например, имя макросу выводящего отчет на печать и который содержится в группе «Печать», может выглядеть так Печать.ПечатьОтчета_Продажа. Для запуска конкретного макроса из группы необходимо указать его полное имя. Для идентификации каждого макроса, включаемого в группу, конструктор макросов имеет столбец Имя макроса.
Создание группы макросов создается в том же самом окне конструктора макросов и технология создания практически не отличается от создания уже рассмотренных макросов. Отличие состоит лишь в необходимости включения имени макроса.
![]() | Для того чтобы включить колонку с именами макросов в окне конструктора следует нажать кнопку ![]() |
Рис. 4.6. Окно конструктора группы макросов
Теперь можно приступать к формированию группы макросов. Для каждого макроса внутри группы должно быть введено имя в столбце Имя макроса. Затем следует сформировать макрокоманды данного макроса (способы формирования макрокоманд и их аргументов описаны выше). При этом в ячейки Имя макросамакрокоманд остаются пустыми. Для того чтобы начать ввод макрокоманд другого макроса, необходимо в строку первой макрокоманды ввести имя. Процесс повторяется для всех макросов группы.
Когда производится запуск макроса группы, макрокоманды выполняются до тех пор, пока не произойдет одно из следующих событий:
· в столбце Имя макроса встретилось имя другого макроса;
· встретилась пустая строка;
· была выполнена макрокоманда ОстановитьМакрос;
· была выполнена макрокоманда ОстановитьВсеМакросы;
· достигнут конец группы макросов.
Пример 3
Пусть требуется создать макрос, обеспечивающий взаимодействие с базой данных по всем требуемым действиям просмотр необходимых форм и отчетов, выдача отчетов при достижении определенного значения средней цены заказов и печать данных, полученных из запросов.
Для решения поставленной задачи создадим группу макросов, включающую ранее созданные макросы
1. Создать новый макрос.
2. В окне конструктора макроса нажать кнопку Имена макросов.
3. В ячейке Имя макроса первой макрокоманды ввести имя первого макроса группы – «Вход».
4. Выполнить действия, описанные в пп. 2-7 примера 1 для формирования макрокоманд макроса – «Работа с сотрудниками».
Совет: для включения в макрос группы макрокоманд из обычного макроса можно воспользоваться следующим приемом:
· Открыть существующий макрос в режиме конструктора;
· Выделить строки макрокоманд обычного макроса;
· Скопировать выделенные макрокоманды в буфер обмена;
· Открыть окно группы макросов в режиме конструктора;
· Установить курсор в первую строку, начиная с которой предполагается вставить макрокоманды;
· Вставать макрокоманды из буфера обмена.
5. Внести имя следующего макроса - «Отчетность»;
6. По аналогии с п. 4 ввести макрокоманды макроса «Отчет периода»;
7. В следующей строке ввести имя макроса – «Печать сведений»;
8. Сформировать макрокоманды печати отчетов «Сотрудники», «Промежуточная сумма заказа» и «Продажи по сотрудникам и странам»;
9. Сформировать макрос «Выход», включающим макрокоманды обеспечивающие подготовку к завершению работы и выходу из MS Access;
10. Сохранить макрос, присвоив ему имя «Учет деятельности»;
Группа макросов «Учет деятельности», полученная в результате выполнения вышеперечисленных действий, приведена в таблице 1.
Таблица 1. Макрокоманды группы макросов «Учет деятельности»