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

МЕТОДИЧКА

.pdf
Скачиваний:
17
Добавлен:
13.02.2016
Размер:
545.59 Кб
Скачать

21

9.8. Создать параметрический запрос, который позволит получать сведения обо всех жильцах дома. Улица и номер дома задаются в качестве параметра.

Работа № 10

Создание форм и отчетов

10.1.Создание простой формы

Задание 10.1. Методом автоформы создать форму для ввода данных в таблицу ЛЮДИ

Открыть базу выбрать объекты Формы если какой-либо объект на правой панели окна выделен – снять выделение [Создать] в окне Новая форма выбрать Автоформа: в столбец в нижней части окна Новая форма раскрыть список источников данных выбрать таблицу ЛЮДИ [ОК].

Форма создана. На экране появится окно формы, полностью готовое к использованию. Используя для навигации по форме кнопки в нижней части, просмотреть содержимое таблицы ЛЮДИ.

Скорректировать содержимое нескольких полей таблицы ЛЮДИ.

Добавить в таблицу 5 записей. Довести количество записей в таблице ЛЮДИ до 30-и.

Переместиться к первой свободной строке таблицы (проще всего: нажать кнопку со стрелкой и звездочкой) и ввести данные на несколько человек.

Закрыть форму. На вопрос о сохранении изменений макета формы ответить [Да]. На запрос имени формы задать Форма 10-1.

Открыть таблицу ЛЮДИ и убедиться, что с помощью формы действительно добавлены записи.

Открыть созданную форму. Ввести в таблицу ЛЮДИ еще 5 записей. Закрыть форму. Открыть и просмотреть таблицу ЛЮДИ.

Задание 10.2. Методом автоформы создать ленточную форму для ввода данных в таблицу ЛЮДИ.

Выполняется аналогично заданию 10.1 с той лишь разницей, что в окне

Новая форма выбрать вариант Автоформа: ленточная.

При выполнении задания добавить в таблицу еще 5 записей. Сохранить форму под именем Форма 10-2.

22

10.2. Создание отчета

Источником данных для отчета может являться один объект (таблица или запрос) или несколько объектов. При использовании в качестве источника данных нескольких объектов могут возникнуть проблемы их объединения. Поэтому рекомендуется задачу создания отчета решать в 2 этапа: сначала создать запрос, содержащий все данные, необходимые для отчета, а затем использовать этот запрос в качестве источника данных для отчета.

Задание 10.3. Создать отчет, в котором выводятся сведения о жильцах каждой квартиры города.

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

Создать запрос, включив в него таблицы УЛИЦЫ, ДОМА, КВАРТИРЫ,

ПРОПИСКА, ЛЮДИ и поля Улица, Дом, Кв, Фам, Имя, Отч,

ДатаРожд, Пол Сохранить запрос под именем Зад 10-3.

Запустить Мастер создания отчетов в качестве источника данных выбрать запрос Зад 10-3 [Далее] перенести все доступные поля в раздел выбранные поля [Далее] к уровням группировки улица, дом добавить

