Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Информатика_Семестр1_Практическая3

.pdf
Скачиваний:
14
Добавлен:
05.06.2015
Размер:
1.18 Mб
Скачать

в меню выбрать –мастер;

в списке источников данных последовательно выбрать нужные таблицы (запросы) и поля, включаемые в отчёт. Если данные необходимо объеденить в группы, то следует выбрать поля группировки;

выбрать условие группировки. По умолчанию данные группируются по одинаковым значениям группируемых полей. Для числовых данных можно выбрать интервал группировки;

выбрать порядок сортировки записей в отчёте (до 4х уровней);

выбрать поле и порядок сортировки, если она нужна;

если в отчёте должны выводиться итоги (как правило – всегда), нажать на кнопку «Итоги…» и указать для каких полей и что хотим подсчитать(SUM, MAX,…),

выбрать макет отчёта (его вид демонстрируется в поле «образец»);

выбрать ориентацию (книжную или альбомную) и стиль;

задать имя отчёта.

2.1.3. Режим конструктора

Врежиме Конструктора можно создать новый отчёт или отредактировать отчёт, созданный вс помощью Мастера. Чтобы открыть существующий отчет, его надо выбрать в окне Базы данных и войти в режим Конструктора.

Вобщем случае отчёт состоит из нескольких областей.

Заголовок отчёта. Расположен на первой странице отчёта перед верхним колонтитулом. Если области заголовка нет в окне, то включить её можно через меню Вид.

Верхний колонтитул. Поумолчанию эта область помещается на каждую страницу отчёта. В ней размещают заголовки колонок отчёта.

Заголовок группы. Используется эта область если в отчёте предусмотрена группировка данных. В ней размещают имя группы, но можно размещать и вычисляемые поля, содержащие итоговые группоаые значения.

Область данных. Здесь содержится основная часть отчёта – значения полей каждой записи.

Примечание группы. В этой области, как правило, размещают итоги по группам –суммы, среднее и т. д.

Нижний колонтитул. Эта область присутствует на каждой странице отчёта. Используется для нумерации страниц (функция =PAGE ), вывода дат

(функция =DATE()).

Примечание отчёта. Располагается на последней страницы отчёта. Может содержать итоги по всему отчёту, диаграммы.

В режиме конструктора на экране присутствует панель элементов и список полей выбранной таблицы (запроса). Вид их такой же, как у форм.

Конструктор создаёт отчёт только по одной таблице. Если в отчёт надо включать данные из нескольких источников, то сначала создаётся отчёт с помощью мастера, а затем он редактируется конструктором.

21

В области данных и в области примечаний группы и всего отчёта можно размещать вычисляемые поля, полещая в них выражения или обращения к стандартным функциям, как и в формах. Если вычисляемое поле для итогов, оно размещается в области примечаний группы или отчёта. Кроме этого в отчёте можно вычислять долю конкретного значения от общего или группового (вычислять процент). Это возможно потому, что Access дважды проходит по формируемому отчёту. В первом проходе вычисляются выражения в детальных строках, итоги по группам и в целом. При втором пароходе выполняются вычисления ссылающиеся на общий итог.

В области данных можно создавать нумерацию строк, сквозную по всему отчёту, либо в пределах одной группы. Для этого в область данных отчёта помещается свободное поле и в свойстве этого поля Данные указать =1

.Также можно нумеровать группы. В этом случае это поле создаётся в области заголовка группы.

Для того чтобы в отчёт не выводить повторы групповых полей ( например название фирмы для разных её изделий), надо в свойстве этого поля

Не выводить повторы занести – Да.

Создадим отчёт о продаже путёвок по произвольно задаваемым странам. Этот отчёт будет создаваться на основе запроса Z1 по двум таблицам

Tur и Agnt:

SELECT Tur.ShT, Tur.Str, Agnt.Agn, Agnt.KolPt FROM Tur INNER JOIN Agnt ON Tur.ShT=Agnt.ShT

WHERE Str IN ([вв страну1],[вв страну2]); Для создания этого отчёта используем Мастер:

в окне Базы данных выбрать – отчёты – создать. Появляется окно

«Новый отчёт»;

в меню выбрать –мастер;

