Поможем написать учебную работу
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
PAGE 28
ЦЕЛЬ РАБОТЫ. Познакомиться с СУБД Microsoft Access .Создать базу данных "Учебный процесс", состоящую из пяти таблиц: "Студенты", "Специальности", "Учебный план", "Экзамены", "Стипендия". Создать схему данных, установив связи между таблицами.
Теоретическая часть
Для выполнения лабораторной работы необходимо знание следующих вопросов:
Задания для выполнения
В результате выполнения лабораторной работы вы должны создать базу данных "Учебный процесс" по следующей логической модели:
Рис. 1. Логическая модель базы данных "Учебный процесс"
Описание таблиц
Задача 1. Создать базу данных "Учебный процесс".
Для этого выбрать из меню пункт Файл/ Создать базу данных/ Новая база данных, задать ее имя «Учебный процесс» и поместить в свой рабочий каталог.
Появится окно пустой базы данных, содержащее вкладки: таблицы, запросы, формы, отчеты, макросы, модули.
Теперь можно создавать таблицы.
Задача 2. Создать таблицу "Студенты".
Для этого выбрать пункт Создать/ Конструктор.
Появиться окно, в котором нужно определить поля таблицы.
Таблица должна содержать следующие поля:
На рисунке отражены свойства поля [номер студента].
Свойства остальных полей определите самостоятельно.
При определении полей внимательно следите за правильным заданием типа данных и размера поля.
Поле [номер студента] сделайте ключевым (контекстное меню пункт ключевое поле).
Поля [шифр специальности] и [номер группы] задайте индексированными с допустимыми совпадениями.
Для поля [дата рождения] задайте формат вывода: краткий формат даты и маску ввода: ##.##.####
После того как определены все поля, сохраните таблицу под именем "Студенты" и перейдите в меню Вид/Режим таблицы для ввода данных или закрыть конструктор и открыть созданную таблицу двойным щелчком мыши.
Задайте данные о произвольных студентах не менее 6 записей. Введите студентов с двух разных специальностей (например, РС и Э), в каждой группе должно быть несколько студентов, то есть номера группы должны повторяться.
Пример записей:
Номер студенческого билета |
Фамилия |
Имя |
Отчество |
Шифр специальности |
Номер группы |
Дата рождения |
Область |
12536 |
Истомин |
Павел |
Федорович |
РС |
101 |
12.08.1980 |
Владимирская |
21011 |
Крошин |
Павел |
Семенович |
Э |
101 |
12.08.1983 |
Владимирская |
Населенный пункт |
Адрес |
Телефон |
Примечание |
Ковров |
Комсомольская 15-34 |
4-19-14 |
староста группы |
Малыгино |
Озерная 6 |
4-12-55 |
Задача 3. Создать таблицу "Специальности" следующей структуры:
Имя поля |
Тип |
Размер |
Обязательное поле |
Индексированное поле |
Ключевое поле |
шифр специальности |
Текстовое |
4 |
да |
Да (совпадения не допускаются) |
Первичный ключ |
код |
Текстовое |
6 |
да |
Да (совпадения не допускаются) |
|
название специальности |
Текстовое |
50 |
да |
нет |
|
Факультет |
Текстовое |
30 |
да |
нет |
Заполните таблицу данными о специальностях.
Пример заполнения таблицы:
Шифр специальности |
Код |
Название специальности |
Факультет |
РС |
2103 |
Роботы и робототехнические системы |
Автоматики и электроники |
Т |
1201 |
Технология машиностроения |
Механико - технологический |
Э |
0611 |
Менеджмент организаций |
Экономики и менеджмента |
Задача 4. Создать таблицу "Учебный план" следующей структуры:
Имя поля |
Тип |
Размер |
Обязательное поле |
Индексированное поле |
Ключевое поле |
код плана |
Счетчик |
Длинное целое |
{тип счетчик по умолчанию обязателен} |
Да (совпадения не допускаются) |
Первичный ключ |
дисциплина |
Текстовое |
50 |
Да |
Да (совпадения допускаются) |
|
шифр специальности |
Текстовое |
3 |
Да |
Да (совпадения допускаются) |
|
семестр |
Числовое |
целое |
Да |
Да (совпадения допускаются) |
Заполните таблицу данными учебного плана для введенных вами специальностей.
Значения кода плана задаются автоматически и не могут быть изменены пользователем.
Пример заполнения таблицы:
Код плана |
Дисциплина |
Шифр специальности |
Семестр |
1 |
физика |
РС |
1 |
2 |
иностранный язык |
РС |
1 |
3 |
информатика |
РС |
2 |
4 |
математика |
Э |
1 |
5 |
математика |
Э |
2 |
6 |
иностранный язык |
Э |
2 |
Задача 5. Создать таблицу "Экзамены" следующей структуры:
Имя поля |
Тип |
Размер |
Обязательное поле |
Индексированное поле |
Ключевое поле |
код плана |
Числовое |
длинное целое |
да |
Да (совпадения допускаются) |
Составной первичный ключ |
номер студента |
Числовое |
длинное целое |
да |
Да (совпадения допускаются) |
|
Оценка |
Текстовое |
4 |
нет |
Да (совпадения допускаются) |
|
Дата |
Дата / время |
нет |
Да (совпадения допускаются) |
||
Экзаменатор |
Текстовое |
30 |
нет |
нет |
Заполнять таблицу данными пока не обязательно.
Задача 6. Создать таблицу "Стипендия" следующей структуры:
Имя поля |
Тип (размер) |
Обязательное поле |
Индексированное поле |
Ключевое поле |
номер студента |
Числовое (длинное целое) |
да |
Да (совпадения не допускаются) |
Первичный ключ |
Стипендия |
Денежный |
нет |
нет |
Заполните таблицу данными для ваших студентов (номера студентов брать из таблицы "Студенты").
Задача 7. Определить связи между таблицами в соответствии с логической моделью (рис.1). Для каждой связи установить контроль целостности данных и каскадное обновление связанных полей. На примере проверить, как работает контроль целостности, каскадное обновление и записать эти примеры для отчета.
Для определения связей служит схема данных.
Определение связей между таблицами:
1) Закройте все открытые таблицы. Создавать или изменять связи между открытыми таблицами нельзя.
2) Переключитесь в окно базы данных и выберите в контекстном меню пункт Схема данных (или кнопку на панели инструментов или меню Сервис / Схема данных).
3) Если в базе данных не определено никаких связей, то на экран автоматически будет выведено окно Добавление таблицы. Если диалогового окна Добавление таблицы на экране нет, выберите в контекстном меню пункт Добавить таблицу.
4) Добавьте в схему данных все таблицы. Затем закройте диалоговое окно Добавление таблицы.
5) Ключевые поля в схеме данных выделяются жирным шрифтом.
Для связывания полей выберите поле в главной таблице и перетащите его на соответствующее поле в связанной таблице (например, поле Шифр специальности из табл. "Специальности" в табл. "Студент").
Появится окно Изменение связей.
Например, при определении связи между таблицами "Специальности" и "Студенты" в окне Изменение связей должно быть отображено следующее:
6) Для создания связи нажмите кнопку Создать.
7) Если нужно изменить уже существующую связь, нужно её выделить и выбрать в контекстном меню пункт Изменить связь. Чтобы удалить связь, её также нужно сначала выделить, а затем удалить.
ТРЕБОВАНИЯ К ОТЧЕТУ
Отчет по лабораторной работе должен содержать:
ЦЕЛЬ РАБОТЫ. Создание запросов на выборку данных с помощью конструктора.
Теоретическая часть
Для выполнения лабораторной работы необходимо знание следующих вопросов :
Для создания выражений в запросе используется Построитель выражений, который вызывается кнопкой на панели инструментов.
Он позволяет составлять выражения с использованием полей различных баз данных, констант, операторов и функций. Access содержит большое количество встроенных функций, кроме того, программисты могут создавать собственные функции. По встроенным функциям информацию можно получить с помощью справки.
Рассмотрим лишь некоторые средства создания выражений.
Константы
Идентификаторы
Операторы
* соответствует любой группе символов;
? соответствует любому символу. Например: выражение [Фамилия] Like “А*” принимает истинное значение для всех записей, фамилия которых начинается на А.
Некоторые встроенные функции
Все функции должны содержать скобки ().
Группировка позволяет объединить данные в группы по совпадающим значениям в каком-либо поле и провести итоговые вычисления для каждой группы. В результате запроса с группировкой отображается для каждой группы только одна строка с итоговыми данными.
Групповые операции:
Задания для выполнения
Запросы на выборку из одной таблицы
Задача 1. Создать запрос на выбор всех ковровских студентов.
Для этого:
Для записи составных условий отбора используется правило:
Значения, стоящие в одной строке, автоматически соединяются союзом «и» (AND), в разных строках «или» (OR).
Задача 2. Создайте запрос на выбор всех ковровских студентов, не имеющих телефона.
Конструктор:
Получено условие: [Населенный пункт]= "Ковров" AND [телефон] Is Null.
Сохраните и выполните запрос.
Задача 3. Создайте запрос на выбор всех студентов какого-либо курса независимо от специальности. Курс определяется номером группы, а именно, его двумя последними цифрами. Таким образом, все студенты из групп с номерами 101 и 201 учатся на одном курсе.
Конструктор:
Получено условие: [номер группы]=101 OR [номер группы]=201.
Сохраните и выполните запрос.
Задача 4. Создайте запрос на выбор студентов, фамилии которых начинаются на букву "А" или на букву "Б". В условии отбора использовать оператор Like.
Запросы с вычисляемыми полями
Вычисляемые поля отображают данные, не взятые напрямую из таблиц, а вычисляемые по заданным выражениям.
Задача 5. Создайте запрос на выбор всех студентов, родившихся в текущем месяце.
Конструктор:
оле [месяц] задается с помощью построителя выражений. В нем выводится номер месяца рождения каждого студента.
Условие отбора задает номер месяца, вычисляемый из текущей даты.
Сохраните и выполните запрос.
Задача 6. Создайте запрос на выбор данных о студентах и их возрасте, т.е. количестве лет.
Задача 7. Создайте запрос на выбор всех студентов старше 20 лет.
Запросы на выборку из нескольких связанных таблиц
При создании таких запросов в конструкторе добавляют все нужные таблицы, используя окно Добавление таблиц, а связи между таблицами уже ранее установлены в схеме данных.
Задача 8. Создайте запрос для ведомости стипендии всех студентов, получающих стипендию, представленных отсортированными по учебным группам, а в группах по фамилиям.
Вычисляемое поле [Инициалы] задается следующим выражением:
Left([Студенты]![Имя];1) &"."& Left([Студенты]![Отчество];1) & "."
Задача 9. Создайте запрос на выбор всех иногородних студентов, не получающих стипендию.
Запросы с группировкой данных
Запросы с группировкой позволяют вычислять итоговые данные как по всей таблице, так и по различным группам записей.
Для создания запроса с группировкой нужно в режиме конструктора нажать кнопку Групповые операции в контекстном или главном меню.
В списке запроса добавится еще одна строка Групповая операция. Выпадающий список в ячейке групповой операции содержит функции, описанные выше в теоретической части.
Задача 10. Создайте запрос с группировкой данных по учебным группам и вычислением средней и суммарной стипендии в каждой группе.
Конструктор:
Задача 11. Создайте запрос с группировкой данных по населенным пунктам и вычислением количества студентов.
ТРЕБОВАНИЯ К ОТЧЕТУ
Отчет по лабораторной работе должен содержать:
ЦЕЛЬ РАБОТЫ. Создание запросов на выборку, обновление, добавление, удаление данных в таблицах и запроса на создание таблицы.
Теоретическая часть
Для выполнения лабораторной работы необходимо знание следующих вопросов: назначение и возможности запросов на обновление, добавление, удаление, создание таблиц.
Задания для выполнения
Пустые записи добавлять нельзя, должны быть заполнены все обязательные поля, остальные поля могут быть пустыми.
Задача 1. Создайте запрос "добавление одного экзамена", позволяющий добавить в таблицу "Экзамены" записи об одном экзамене для всех студентов из указанной группы.
Пусть нужно сформировать ведомость о сдаче студентами группы Э-101 экзамена с кодом 5, т.е. философии( см. таб. Учебный план).
Конструктор:
Задача2 . Аналогично предыдущей задаче задайте еще 1 экзамен.
Заполните таблицу экзаменов произвольными оценками (отл, хор, уд, неуд).
Задача 3. Создайте запрос для автоматического добавления всех номеров студентов из таблицы "Студенты" в таблицу "Стипендия". Запрос будет добавлять только номера новых студентов, то есть тех, чьи номера не записаны в таблицу "Стипендия", если таких студентов нет, то для проверки работы запроса добавьте в таблицу "Студенты" нового студента.
Задача 4. Создайте запрос для удаления из таблицы "Студенты" записей с номером группы=198 или 298 (закончивших обучение). Если таких студентов нет в вашей таблице, внесите изменения в исходные данные.
Так как таблица "Студенты" связана по номеру студента с таблицами "Стипендия" и "Экзамены", то необходимо удалять записи и из этих таблиц. Для этого в схеме данных нужно изменить эти связи, установив параметр каскадное удаление связанных полей. После этого, если запись удаляется в таблице "Студенты", автоматически удалятся все связанные с ней записи в таблицах "Стипендия" и "Экзамены".
Конструктор: выбрать тип запроса удаление.
Выполнить запрос.
Задача 5. Создайте запрос на обновление для заполнения полей [дата] и [экзаменатор] в таблице "Экзамены".
Конструктор: тип запроса обновление.
В строке обновление указывается новое значение соответствующего поля.
Код плана и номер группы в условии отбора задайте в соответствии со своими данными.
Выполните запрос.
Результатом запроса является изменение данных в таблице "Экзамены". Откройте таблицу и посмотрите, какие произошли изменения.
Задача 7. Создать запрос, позволяющий автоматически создавать таблицу "Сессия" на основе таблицы "Экзамены". Таблица "Сессия" должна содержать данные о минимальной оценке каждого студента в сессии.
Этап 1. Сначала создайте запрос на выборку данных одной сессии с группировкой и вычислением минимальной оценки в сессию для каждого студента.
Конструктор:
Так как таблица "Экзамены" содержит данные обо всех сдаваемых экзаменах, чтобы выбрать оценки одной сессии, задается условие отбора по дате экзамена.
Так как оценки заданы текстовыми значениями "отл", "хор", "уд" или "неуд", возможно и Null значение, то для вычисления минимальной оценки необходимо выполнить преобразование к соответствующим числовым значениям. Используя функцию iif(), преобразуем "отл" =5, "хор"=4, "уд"=3, любые другие значения =2.
Миноценка: Min(IIf([оценка]="отл";5;IIf([оценка]="хор";4;IIf([оценка]="уд";3;2))))
Этап 2. Преобразовать запрос на выборку в запрос на создание таблицы.
Для этого:
Выполните запрос.
Откройте таблицу "Сессия" и посмотрите результат.
Если внести изменения таблицу "Экзамены", то содержимое таблицы "Сессия" автоматически изменяться не будет. Чтобы ее изменить, нужно снова выполнить запрос "создание таблицы сессия".
Задача 8. Создайте запрос "стипендия 5 " на обновление стипендий всех отличников по результатам последней сессии. Используйте таблицы "Стипендия" и "Сессия".
Задача 9. Создайте запрос "стипендия 4" на обновление стипендий всех хорошистов по результатам последней сессии.
Задача 10. Создайте запрос "стипендия 23" на обновление стипендий всех, сдавших экзамены на 3 или 2 по результатам последней сессии.
ТРЕБОВАНИЯ К ОТЧЕТУ
Отчет по лабораторной работе должен содержать:
ЦЕЛЬ РАБОТЫ. Изучение и создание SQL - запросов в СУБД Microsoft Access.
Теоретическая часть
Для выполнения лабораторной работы необходимо знание следующих вопросов:
Задания для выполнения
Разобрать и выполнить следующие запросы.
В отчет поместить текст запроса, его назначение и подробный комментарий к каждому предложению SQL.
Порядок работы:
Задача 1.
SELECT дисциплина, семестр, [шифр специальности]
FROM [Учебный план]
WHERE [шифр специальности]=[введи шифр специальности]
ORDER BY семестр;
Задача 2.
SELECT [Учебный план].[код плана],
Count(Экзамены.оценка) AS [Количество студентов]
FROM [Учебный план] LEFT JOIN Экзамены
ON [Учебный план].[код плана] = Экзамены.[код плана]
GROUP BY [Учебный план].[код плана];
Задача 3.
SELECT Студенты.[шифр специальности], Студенты.[номер группы], [Учебный план].дисциплина,
Avg(IIf([оценка]="отл",5,IIf([оценка]="хор",4,IIf([оценка]="уд",3,2)))) AS [успеваемость]
FROM [Учебный план]
INNER JOIN (Студенты INNER JOIN Экзамены
ON Студенты.[номер студента] = Экзамены.[номер студента])
ON [Учебный план].[код плана] = Экзамены.[код плана]
GROUP BY Студенты.[шифр специальности], Студенты.[номер группы],[Учебный план].дисциплина;
Задача 4.
INSERT INTO Экзамены ( [номер студента], [код плана] )
SELECT Студенты.[номер студента], 1 AS код
FROM Студенты
WHERE (Студенты.[шифр специальности]="рс") AND (Студенты.[номер группы]=101);
Задача 5.
DELETE Студенты.*
FROM Студенты
WHERE Студенты.[номер группы] is Null;
Задача 6.
UPDATE Стипендия SET Стипендия.[стипендия] = [стипендия]*1.2;
Задача 7.
SELECT TOP 1 [номер студента], Фамилия, Имя, Отчество, [шифр специальности], [номер группы], [дата рождения]
FROM Студенты
ORDER BY [дата рождения] ASC;
Задача 8.
DELETE Студенты.*
FROM Студенты
WHERE [номер студента] IN (SELECT [номер студента]
FROM Экзамены
WHERE оценка="неуд"
GROUP BY [номер студента]
HAVING Count(оценка)>2);
Задача 9.
SELECT Студенты.[номер студента], Студенты.[Фамилия], Стипендия.[стипендия]
FROM Студенты INNER JOIN Стипендия
ON Студенты.[номер студента] = Стипендия.[номер студента]
WHERE Стипендия.[стипендия]=
(SELECT max([стипендия]) AS maxстипендия
FROM стипендия);
ТРЕБОВАНИЯ К ОТЧЕТУ
Отчет по лабораторной работе должен содержать:
ЦЕЛЬ РАБОТЫ. Изучить создание отчетов в СУБД Microsoft Access .Создать отчеты для базы данных "Учебный процесс".
Теоретическая часть
Для выполнения лабораторной работы необходимо знание следующих вопросов: отчет, его назначение и предоставляемые возможности.
Задания для выполнения
Для создания на основе базы данных документа, предназначенного для печати, используется специальный объект - отчет.
Отчет может создаваться на основе таблицы или запроса.
Создавать отчет удобно с помощью мастера, а затем при необходимости откорректировать в конструкторе.
Задача 1. Создайте отчет для печати ведомостей на выплату стипендии.
Примерный вид ведомости:
ведомость на выплату стипендии группа: Э 101 |
||||
№ |
Фамилия |
Инициалы |
стипендия |
номер студенческого билета |
1 |
Баскакова |
И.Б |
300,00 |
21040 |
2 |
Крайнова |
С.Б |
300,00 |
21045 |
3 |
Краснова |
С.Б |
300,00 |
21047 |
Итого по группе: 900,00 |
Для создания такой ведомости нужно:
Созданный отчет нужно отредактировать в режиме конструктора.
Приведите ваш отчет к следующему виду:
Для отображения свойств любого элемента отчета нужно использовать контекстное меню Свойства. Для лучшего понимания структуры отчета в приведенном примере все надписи выделены курсивом, а поля жирным шрифтом.
Порядок работы:
Задача 2. Создайте отчет для печати ведомостей неуспевающих (получивших неудовлетворительные оценки).
Примерный вид отчета:
ведомость неуспевающих
группа:_________ Э - 101
номер студенческого билета: 21047
Фамилия: Краснова
Имя: Светлана
Отчество: Борисовна
семестр дисциплина оценка
1 физика неуд
1 математика неуд
всего долгов: 2
Данные группируются по трем уровням: [шифр специальности], [номер группы], [номер студента].
Для подсчета количества долгов для каждого студента нужно в разделе заголовок группы 'номер студента' либо в разделе примечание группы 'номер студента' задать вычисляемое поле, содержащее формулу =Count([оценка]).
Задача 3. Создайте отчет для печати экзаменационных ведомостей.
Каждая ведомость должна быть на отдельной странице.
Примерный вид ведомости:
Экзаменационная ведомость Дисциплина: физика Группа Э-101 |
||||||
Номер студента |
Фамилия |
Имя |
Отчество |
Оценка |
Дата |
Экзаменатор |
21040 |
Баскакова |
Ирина |
Борисовна |
отл |
03.06.2003 |
Красавин |
21045 |
Крайнова |
Светлана |
Борисовна |
хор |
04.06.2003 |
Красавин |
21047 |
Краснова |
Светлана |
Борисовна |
уд |
03.06.2003 |
Красавин |
ТРЕБОВАНИЯ К ОТЧЕТУ
Отчет по лабораторной работе должен содержать:
ЦЕЛЬ РАБОТЫ. Изучить создание форм для отображения данных в СУБД Microsoft Access. Создать формы для отображения данных в базе данных "Учебный процесс".
Теоретическая часть
Для выполнения лабораторной работы необходимо знание следующих вопросов:
Формы позволяют управлять процессом отображения данных на экране. Они используются для ввода данных в таблицы, удобного представления данных на экране, кнопочные формы для открытия других форм и отчетов, выполнения запросов и др.
Создание и работа с формами осуществляется по аналогии с другими объектами Access.
Для создания формы, использующей данные таблиц и запросов, очень удобен Мастер форм.
Для просмотра и использования созданной формы служит режим формы.
В дальнейшем форму можно отредактировать в режиме конструктора.
Редактирование формы
С помощью мыши можно изменить расположение элементов формы, их размеры.
Используя панель инструментов, можно изменить цвет, шрифт, оформление элементов. Чтобы изменить вид элемента, его сначала нужно выделить при помощи мыши.
Выбрав контекстное меню, пункт Свойства, можно отобразить список свойств выделенного элемента.
Чтобы удалить элемент, его нужно выделить и нажать клавишу <Delete> на клавиатуре.
Добавить в форму новые элементы можно с помощью панели элементов.
|
|
Задания для выполнения
Задача 1. Создайте форму для отображения данных о студентах.
Для создания формы используйте мастер.
Источник данных: таблица "Студенты", все поля.
Вид формы: в один столбец.
С помощью созданной формы удобно просматривать и редактировать данные о студентах, добавлять новые записи в конец таблицы (кнопка ).
Задание. Добавьте нового студента, используя созданную форму.
Форма с подчиненной используется для отображения данных из нескольких таблиц, между которыми установлены связи вида "один-ко-многим".
Создание формы с подчиненной с помощью мастера
Задача 2. Создайте форму для отображения данных обо всех изучаемых дисциплинах на каждой специальности.
Для создания формы используйте мастер.:
1. Источник данных: таблица "Учебный план"(все поля), таблица "Специальности" (все поля).
2. Вид представления данных: подчиненные формы.
3. Вид подчиненной формы: ленточный.
4. Стиль стандартный.
5. Задайте имя формы: Форма1-Учебный план по специальностям подчиненной формы: учебный план-подчиненная для формы1
Должна получиться форма следующего вида:
Обратите внимание, появилось две панели для перехода по записям для внешней и для подчиненной формы. В подчиненной форме отображается учебный план только текущей специальности.
Задание. Добавьте в учебный план каждой специальности по одной дисциплине, используя созданную форму.
Создание формы с подчиненной в конструкторе
Задача 3. Создайте форму в которой для каждого студента отображаются все его оценки из таблицы "Экзамены".
Порядок работы.
1. Создайте с помощью мастера одиночную ленточную форму на основе данных из таблиц "Экзамены" и "Учебный план", выбранные поля: семестр, дисциплина, номер студента, оценка, дата, экзаменатор.
Форме дайте имя: оценки-подчиненная для формы
2. Задайте свойства формы в разделе "данные":
Отрегулируйте размер подчиненной формы для полного и удобного отображения данных.
В результате должна получиться форма следующего вида (конструктор):
Задача 4. Добавить в "Форму 2" кнопки для поиска и удаления студентов и список для выбора оценок.
В результате должна получиться форма вида (режим формы):
Порядок работы.
1. Открыть форму в конструкторе.
2. Создание списка оценок:
3. Создание кнопок:
Добавить на форму кнопку с панели элементов. После добавления кнопки Access выводит на экран мастер по созданию кнопок. Мастер позволяет выбрать из списка команду, которую будет выполнять кнопка. Создайте две кнопки, позволяющие найти запись и удалить запись.
Можно создавать кнопки, которые будут выполнять более сложные команды пользователя, но они требуют написания макроса или программы Access.
4. Используя созданную форму, найдите какого-либо студента по его фамилии и отредактируйте его оценки. Занесите данные о новом студенте (произвольный набор данных), а затем удалите его с помощью кнопки удалить запись.
Использование свободных полей на форме
Задача 5. Создать форму для отображения студентов по специальностям и учебным группам.
Порядок работы.
объект-источник: Форма 2 студенты и их оценки
подчиненные поля: [шифр специальности]; [номер группы]
основные поля: [шифр специальности]; [Ввод Номер Группы],
таким образом, номер группы в подчиненной форме должен соответствовать введенному номеру группы, и шифр специальности в подчиненной форме должен соответствовать шифру специальности в основной форме.
В итоге должна получиться форма вида:
ТРЕБОВАНИЯ К ОТЧЕТУ
Отчет по лабораторной работе должен содержать:
ЦЕЛЬ РАБОТЫ. Изучить создание макросов в СУБД Microsoft Access. Создать главную форму приложения "Учебный процесс". Создать макросы для главной формы, для отображения добавления результатов экзаменов. Связать макросы с кнопками на формах.
Теоретическая часть
Для выполнения лабораторной работы необходимо знание следующих вопросов: Макрос, его назначение и предоставляемые возможности.
Создаваемое приложение "Учебный процесс", уже позволяет решать многие задачи. Но кроме решения поставленных задач при создании приложения должно выполняться ещё одно требование - приложение должно быть удобным для пользователя, т.е. легко управляемым.
Главная форма приложения - это форма, которая открывается первой при запуске приложения. Обычно главная форма не содержит данных, на ней располагаются кнопки или переключатели для выбора задач.
Задания для выполнения
Задача 1. Создайте "Главную форму" приложения следующего вида:
Порядок создания.
1. Главная форма не содержит данных, поэтому использовать для её создания мастер не имеет смысла. Создайте форму в режиме конструктора.
2. Растяните форму до нужного размера. Задайте цвет фона (произвольный). В левой части формы поместите рисунок (произвольный).
3. В правой части формы поместите элемент группа переключателей () с панели элементов. Далее, если установлен мастер, задать все пять переключателей в этой группе. Если мастер не установлен, переносить переключатели в группу с панели элементов по одному. Рядом с каждым переключателем задать нужную подпись. Обратите внимание, все переключатели, помещенные в группу, автоматически нумеруются. В свойствах каждого переключателя должно быть задано данные/ значение параметра: <номер> (от 1 до 5). Задайте имя группы переключателей в свойствах/ Другие/ Имя: Главная Группа. Надпись над группой переключателей удалите.
4. Поместите на форму кнопку "выход", нажатие на которую будет закрывать главную форму. Кнопка создается с помощью мастера.
5. Поместите на форму кнопку "ОК", нажатие на которую должно запускать задачу, соответствующую выбранному переключателю. Такую кнопку нельзя создать автоматически с помощью мастера. Для неё нужно написать специальный макрос или процедуру обработки события. Оставьте пока эту кнопку свободной, т.е. ни с чем не связанной.
Создайте макрос для главной формы.
Конструктор макроса содержит:
Столбец Условие содержит условия (для отображения столбца выбрать в меню Вид/Условия или соответствующую кнопку на панели инструментов). Если условие истинно, выполняется макрокоманда, содержащаяся в данной строке.
Столбец Макрокоманда содержит все действия, которые должен выполнить макрос. Команды можно выбрать из раскрывающегося списка в этом столбце. Макрос выполняет действия в том порядке, в котором они записаны.
Столбец Примечание описание макрокоманд, которое помогает понять, что именно выполняет макрос. Эти примечания необязательны, но при их отсутствии трудно разобраться в давно созданных макросах.
Область Аргументы макрокоманды аргументы указывают, к какому объекту применить макрокоманду, и задают условия выполнения действия.
Вид макроса для главной формы в режиме конструктора:
Порядок создания макроса:
Созданный макрос необходимо связать с нажатием кнопки "ОК" на главной форме.
Для этого:
Проверьте работу созданной главной формы.
Задача 2. Добавить на "форму1-учебный план по специальностям" свободное поле для ввода номера группы и кнопку [результаты экзамена] для отображения результатов выбранного экзамена в выбранной группе.
Свободному полю дайте имя: ПолеНомерГруппы.
Кнопку оставьте пока свободной, т.е. ни с чем не связанной. Для неё далее нужно будет создать макрос.
Задача 3. Создайте форму для отображения результатов экзамена.
В качестве источника данных для формы нужно создать запрос, выбирающий из таблицы [Студенты] поля: номер группы, фамилия, вычисляемое поле инициалы, и все поля из таблицы [Экзамены]. Поля код плана и номер группы на форме могут не отображаться, но их обязательно нужно включить в базовый запрос, так как они будут использоваться в условии отбора в макросе (в следующей задаче).
Вид формы в режиме конструктора: (одиночная ленточная форма).
Задайте имя формы: экзамены - связана с формой1.
Задайте в свойствах формы модальное окно: да.
Поле оценка преобразуйте в поле со списком.
Задача 4. Создайте макрос для кнопки "результаты экзамена" на форме1.
Конструктор макроса:
Макрос состоит из одной команды: ОткрытьФорму.
Для просмотра и редактирования должны открываться не все экзамены, а только результаты выбранного экзамена в выбранной группе, поэтому в аргументах макрокоманды нужно задать условие отбора (задавать его удобнее в построителе выражений):
([номер группы]=[Forms]![Форма1-учебный план по специальностям]![ПолеНомерГруппы]) And ([код плана]=[Forms]![Форма1учебный план по специальностям]![учебный план-подчиненная для формы1].Form![код плана]).
Обратите внимание, если Вы использовали другие имена формы и элементов, то выражение должно содержать Ваши имена. Чтобы не ошибиться в написании, выбирайте элементы из списка в построителе выражений.
Макрос сохранить под именем: макрос результаты экзамена.
Созданный макрос нужно связать с нажатием кнопки "результаты экзамена" на форме1.
Проверьте работу кнопки, просмотрите результаты экзаменов по всем предметам учебного плана в какой-либо учебной группе.
ТРЕБОВАНИЯ К ОТЧЕТУ
Отчет по лабораторной работе должен содержать
ЦЕЛЬ РАБОТЫ. Создание форм, запросов и макросов, реализация поставленных задач.
Задания для выполнения
Использование в запросах выражений, содержащих ссылки на поля форм.
Формы создаются на основе запросов, данные, выбранные в запросе, отображаются в полях формы. Такие формы вы уже создавали. В следующей задаче рассмотрим, как при выполнении запроса можно использовать текущие данные с формы.
Задача 1. Добавить на форму "экзамены-связана с формой 1" две кнопки: для добавления экзамена и печати ведомости стипендии. Для каждой из кнопок создать запрос и макрос.
Кнопка "добавить экзамен".
Создание запроса:
В лабораторной работе №3 был создан запрос (задача 1), позволяющий добавить в таблицу "Экзамены" информацию об одном экзамене: поля номер студента, код плана экзамена, дата и экзаменатор для студентов из одной учебной группы.
Откройте этот запрос в конструкторе.
Сохраните под именем "добавление экзамена для формы1".
Отредактируйте запрос.
Запрос в режиме конструктора: (обратите внимание, данные отображены не полностью)
Запрос в режиме SQL:
PARAMETERS [введи дату экзамена] DateTime, [введи экзаменатора] Text (50);
INSERT INTO Экзамены ( [номер студента], [код плана], дата, экзаменатор)
SELECT Студенты.[номер студента],
[Forms]![Форма1-учебный план по специальностям]![учебный план-подчиненная для формы1].Form![код плана] AS В1,
[введи дату экзамена] AS В2,
[введи экзаменатора] AS В3
FROM Студенты
WHERE Студенты.[шифр специальности]=[Forms]![Форма1-учебный план по специальностям]![шифр специальности]
AND Студенты.[номер группы])=[Forms]![Форма1-учебный план по специальностям]![ПолеНомерГруппы];
Каждый раз при выполнении этого запроса будут запрашиваться значения параметров [введи дату экзамена] и [введи экзаменатора]. Введенные значения будут добавляться соответственно в поля [дата] и [экзаменатор] в таблице "Экзамены".
В поле [код плана] будет добавлено значение [Forms]![Форма1-учебный план по специальностям]![учебный план-подчиненная для формы1].Form![код плана], то есть значение кода плана, выбранное в данный момент пользователем на форме1 в подчиненном учебном плане. Чтобы не ошибиться в написании выражения, воспользуйтесь построителем выражений в режиме конструктора.
В поле [номер студента] в таблице "Экзамены" данные добавляются из [Студенты].[номер студента] для всех записей, выбранных в соответствии с условием отбора.
Условие отбора определяет учебную группу. Значения шифра специальности и номера группы выбираются из соответствующих полей на форме1.
Так как этот запрос использует данные с формы1, то выполнить его можно, если эта форма открыта.
Создание макроса для добавления экзамена:
Макрос состоит из двух команд:
Созданный макрос нужно связать с нажатием кнопки "добавление экзамена".
Кнопка "печать экзаменационной ведомости".
При нажатии этой кнопки должна печататься выбранная экзаменационная ведомость. Так как мы не можем использовать принтер, то заменим действие печать на просмотр экзаменационной ведомости.
Для решения поставленной задачи нужно сформировать соответствующий отчет, а затем с нажатием кнопки связать действие: просмотр отчета.
Создание отчета.
Отчет "экзаменационные ведомости" уже был создан ранее, но он формирует все ведомости сразу. Изменим его, чтобы формировалась только одна выбранная ведомость.
Для этого нужно внести изменения в запрос, являющийся источником данных для отчета.
Для выбора ведомости нужно добавить условие отбора:
WHERE [Учебный план].[код плана])=[Forms]![Форма1-учебный план по специальностям]![учебный план-подчиненная для формы1].Form![код плана]
AND Студенты.[шифр специальности] =[Forms]![Форма1-учебный план по специальностям]![шифр специальности]
AND Студенты.[номер группы])=[Forms]![Форма1-учебный план по специальностям]![ПолеНомерГруппы]
Задача 2. Создать форму для реализации третьей задачи главной формы: изменение стипендии.
Форме дать имя: Форма4-Изменение стипендии.
Конструктор формы:
С нажатием кнопки "добавить новых студентов" должен быть связан запрос на добавление номеров новых студентов в таблицу стипендия. Этот запрос был создан в лабораторной работе №3.
С нажатием кнопки "обновить стипендию по результатам сессии" должна быть связана следующая последовательность действий (макрос для обновления стипендии):
Задача 3. Изменить макрос для главной формы.
При условии [Главная Группа]=3 задать макрокоманду ОткрытьФорму, имя формы: Форма4-Изменение стипендии.
Задача 4. Настроить приложение "Учебный процесс" так, чтобы "Главная форма" открывалась автоматически при запуске приложения.
Для этого нужно выбрать пункт меню Сервис/Параметры запуска и задать параметры:
Задача 5. Задать пароль для открытия приложения "Учебный процесс".
Для этого нужно:
Закройте приложение и откройте его заново.
Проверить работу всех задач созданного приложения.
ТРЕБОВАНИЯ К ОТЧЕТУ
Отчет по лабораторной работе должен содержать:
Напишите на языке SQL следующие запросы для созданной на лабораторных работах базы данных "Учебный процесс".
Вариант 1
Вариант 2
Содержание работы (отчета)
Нормализация таблиц: сформулировать требования трех нормальных форм и показать их справедливость для каждой из таблиц.
Привести примеры заполнения таблиц данными (2-3 записи). Привести итоговую логическую модель базы данных, полученную после нормализации.
Имя поля |
Тип |
Размер |
Обязательное поле |
Индексированное поле |
Ключевое поле |
СОДЕРЖАНИЕ
Лабораторная работа №1СУБД Microsoft Access. Таблицы………………………….. |
3 |
Лабораторная работа №1Запросы на выборку ………………………………………… |
11 |
Лабораторная работа №3Запросы на изменение данных и создание таблиц…... |
20 |
Лабораторная работа №4Язык SQL………………………………………………………… |
27 |
Лабораторная работа №5Отчеты……………………………………………………………. |
30 |
Лабораторная работа №6Формы для отображения данных…………………………. |
34 |
Лабораторная работа №7Макросы. Управление приложением……………………... |
43 |
Лабораторная работа №8Приложение "Учебный процесс" (продолжениеработы)……………………………………………………………... |
48 |
Домашнее задание №1………………………………….. |
53 |
Домашнее задание №2………………………………….. |
54 |