уровень кв (выделить это поле в левом окошке и нажать [>] [Далее]

 

установить порядок сортировки по фамилии, имени, отчеству [Далее]

в

качестве макета выберем блок имя отчета: Отчет 10-3.

 

Задание 10.4. Создать отчет, в котором для каждого дома города отражены сведения о количестве квартир, общей и средней площади квартир.

Можно создать запрос, в котором будут выполнены все необходимые расчеты (группировка данных). Но поскольку группировка может быть выполнена и в отчете, эту часть работы ему и поручим.

Итак, сначала создаем вспомогательный запрос (Зад 10-4), в который добавляем таблицы УЛИЦЫ, ДОМА, КВАРТИРЫ и включаем поля Улица,

Дом, Кв, КолКомн, Площ.

Запустить Мастер создания отчетов в качестве источника данных выбрать запрос Зад 10-4 [Далее] перенести все доступные поля в раздел выбранные поля [Далее] установить порядок сортировки по номеру квартиры [Далее] для задания правил группировки нажать [Итоги] для поля КолКомн установить флажок Sum (общее количество комнат), для поля Площ установить флажки Sum (суммарная площадь) и AVG (средняя площадь)

23

[ОК] [Далее] в качестве макета выберем блок имя отчета: Отчет 10- 4.

Задание 10-5. Создать отчет, в котором отражены сведения на оплату за потребленную воду на каждую квартиру. Тариф: 700 руб. с каждого жильца квартиры.

Задачу решим в 2 этапа:

-создадим запрос с расчетом оплаты по каждой квартире;

-на основе этого запроса создадим нужный отчет.

На основе таблиц УЛИЦЫ, ДОМА, КВАРТИРЫ, ПРОПИСКА создать запрос с полями Улица, Дом, Кв, КодЧел.

Добавить вычисляемое поле тариф за воду: 700 (700 руб. – пусть это будет тариф за воду).

Полю КодЧел присвоить псевдоним жильцов (по этому полю будем подсчитывать количество жильцов квартиры).

Добавить еще одно вычисляемое поле оплата: жильцов*[тариф за воду].

Задать группировку: для поля КодЧел выполнить группировку с функцией Count (количество), для полей тариф за воду и оплата правило группировки: Выражение.

Для полей тариф за воду и оплата задать формат данных: щелкнуть правой кнопкой мыши на имени поля (в строке Поле) в контекстном меню выбрать Свойства раскрыть список Формат поля

выбрать Денежный.

Исполнить запрос. Сохранить запрос с именем Зад 10-5а.

Второй этап: создание отчета.

Создание отчета с помощью мастера Выбрать запрос Зад 10-5а в качестве источника данных перенести все поля в раздел Выбранные поля добавить в уровни группировки: Улица, Дом вид макета: блок (или какойнибудь другой) имя отчета: Отчет 10-5.

Упражнения

10.1. Создать отчет, в котором для каждой квартиры выводятся следующие данные:

-адрес квартиры;

-площадь;

-количество жильцов;

-сумма начисленного платежа. Правило расчета платежа:

24

-за техобслуживание 1 кв.м площади – 250 руб;

-за отопление 1 кв.м площади – 900 руб.;

-за воду с одного жильца – 700 руб.;

-за газ с одного жильца – 1200 руб.

Работа № 11

Создание запросов на языке SQL

11.1. Методика создания запроса на языке SQL в СУБД Access 2000

Задание 11.1. Вывести все сведения из таблицы ЛЮДИ

SELECT *

FROM ЛЮДИ;

Звездочка означает «все поля».

Это программа на языке SQL. Реализуется она следующим образом: Текст запроса формируется с помощью редактора SQL:

В окне базы данных выбрать вкладку Запросы Создание запроса в режиме конструктора [Открыть] закрыть окно Добавление таблицы.

Запустить редактор SQL: команда меню Вид или контекстное меню

Режим SQL.

Ввести текст запроса.

Исполнить запрос.

Задание 11.2. Вывести данные обо всех квартирах города (код квартиры, код дома, № квартиры, количество комнат, площадь).

Для задания более приемлемых названий столбцов при выводе результатов используется оператор AS с последующим названием столбца в квадратных скобках. Выполните запрос с оператором AS и без него и сравните результат.

SELECT КодКв AS [код квартиры], КодДома AS [код дома], Кв AS [№ квартиры],

КолКомн AS [количество комнат], Площ AS [площадь]

FROM КВАРТИРЫ

11.2. Вывод записей в нужном порядке

25

Задание 15.3. Вывести данные о жителях города (фамилия, имя – в обратном алфавитном порядке).

SELECT *

FROM ЛЮДИ

ORDER BY Фам DESC, Имя DESC

11.3. Вывод записей, удовлетворяющих условию отбора

Задание 11.4. Вывести данные обо всех жителях города мужского пола, родившихся до 1 августа 1995 года (или другой даты).

Обратить внимание на формат даты!

SELECT *

FROM ЛЮДИ

WHERE (Пол="м") AND (ДатаРожд<#08/01/1995#)

Задание 11.5. Вывести данные о двухкомнатных квартирах, площадь которых лежит в диапазоне 45-55 кв. м.

SELECT *

FROM КВАРТИРЫ

WHERE (КолКомн=2) AND (Площ BETWEEN 45 AND 55)

Задание 11.6. Вывести в алфавитном порядке все улицы, в названии которых содержится хотя бы одна буква «а» или «в».

Обратить внимание на регистр букв а, в (здесь должен быть русский)

SELECT Улица

FROM УЛИЦЫ

WHERE (Улица LIKE '*а*') OR (Улица LIKE '*в*') ORDER BY Улица

Задание 11.7. Вывести сведения о людях, третья буква имени которых

«а».

SELECT Фам AS фамилия, Имя,Отч AS отчество,

ДатаРожд AS [дата рождения]

FROM ЛЮДИ

WHERE Имя LIKE '??а*'

26

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

SELECT *

FROM ЛЮДИ

WHERE Фам LIKE [задайте фамилию]

Упражнения (SQL 1)

11.1.Вывести данные о жителях города в порядке убывания возраста

11.2.Вывести данные обо всех домах с лифтом. Упорядочить список по дате постройки.

11.3.Вывести данные обо всех пятиэтажках, построенных до 1980 года.

11.4.Вывести данные обо всех жителях города, чьи фамилии начинаются

на «Ива».

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

11.6.Выявить все дома без лифта с количеством этажей свыше задаваемого с клавиатуры в качестве параметра (параметрический запрос).

11.4.Группировка данных

Задание 11.9. Найти суммарное количество квартир каждого дома.

В качестве источника данных воспользуемся лишь одной таблицей. По полю КодДома выполним группировку (GROUP BY КодДома), для поля Кв применим агрегатную функцию COUNT (количество).

SELECT КодДома, COUNT(Кв) AS [количество квартир] FROM КВАРТИРЫ

GROUP BY КодДома

1.5. Задание условий отбора

Задание 11.10. Определить общее количество жителей города с фамилией «Иванов»

SELECT COUNT(Фам)

FROM ЛЮДИ

WHERE Фам="Иванов"

Упражнения (SQL 2)

11.7.Определить общее количество улиц города.

11.8.Определить общее количество домов города.

27

11.9. Определить суммарную площадь всех квартир города.

Работа № 12

Объекты OLE в базах данных

Задание 12.1. Создать таблицу Почетных граждан города.

Таблица должна содержать следующие поля:

-КодПочет – счетчик;

-КодЧел – (код человека) – числовой (длинное целое);

-ДатаПрисв – (дата присвоения) – дата/время;

-Фото – (фотография гражданина) – поле объекта OLE;

-Справка – (сведения о гражданине) – поле объекта OLE.

Для поля КодЧел свойство Индексированное поле установить Да (совпадения не допускаются), поскольку один человек может получить это звание лишь один раз.

Дать таблице имя ПОЧЕТ.

Задание 12.2. Связать таблицу ЛЮДИ с таблицей ПОЧЕТ по полю

КодЧел.

Задание 12.3. Создать портреты почетных граждан с помощью графического редактора Paint (неплохо было бы иметь настоящие фотографии).

Файлы с портретами создадим в отдельной папке.

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

С помощью графического редактора Paint создать 2-3 файла с портретами (или скопировать откуда-нибудь файлы). Дать этим файлам подходящие имена (например, ПГ-1, ПГ-2 или ПГ-Иванов) и поместить в папку

сфайлами Почетных граждан.

Задание 12.4. Включить портреты в базу методом связывания.

Для включения портрета в базу:

Открыть таблицу ПОЧЕТ щелкнуть в соответствующей строке в поле

фото команда меню Вставка/объект (либо Контекстное меню/Добавить объект) в окне Microsoft Office Access: включить Создать из файла

нажать [Обзор] настроиться на папку Почетные граждане выделить файл с портретом [ОК] в окне Вставка объекта установить флажок Связь

[ОК].

28

Объект помещен в базу, о чем появится запись в столбце Фото с названием типа объекта (в нашем случае: точечный рисунок).

Для просмотра содержимого поля объекта OLE необходимо дважды щелкнуть это поле или использовать контекстное меню.

Задание 12.5. В таблицу ПОЧЕТ поместить справочные сведения о почетных гражданах.

Поле Справка будет содержать текстовую и, возможно, графическую информацию о Почетном гражданине. Эти данные будем формировать с помощью тестового процессора Word. Можно поступить так же, как и при воде фото: сначала создать файлы, а потом подключить их к базе. Возможен и другой вариант: включить в поле справка в качестве объекта редактор Microsoft Word, а затем уже активизировать редактор непосредственно из таблицы. Так и поступим.

Щелкнуть в поле Справка команда меню Вставка/объект в окне

Microsoft Office Access включить Создать новый тип объекта: Документ

Microsoft Word [ОК].

Откроется окно Microsoft Word. Теперь можно вводить данные. После закрытия редактора данные останутся в базе.

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

Упражнение

Спроектировать и создать таблицу СОБАКИ – для учета собак. Предусмотреть, в частности, поле с именем Досье типа Поле объекта OLE: Документ Microsoft Word. Включить в таблицу 2-3 собаки и ввести данные на них. Связать собак с их хозяевами.

Для желающих: включить поле с изображением собак.

29

Работа № 13 Экспорт/импорт данных

13.1. Access/Excel: экспорт/импорт

Задание 13.1. В таблицу КВАРТИРЫ базы данных из электронной таблицы переписать данные на несколько квартир одного дома.

Импорт данных в базу из таблицы Excel реализуем через системный буфер Windows.

Сначала в Excel оформим данные на несколько квартир.

В ячейках А1-Е1 зададим названия полей таблицы КВАРТИРЫ (хотя это и не обязательно): КодКв, КодДома, Кв, КолКомн, Площ ввести данные на 5-6 квартир уже существующих домов. КодДома пусть имеет фиксированное значение (хотя это вовсе и не обязательно). Поле КодКв можно не заполнять, в базе данных это поле получит значения автоматически.

Скопировать в системный буфер ячейки с данными (без заголовка).

Вставить содержимое буфера таблицу КВАРТИРЫ базы данных: переключиться в окно базы данных открыть таблицу КВАРТИРЫ выделить всю пустую строку (она помечена звездочкой) команда меню Правка/вставить Подтвердить необходимость вставки данных, если будет задан вопрос.

Убедиться, что данные импортированы в базу данных.

Задание 13.2. Из базы данных переписать данные на всех жителей города с фамилией Иванов в таблицу Excel.

Экспорт данных из базы в таблицу Excel реализовать через системный буфер Windows.

Создать запрос на выборку данных на жителей города с фамилией Иванов исполнить запрос скопировать из запроса в системный буфер нужный блок данных открыть рабочий лист Excel вставить данные в рабочий лист.

13.2. Внедрение данных из базы в документ MS Word

Задание 13.3. Для всех жителей города, родившихся в диапазоне 1980-2000 г.г., (или в другом диапазоне) создать уведомление о необходимости пройти прививку против гриппа.

30

Здесь будет реализован экспорт данных из базы в документ MS Word.

Пусть необходимо создать уведомление следующего вида:

Ул. Нагорная, дом 12, кв. 23 Уважаемый Пупкин Кузьма Лукич!

Сообщаем Вам о необходимости пройти прививку против гриппа в поликлинике №1 в любой день с 10 до 20 часов.

Текст уведомления для каждого жителя содержит две составляющие: постоянную и переменную. Переменная составляющая – это адрес, ФИО жителя, а также обращение «Уважаемый» или «Уважаемая» в зависимости от пола. Переменную составляющую будем брать (импортировать) из базы.

Сначала создадим запрос, содержащий нужные данные о жителях.

Включить в создаваемый запрос поля Улица, Дом, Кв, Фамилия,

Имя, Отчество, ДатаРожд, Пол, а также вычисляемое поле

обращение: Iif (Пол=’м’; ’Уважаемый’; ’Уважаемая’)

Это условное выражение, которое в качестве результата выдаст значение Уважаемый, если значение Пол равно «муж», и Уважаемая в противном случае.

Задать условие отбора по дате рождения.

Сохранить запрос с имени СписокРассылки.

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

Запустить Word и набрать неизменяемую часть письма (Слово Уважаемый будет относиться к изменяемой части).

Команда Сервис/Письма и рассылки/слияние.

Запустится мастер слияния, отображаемый на правой панели окна Word. Читаем и выполняем.

Этап 1. Тип документа: письма. Далее.

Этап 2. Выбор документа: Текущий документ. Далее.

Этап 3. Выбор получателей. Сведения о них возьмем из нашей базе, а конкретнее – из запроса СписокРассылки: Существующий список/Обзор настроиться на файл с нашей базой выбрать в качестве источника запрос

СписокРассылки Далее.

Этап 4. Создание письма. На этом этапе в тексте помечаем место для вставки элемента из базы и вставляемый элемент. Например, устанавливаем курсор мыши после слова Ул., на панели Слияние выбираем Другие элементы в окне Добавление поля слияния выбираем Улица и т.д. Далее.