в списке источников данных выбераем запрос Z1 и поля включаемые в отчёт – Str, Sht, Agn, KolPt. Выбираем поля группировки – Str и Sht;

Для вывода итогов кнопка «Итоги…» и указать поле KolPt по которому будем считать сумму(SUM) и находить процент для групп от общего;

макет отчёта – деловой;

ориентация - книжная;

задаём имя отчёта - TUR.

Созданный мастером отчёт редактируем в режиме конструктора:

меняем заголовок и все подписи на русские;

в примечание группы помещаем вычисляемое поле с выражением (=Count(Agn)), для подсчёта количества агентств, продававших путёвки на тур

ивычисляемое поле для нумерации агентств в каждой группе с выражением (=1), в свойстве этого поля указываем , что нумерация ведётся внутри группы;

Отредактированный отчёт в режиме конструктора представлен на рисунке 2.2. Для примера мы создали отчёт для туров в Кипр и Грецию. Отчёт в режиме просмотра – на рисунке 2.3.

Рис. 2.2 Отчёт о продаже путёвок в режиме Конструктора

Рис. 5.3 Отчёт опродаже путёвок

23

Глава 3. Макросы

3.1. ПОНЯТИЕ МАКРОСА.

Макрос представляет собой набор макрокоманд, создаваемый для автоматизации часто выполняемых задач. Если каждый день пользователь выполняет одни и те же действия с объектами базы данных (БД), то имеет смысл запомнить их в виде отдельного объекта БД и вызывать на выполнение автоматически, не вводя каждый раз команды в интерактивном режиме.

Макросы существуют во всех приложениях Office, но создаются они поразному. В большинстве приложений при создании макроса происходит автоматическое запоминание всех действий пользователя. При создании макроса в Access пользователь должен формировать макрос из имеющихся макрокоманд, вводя их явно. Пользователь как бы создает программу на языке макрокоманд. Затем этот набор макрокоманд запоминается в виде отдельного объекта БД.

Макрос, будучи однажды создан, может затем многократно использоваться в различных ситуациях. Его можно запускать автономно, вводя соответствующую команду с клавиатуры, можно обеспечить выполнение макроса при наступлении некоторого события, можно вызывать на выполнение из другого макроса.

3.2. СОЗДАНИЕ И КОРРЕКТИРОВКА МАКРОСОВ.

Имена существующих макросов отображаются на вкладке «Макросы» окна БД. Как и для других объектов БД, для макросов предусмотрены два режима: режим конструктора и режим выполнения. Создается и корректируется макрос в режиме конструктора.

Для создания нового макроса нужно щелкнуть кнопку «создать» на вкладке «Макросы». Раскрывается окно, содержащее бланк макроса. В каждой строке этого бланка записывается одна макрокоманда. В нижней части окна, под бланком, выводятся области для ввода аргументов макрокоманды. В нижней части окна также выводятся пояснения к макрокоманде.

Аргументы у различных макрокоманд разные, поэтому и области для их ввода различны.

Бланк для создания макроса может иметь различное число граф (колонок). Наиболее простая структура бланка – две графы. В левой графе пишется название макрокоманды, в правой – примечание. Такую форму бланка можно применять для создания макросов, не имеющих в своем составе условий выполнения макрокоманд и имен макросов.

Название макрокоманды можно ввести с клавиатуры, но проще выбрать его из списка макрокоманд, разворачивающегося при щелчке по значку списка в строке. Значения аргументов выбираются из списка (если состав возможных значений фиксирован) или вводятся с клавиатуры.

Примечание к макрокоманде не является обязательным. Это любой текст, с помощью которого создатель макроса хочет пояснить действия макрокоманд.

В макросе можно задавать условия выполнения одной или нескольких макрокоманд. Таким способом можно реализовать разветвления в алгоритме решения задачи. В этом случае требуется бланк с тремя или четырьмя графами. Для того, чтобы бланк принял соответствующий вид, нужно активизировать кнопку «условия» на панели инструментов окна конструктора (или установить флажок в команде «условия» меню Вид). Бланк примет форму, показанную на рис. 3.1.

Рис.3.1. Вид бланка макроса с графой «условие».

В левой графе строки записывается условие выполнения данной макрокоманды. Если какая-либо макрокоманда должна выполняться всегда, то графа «условие» для такой макрокоманды остается пустой.

Условие записывается, как правило, в виде выражения логического типа. Если одно и то же условие должно распространяться на группу из нескольких подряд расположенных макрокоманд, то оно записывается в первой строке группы, а в последующих строках группы в графе «условие» пишут многоточие.

Действие условия. Если условие выполняется (выражение, описывающее его, имеет значение «истина» или -1), то выполняется макрокоманда, для которой оно записано, и следующие макрокоманды с символами многоточия в графе «условие». Если условие не выполняется (выражение имеет значение «ложь» или 0), то эта и последующие макрокоманды с символами многоточия в графе «условие» не выполняются. Выполняется первая из последующих макрокоманд, в графе «условие» у которой пусто или содержится другое условие.

Допустим, макрос содержит пять макрокоманд, условно названных так: команда1, команда2, команда3, команда4, команда5, и имеет вид:

Условие

Макрокоманда

Примечание

 

Команда1

 

25

Условие1

Команда2

 

Команда3

 

Команда4

 

Команда5

 

Если «Условие1» выполняется, то при выполнении данного макроса выполняются все макрокоманды. Если это условие не выполняется, то выполнятся команды: Команда1, Команда5.

Правила записи выражений для условия такие же, как и для выражений в запросах, формах, отчетах. Если в выражении используется имя элемента формы или отчета, которые не являются активными, то следует указывать уточненные имена, например:

FORMS ! [имя формы] ! [имя элемента]

или REPORTS ! [имя отчета] ! [имя элемента]

В выражении, описывающем условие, можно также задавать ввод параметра с клавиатуры.

Бланк макроса, содержащий четыре графы, появляется, если щелкнуть кнопки «условия» и «имя макроса» на панели инструментов (или поставить флажки в соответствующих командах меню Вид). Тогда бланк конструктора макроса имеет вид, изображенный на рис. 3.2.

Рис.3.2. Бланк макроса с четырьмя графами.

Графа «Имя макроса» в этом бланке используется при создании групп макросов (макрогрупп). Возможен вариант бланка, в котором присутствуют три графы: имя макроса, макрокоманда, примечание (если в макросе отсутствуют условия).

После того, как все макрокоманды введены, макрос следует сохранить, присвоив ему имя. Аргументы макрокоманд запоминаются вместе с макрокомандами. Макрос запоминается как единый объект и его имя появляется на вкладке «Макросы» окна БД.

Для корректировки макроса его надо открыть в режиме конструктора. Появляется изображение бланка, в каждой строке которого содержится одна макрокоманда макроса. Можно исправлять макрокоманды и их аргументы, добавлять новые макрокоманды, удалять ненужные.

Для вставки новой макрокоманды нужно выделить строку, перед которой будет располагаться новая макрокоманда, и выполнить команду Строки из меню Вставка. Появится пустая строка, которая и заполняется новой макрокомандой.

Для удаления надо выделить удаляемые строки и нажать клавишу

Delete.

3.3. МАКРОКОМАНДЫ.

Приведем перечень и краткую характеристику макрокоманд, объединенных в группы по их назначению. Названия макрокоманд выделены жирным шрифтом.

Макрокоманды для работы с данными.

НаЗапись. Активизирует указанную запись в наборе данных. В случае вывода записей на экран выбранная запись выделяется. Используется при работе с таблицами, формами, запросами. Применяется к открытому объекту БД.

Аргументы: тип объекта, имя объекта, запись, смещение.

Значения аргументов проще всего выбирать из списков возможных значений, раскрывающихся в соответствующих полях. Если первый аргумент не задан, то и второй не нужно указывать. В этом случае команда применяется к активному в данный момент объекту.

Значения аргумента «запись» выбирается из следующего списка: первая, последняя, новая, конкретная, предыдущая, следующая. Если в качестве аргумента выбрано одно из первых трех значений, то активной делается соответственно первая, последняя, новая запись. В этом случае аргумент «Смещение» не заполняется, а если и заполняется, то будет проигнорирован.

Если аргумент «Запись» имеет значение «Конкретная», то в аргументе «Смещение» нужно указать конкретный номер нужной записи в наборе данных. Если выбрано значение «Предыдущая» или «Последующая», то в аргументе «Смещение» указывается, насколько искомая запись смещена относительно активной записи. Аргумент «Смещение» задается как натуральное число или выражение, имеющее значение натурального числа. Перед выражением надо записать символ «=».

НайтиЗапись. Эта макрокоманда дублирует встроенную команду Найти в меню. Она находит запись, удовлетворяющую условию поиска, и делает ее активной. В отличие от аналогичной встроенной команды, выполняемой в режиме диалога, макрокоманда выполняется с уже заранее заданными аргументами. Допускается поиск в текущей таблице в режиме таблицы, в запросе в режиме таблицы, в форме в режиме таблицы.

Аргументы: образец поиска, совпадение, с учетом регистра, область поиска, с учетом формата поля, только в текущем роле, первое вхождение. Имеют такой же смысл, как и аналогичные параметры в команде Найти.

27

НаСтраницу. Передает фокус в активной форме первому элементу управления, размещенному на указанной странице, и выводит на экран часть указанной страницы. Эту макрокоманду используют при работе с многостраничными формами, в которых родственные данные размещаются на разных страницах.

Аргументы: номер страницы, от левого края, от верхнего края.

Первый аргумент определяет выбираемую страницу. Это натуральное число, заданное константой или выражением. Если номер страницы не указать, то фокус останется на текущей странице.

Аргументы «от левого края» и «от верхнего края» определяют положение внутри страницы фрагмента, который следует вывести на экран. Расстояния задаются в дюймах или сантиметрах в зависимости от единицы измерения, установленной в панели управления Windows.

ПрименитьФильтр. Применяет ранее созданный фильтр (или запрос) или создает и применяет фильтр к таблице, форме или отчету. Для отчетов эту макрокоманду можно использовать только в макросах, связанных с событием «Открытие». На экран выводятся отобранные записи.

Аргументы: имя фильтра, условие отбора.

Если нужно применить уже существующий и сохраненный фильтр или запрос, то его имя указывается в качестве аргумента «Имя фильтра». Если нужно использовать новый фильтр, то аргумент «Имя фильтра» остается пустым, а в качестве аргумента «Условие отбора» записывается выражение, описывающее критерий отбора. Выражение записывается по обычным правилам записи выражений в Access. Имена полей заключаются в квадратные скобки. Если используются имена элементов управления из форм, то их надо указывать полностью (уточненные имена):

Forms ! [имя формы] ! [имя элемента] Максимальная длина выражения – 255 символов.

ПоказатьВсеЗаписи. Удаляет фильтр, примененный ранее к активному объекту, и выводит все записи, содержащиеся в активном объекте (таблице, результате запроса, базовой таблице формы и т.д.). Эта макрокоманда не имеет аргументов.

Следующая запись. Выполняет поиск следующей записи, удовлетворяющей условию, заданному в предыдущей макрокоманде НайтиЗапись. Аргументов нет.

Макрокоманды для управления объектами БД и СУБД.

ВыделитьОбъект. Выделяет указанный объект БД, т.е. переводит на него фокус.

Аргументы: тип объекта, имя объекта, в окне БД.

Возможные значения аргумента «В окне БД»: да, нет. По умолчанию принимается значение «нет». Этот аргумент определяет, следует ли выделять объект в окне БД.

Обычно эту макрокоманду используют для предварительного выделения объекта, над которым надо выполнить какие-либо операции (например, восстановить окно).

ВыполнитьКоманду. Выполняет заданную встроенную команду Access. Происходит имитация выбора команды из меню, панели инструментов или контекстного меню.

Аргумент: команда. Команда выбирается из списка доступных команд. Выход. Макрокоманда используется для быстрого завершения работы с

Access. Если в макросе после этой макрокоманды есть еще другие макрокоманды, то они не выполняются. Аргумент: параметры.

Значения аргумента: подтверждение, сохранить все, выход.

Эти значения определяют, что делать при выходе с несохраненными объектами. Если указано «Подтверждение», то для каждого несохраненного объекта будет выводиться диалоговое окно, в котором пользователь должен подтвердить или отменить сохранение. Если указать «Сохранить все», то все объекты будут сохранены автоматически. Если указать «Выход», то не сохраненные ранее объекты теряются.

Закрыть. Закрывает окно, связанное с указанным объектом. Аргументы: тип объекта, имя объекта, сохранение.

Если объект не указан, то закрывается текущее окно. Аргумент «Сохранение» определяет, нужно ли сохранять изменения объекта. Значение «Да» вызывает автоматическое сохранение изменений, «Нет» - закрытие без сохранения изменений, «Подсказка» - вывод диалогового окна для подтверждения или отмены сохранения.

С помощью этой макрокоманды без аргументов можно закрыть БД. ЗапускЗапросаSQL. Запускает на выполнение запрос на изменение,

добавление, удаление, создание таблицы. Запрос описывается командой на языке SQL. Кроме того, эта макрокоманда позволяет запустить на выполнение управляющий запрос, т.е. запрос, включающий в себя описание данных. Управляющие запросы позволяют создавать или изменять объекты БД.

Аргументы: команда SQL, использовать транзакцию.

Первым (обязательным) аргументом является текст команды на языке SQL, определяющей запрос. Длина текста – не более 255 символов.

Аргумент «Использовать транзакцию» может иметь значение «Да» (запрос включается в транзакцию, т.е. последовательность согласованных изменений данных и схемы БД) или «Нет» (не включается в транзакцию).

ЗапускМакроса. Запускает на выполнение указанный макрос. Используется для вызова одного макроса из другого макроса, для вызова макроса при выполнении определенного условия, для связывания макроса с командой пользовательского меню. В этой макрокоманде существует возможность организации цикла, т.е. повторения выполнения макроса.

Аргументы: имя макроса, число повторов, условие повтора. Аргумент «Имя макроса» является обязательным.

29

Аргумент «Число повторов» задает максимальное количество повторов вызываемого макроса. По умолчанию значение этого аргумента равно 1.

Аргумент «Условие повтора» содержит выражение, описывающее условие повторения макроса. Если выражение принимает значение «Ложь» (0), то выполнение макроса прекращается.

Реальное число повторений вызываемого макроса определяется совместно значениями второго и третьего аргументов. Если оба аргумента не заданы, то макрос выполняется 1 раз. Если аргумент «Число повторов» задан, а «Условие повтора» - не задан, то макрос выполняется указанное в аргументе число раз. Если аргумент «Число повторов» не задан, а задано условие повтора, то макрос выполняется до тех пор, пока условие повтора выполняется, т.е. выражение имеет значение «Истина».

После завершения выполнения вызываемого макроса происходит возврат в вызывающий макрос к следующей по порядку макрокоманде. Допускается организация вложенных вызовов макросов.

ЗапускПриложения. Запускает из Access приложение Windows или Ms-Dos (например, Exсel, Word, PowerPoint). Обращение к приложению происходит с помощью командной строки, содержащей путь к вызываемому файлу.

Обязательный аргумент: командная строка.

ЗапускПрограммы. Вызывает на выполнение процедуру-функцию VBA, созданную пользователем.

Аргумент: имя функции. Значением аргумента является имя функции с указанными за ним в скобках фактическими параметрами.

Если вызываемая функция не имеет параметров, то после ее имени записываются пустые круглые скобки. Символ «=» перед именем функции не пишется. Значение, возвращаемое функцией, игнорируется.

Имя функции не должно совпадать с именем модуля. КопироватьОбъект. Макрокоманда копирует указанный объект БД в

ту же БД, в другую БД или в проект Access.

Аргументы: база данных, новое имя, тип объекта, имя объекта. Значением аргумента «База данных» должно быть полное имя БД

получателя. Если значение этого аргумента не указано, то копирование делается в ту же БД, в которой находится исходный объект. Аргумент «Новое имя» содержит имя копии или остается пустым, если имя объекта при копировании не меняется.

Аргументы «Тип объекта» и «Имя объекта» задают тип и имя копируемого объекта. Если не указать значения этих аргументов, то копируется выделенный объект.

КопироватьФайлБазыДанных. Выполняет копирование файла текущей БД, подключенной к проекту Access. При этом отключается текущая БД, а затем связывается с севером-получателем.

Аргументы: имя файла БД, замена имеющегося файла, отключить всех пользователей.