Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Архив2 / курсовая docx40 / Kursovaya_rabota_2(1).docx
Скачиваний:
91
Добавлен:
07.08.2013
Размер:
941.77 Кб
Скачать

Запрос в режиме конструктора

В окне базы данных выделить объект Запросы и дважды кликнуть мышкой кнопку Создание запроса в режиме конструктора или на панели инструментов нажать кнопку Конструктор. Выбрать все таблицы.

Заполняем бланк запроса.

В строку ПОЛЕ: бланка запроса выбрать поля FAM, OKL, GOD, NAZ, NDOL, так как значения этих полей требуется вывести в таблице результатов выполнения запроса. При этом автоматически заполняется строка Имя таблицы:. В строке Сортировка: поля FAM выбираем по возрастанию. В строке Вывод на экран: устанавливаем флажки в тех полях значения, которых следует отобразить в таблице результатов выполнения запроса. В строке Условие отбора: записываем выражения для отбора записей в соответствии с условием: в поле GOD - <2000 и в поле NDOL – “инженер”, в строке или: записываем в поле GOD выражение <2000 и в поле NDOL – “техник”.

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

Запрос в режиме sql

SELECT КАДРЫ.FAM, ДОЛЖНОСТИ.OKL, КАДРЫ.GOD, ОТДЕЛ.NAZ, ДОЛЖНОСТИ.NDOL

FROM ОТДЕЛ INNER JOIN (ДОЛЖНОСТИ INNER JOIN КАДРЫ ON ДОЛЖНОСТИ.NDOL = КАДРЫ.DOL) ON ОТДЕЛ.NOM = КАДРЫ.[NOT]

WHERE (((КАДРЫ.GOD)<2000) AND ((ДОЛЖНОСТИ.NDOL)="инженер")) OR (((КАДРЫ.GOD)<2000) AND ((ДОЛЖНОСТИ.NDOL)="техник"))

ORDER BY КАДРЫ.FAM;

Результаты выполнения запроса (запрос в режиме таблицы)

Фамилия

Оклад

Год поступления

Наименование отдела

Наименование должности

Дурнова

20000,00

1995

Финансовый

техник

Иванов

20000,00

1999

Финансовый

техник

Суркова

30000,00

1997

Финансовый

инженер

Последовательность действий при сохранении Запроса в режиме конструктора:

  • открыть запрос в режиме конструктора;

  • нажать на клавиатуре клавишу Print Screen;

  • Пуск-Программы-Стандартные-Paint-Правка-Вставить;

  • вырезать запрос;

  • правка-копировать;

  • открыть документ в MS WORD;

  • правка-вставить.

Запрос 2. (Для студентов с нечётными по списку номерами). Из таблицы КАДРЫ выбрать лаборантов ФАМИЛИИ, которых начинаются с букв от А до К..

В таблице результатов выполнения запроса предусмотреть вывод значений следующих полей:

Фамилия

Наименование должности

Год поступления

Наименование отдела

Запрос сохранить, как файл Запрос2.doc.

Запрос 2. (Для студентов с чётными по списку номерами). Из таблицы КАДРЫ выбрать экономистов ФАМИЛИИ, которых начинаются с букв от Р до Я..

В таблице результатов выполнения запроса предусмотреть вывод значений следующих полей:

Фамилия

Наименование должности

Год поступления

Наименование отдела

Запрос сохранить, как файл Запрос2.doc.

Запрос 3. (Для студентов с нечётными по списку номерами). Из таблицы КАДРЫ выбрать экономистов, поступивших на работу в период с 2000 до 2005 года. При записи выражения, задающего условие отбора по годам использовать оператор BETWEEN………AND… .Список рассортировать по убыванию по годам поступления и представить в виде:

Фамилия

Наименование отдела

Наименование должности

Год поступления

Запрос сохранить, как файл Запрос3.doc .

Запрос 3. (Для студентов с чётными по списку номерами). Из таблицы КАДРЫ выбрать сотрудников 1 отдела, поступивших на работу в период с 1995 до 2000 года. При записи выражения, задающего условие отбора по годам использовать оператор >=……AND… <=….. Список рассортировать по возрастанию по годам поступления и представить в виде:

Фамилия

Год поступления

НОМЕР ОТДЕЛА

Должность

Запрос сохранить, как файл Запрос3.doc

Запрос 4. (Для студентов с нечётными по списку номерами). Из таблицы КАДРЫ выбрать сотрудников, родившихся в период с 1.01.1970 года по 31.12.1979 года. При записи выражения, задающего условие использовать оператор BETWEEN………AND… .Список рассортировать по убыванию дат рождения и представить в виде:

Должность

Фамилия

Дата рождения

Запрос сохранить, как файл Запрос4.doc

Запрос 4. (Для студентов с чётными по списку номерами). Из таблицы КАДРЫ выбрать сотрудников, родившихся в период с 1.01.1960 года по 31.12.1970 года. При записи выражения, задающего условие использовать оператор >=………AND… .<= . Список рассортировать по возрастанию дат рождения и представить в виде:

Фамилия

Дата рождения

Номер отдела

Запрос сохранить, как файл Запрос4.doc

5.Рассмотрим создание запроса с вычисляемыми полями

Запрос 1. Из таблицы КАДРЫ отобрать сотрудников, родившихся в первой половине года.

В таблице результатов выполнения запроса предусмотреть вывод значений следующих полей:

Фамилия

Год поступления

Месяц рождения

Вариант запроса с заголовком

Запрос в режиме конструктора

В вычисляемом поле записана функция MONTH([DAT]), которая выделяет номер месяца из поля DAT, тип поля DAT - дата/время.

Запрос в режиме SQL

SELECT КАДРЫ.FAM, КАДРЫ.GOD, Month([DAT]) AS [Месяц рождения]

FROM КАДРЫ

WHERE (((Month([DAT]))<7));

В режиме SQL выражение для вычисляемого поля записывается в инструкции SELECT, а заголовок вычисляемого поля записывается после слова AS.

Результат выполнения запроса

Фамилия

Год поступления

Месяц рождения

Васина

2005

3

Грязнова

2002

5

Чернов

2003

4

Козлов

2000

1

Сухов

2005

2

Яшин

1997

5

Вариант запроса без заголовка

Запрос в режиме конструктора

Запрос в режиме SQL

SELECT КАДРЫ.FAM, КАДРЫ.DAT, Month([DAT]) AS Выражение1

FROM КАДРЫ

WHERE (((Month([DAT]))<7));

Результат выполнения запроса

Фамилия

Дата рождения

Выражение1

Васина

03.03.1980

3

Грязнова

07.05.1975

5

Чернов

19.04.1970

4

Козлов

01.01.1970

1

Сухов

02.02.1960

2

Яшин

30.05.1955

5

Запрос 2.

Из таблицы КАДРЫ выбрать сотрудников, возраст которых находится в диапазоне от 20 до 40 лет (включительно). При записи выражения, задающего условие отбора по возрасту использовать оператор BETWEEN………AND… . Список рассортировать по убыванию возраста.

Для определения текущего года использовать функцию DATE().

В таблице результатов выполнения запроса предусмотреть вывод значений следующих полей:

Фамилия

Дата рождения

Возраст

Функция Year(Date()) возвращает значение текущего года, а функция Year([DAT]) возвращает год рождения сотрудника. Возраст каждого сотрудника сравнить с условием (от 20 до 40).

Запрос 2.

Из таблицы КАДРЫ выбрать сотрудников, возраст которых находится в диапазоне от 20 до 40 лет (включительно). При записи выражения, задающего условие отбора по возрасту использовать оператор

>= ….AND….. <=… . Список рассортировать по возрастанию возраста.

Для определения текущего года использовать функцию NOW().

В таблице результатов выполнения запроса предусмотреть вывод значений следующих полей:

Фамилия

Дата рождения

Возраст

Функция NOW() возвращает текущую дату и время, снятые с компьютера в формате чч.мм.гггг.чч:мм:СС.

Функция Year(NOW()) возвращает значение текущего года, а функция Year([DAT]) возвращает год рождения сотрудника. Возраст каждого сотрудника сравнить с условием (от 20 до 40).

Запрос 3. (Для студентов с нечётными по списку номерами). Из таблицы КАДРЫ выбрать сотрудников, стаж работы которых не превышает 5 лет.

В таблице результатов выполнения запроса предусмотреть вывод значений всех полей таблицы КАДРЫ.

Фамилия

Должность

Год поступления

Дата рождения

Номер отдела

СТАЖ

Запрос 3. (Для студентов с чётными по списку номерами). Из таблицы КАДРЫ выбрать инженеров, стаж работы которых больше 3 лет.

В таблице результатов выполнения запроса предусмотреть вывод значений всех полей таблицы КАДРЫ.

Фамилия

Должность

Год поступления

Дата рождения

Номер отдела

СТАЖ

Запрос 4. (Для студентов с нечётными по списку номерами).

Всем сотрудникам Планового отдела выписать премию в размере 40% от должностного оклада.

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

Фамилия

Должность

ПРЕМИЯ

Запрос 4. (Для студентов с чётными по списку номерами).

Всем сотрудникам 1 отдела выписать премию в размере 40% от должностного оклада.

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

Фамилия

Должность

ПРЕМИЯ

Функции Left(), Mid() выделяют часть текстового поля. Формат функций:

1 Left(аргумент1;аргумент2), где аргумент1 - имя поля или строковое выражение, аргумент2 - количество выделенных символов;l

2 Mid(аргумент1;аргумент2;аргумент3), где аргумент1 - имя поля или строковое выражение, аргумент2 - определяет позицию первого выделенного символа, аргумент3 - количество выделенных символов.

При создании 5 запроса для выделения числа воспользоваться функцией LEFT(), а для выделения месяца – функцией MID().

Запрос 5. (Для студентов с нечётными по списку номерами). Из таблицы КАДРЫ выбрать сотрудников, которые родились в первой половине любого месяца и во второй половине любого года.

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

Фамилия

Дата рождения

Запрос 5. (Для студентов с чётными по списку номерами). Из таблицы КАДРЫ выбрать сотрудников, которые родились во второй половине любого месяца и в первой половине любого года.

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

Фамилия

Дата рождения

6.Запрос с параметрами

Рассмотрим создание запроса с параметрами

Запрос 1. Для произвольно заданной должности и произвольно заданного отдела отобразить список сотрудников.

В таблице результатов выполнения запроса предусмотреть вывод значений следующих полей:

Фамилия

Наименование должности

Оклад

Наименование отдела

Запрос в режиме конструктора

В данной задаче в качестве первого параметра используется значение должности, поэтому в поле DOL в строке Условие отбора в квадратных скобках записываем текст приглашения ([введите должность]). В качестве второго параметра используется номер отдела, поэтому в поле NOM в строке Условие отбора в квадратных скобках записываем текст приглашения ([введите номер отдела]).

Запрос в режиме SQL

SELECT КАДРЫ.FAM, ДОЛЖНОСТИ.NDOL, ДОЛЖНОСТИ.OKL, ОТДЕЛ.NAZ

FROM ОТДЕЛ INNER JOIN (ДОЛЖНОСТИ INNER JOIN КАДРЫ ON ДОЛЖНОСТИ.NDOL = КАДРЫ.DOL) ON ОТДЕЛ.NOM = КАДРЫ.[NOT]

WHERE (((ДОЛЖНОСТИ.NDOL)=[введите должность]) AND ((ОТДЕЛ.NOM)=[введите номер отдела]));

После запуска запроса появляется первое диалоговое окно с текстом приглашения - введите должность, в пустую строку окна пользователь вводит любую, интересующую его в данный момент должность (например, техник), а затем нажимает кнопку OK.

Затем появляется второе диалоговое окно с текстом приглашения- введите номер отдела, в пустую строку окна пользователь вводит номер любого, интересующего его в данный момент отдела (например 2), а затем нажимает кнопку OK.

Результат выполнения запроса

Фамилия

Наименование должности

Оклад

Наименование отдела

Дурнова

техник

20000,00

Финансовый

Маркова

техник

20000,00

Финансовый

В электронных тетрадях по каждому запросу размещать:

  • условие запроса,

  • запрос в режиме конструктора,

  • запрос в режиме SQL,

  • диалоговые окна с текстом приглашения,

  • результаты выполнения запроса.

Запрос 2. (Для студентов с нечётными по списку номерами). Из таблицы КАДРЫ выбрать сотрудников, родившихся позже 01.01.1970.

В таблице результатов выполнения запроса предусмотреть вывод значений следующих полей:

Фамилия

Дата рождения

Должность

Наименование отдела

Запрос 2. . Из таблицы КАДРЫ выбрать экономистов, родившихся ранее 01.01.1970.

В таблице результатов выполнения запроса предусмотреть вывод значений следующих полей:

Фамилия

Дата рождения

Запрос 3. Выбрать фамилии экономистов, поступивших на работу в произвольно заданный интервал лет. Список фамилий расположить по алфавиту.

Для решения поставленной задачи следует разработать запрос, обеспечивающий ввод двух параметров: год начала интервала и год окончания интервала.

В таблице результатов выполнения запроса предусмотреть вывод значений следующих полей:

Фамилия

Год поступления

Запрос 3. Выбрать фамилии лаборантов, поступивших на работу в произвольно заданный интервал лет. Список фамилий расположить по алфавиту.

Для решения поставленной задачи следует разработать запрос, обеспечивающий ввод двух параметров: год начала интервала и год окончания интервала.

В таблице результатов выполнения запроса предусмотреть вывод значений следующих полей:

Фамилия

Год поступления

Запрос 4. (Для студентов с нечётными по списку номерами). Выбрать фамилии сотрудников 1 отдела, родившихся в произвольно заданный интервал дат рождения. Список фамилий расположить по алфавиту.

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

В таблице результатов выполнения запроса предусмотреть вывод значений следующих полей:

Фамилия

Дата рождения

Наименование должности

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

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

В таблице результатов выполнения запроса предусмотреть вывод значений следующих полей:

Фамилия

Наименование отдела

Дата рождения

Встроенные функции вводятся в строку Групповая операция бланка конструктора запроса. Эту строку можно добавить в бланк, кликнув мышкой по кнопке Групповые операции Панели инструментов окна Microsoft Access.

7. Рассмотрим создание запроса с групповыми вычислениями.

Запрос 1. По информации, представленной в таблице КАДРЫ, для каждой должности определить фонд заработанной платы и количество сотрудников каждой должности.

При создании запроса в бланк конструктора добавляем строку Групповая операция. Требуется выполнять вычисления для каждой должности, поэтому в строке Групповая операция в поле NDOL оставляем элемент Группировка, который определяет группы, для которых выполняются вычисления. Имена вычисляемым полям не присваиваем.

В режиме SQL появилась новая инструкция GROUP BY, которая обеспечивает вычисления заданных функций отдельно для каждой должности по значениям в поле NDOL.

SELECT ДОЛЖНОСТИ.NDOL, Sum(ДОЛЖНОСТИ.OKL) AS [Sum-OKL], Count(КАДРЫ.FAM) AS [Count-FAM]

FROM ОТДЕЛ INNER JOIN (ДОЛЖНОСТИ INNER JOIN КАДРЫ ON ДОЛЖНОСТИ.NDOL = КАДРЫ.DOL) ON ОТДЕЛ.NOM = КАДРЫ.[NOT]

GROUP BY ДОЛЖНОСТИ.NDOL

ORDER BY ДОЛЖНОСТИ.NDOL;

Наименование должности

Sum-OKL

Count-FAM

инженер

150000

5

лаборант

40000

4

нотариус

100000

2

техник

60000

3

экономист

160000

4

юрист

120000

2

SELECT ДОЛЖНОСТИ.NDOL, Sum(ДОЛЖНОСТИ.OKL) AS ФОНД, Count(КАДРЫ.FAM) AS КОЛИЧЕСТВО

FROM ОТДЕЛ INNER JOIN (ДОЛЖНОСТИ INNER JOIN КАДРЫ ON ДОЛЖНОСТИ.NDOL = КАДРЫ.DOL) ON ОТДЕЛ.NOM = КАДРЫ.[NOT]

GROUP BY ДОЛЖНОСТИ.NDOL

ORDER BY ДОЛЖНОСТИ.NDOL DESC;

Наименование должности

ФОНД

КОЛИЧЕСТВО

юрист

120000

2

экономист

160000

4

техник

60000

3

нотариус

100000

2

лаборант

40000

4

инженер

150000

5

.

Запрос 2. По информации, представленной в таблице КАДРЫ, для каждой должности определить средний возраст сотрудников

Для определения возраста сотрудника следует вычесть год его рождения из текущего года и использовать встроенную функцию AVG() для определения среднего возраста.

На бланке конструктора запроса создано вычисляемое поле и записано выражение для определения среднего возраста. В строке Групповая операция этих полей выбран элемент Выражение.

SELECT ДОЛЖНОСТИ.NDOL, Avg(Year(Date())-Year([DAT])) AS Выражение1

FROM ОТДЕЛ INNER JOIN (ДОЛЖНОСТИ INNER JOIN КАДРЫ ON ДОЛЖНОСТИ.NDOL = КАДРЫ.DOL) ON ОТДЕЛ.NOM = КАДРЫ.[NOT]

GROUP BY ДОЛЖНОСТИ.NDOL

ORDER BY Avg(Year(Date())-Year([DAT]));

Наименование должности

Выражение1

лаборант

24

экономист

39

техник

42,3333333333333

юрист

43

инженер

46,4

нотариус

47

Модифицируем Запрос 2.

Открыть Запрос 2 в режиме Конструктора.

Установить указатель мышки в любую позицию вычисляемого поля с заголовком Выражение1. Кликнуть правой кнопкой мышки. Открывается контекстное меню, в котором следует выбрать строку Свойства (смотри рисунок).

На экране отобразится окно Свойства поля, в котором на вкладке Общие установить Формат поля - фиксированный и Число десятичных знаков - 2.

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

SELECT ДОЛЖНОСТИ.NDOL, Avg(Year(Date())-Year([DAT])) AS [СРЕДНИЙ ВОЗРАСТ]

FROM ОТДЕЛ INNER JOIN (ДОЛЖНОСТИ INNER JOIN КАДРЫ ON ДОЛЖНОСТИ.NDOL = КАДРЫ.DOL) ON ОТДЕЛ.NOM = КАДРЫ.[NOT]

GROUP BY ДОЛЖНОСТИ.NDOL

ORDER BY Avg(Year(Date())-Year([DAT]));

Наименование должности

СРЕДНИЙ ВОЗРАСТ

лаборант

24,00

экономист

39,00

техник

42,33

юрист

43,00

инженер

46,40

нотариус

47,00

Запрос 3. По информации, представленной в таблице КАДРЫ, для должностей “лаборант” и “техник” определить средний возраст сотрудников

В таблице результатов выполнения запроса предусмотреть вывод значений следующих полей:

Наименование должности

СРЕДНИЙ ВОЗРАСТ

Запрос 3. По информации, представленной в таблице КАДРЫ, для должностей “юрист” и “нотариус” определить средний возраст сотрудников.

В таблице результатов выполнения запроса предусмотреть вывод значений следующих полей:

Наименование должности

СРЕДНИЙ ВОЗРАСТ

Запрос 4.(Для всех студентов) По информации, представленной в таблице КАДРЫ, для каждой должности определить средний стаж работы.

В таблице результатов выполнения запроса предусмотреть вывод значений следующих полей:

Должность

Средний стаж

Применения встроенных функций MAX и MIN в запросах на выборку с итоговыми вычислениями.

Запрос 5.(Для всех студентов) По информации, представленной в таблице КАДРЫ, для каждой должности определить год рождения самого молодого и год рождения самого опытного (с точки зрения возраста) сотрудника.

В таблице результатов выполнения запроса предусмотреть вывод значений следующих полей:

Наименование должности

САМЫЙ МОЛОДОЙ

САМЫЙ ОПЫТНЫЙ

8.1.Создание различных элементов управления в форме КАДРЫ

Добавление различных элементов управления осуществляется в режиме конструктора

1.Создание надписи (свободный элемент управления)

Порядок действий:

1.увеличить область заголовка формы и размер самой формы, перемещая их границы указателем мышки,

2. кликнуть мышкой и отпустить кнопку Надпись на Панели элементов,

3.переместить указатель мышки (указатель мышки принимает вид +A ) в область заголовка формы, где должна располагаться надпись, нажать и отпустить левую кнопку мышки и ввести текст заголовка,

4. выделив текст заголовка, можно его форматировать, то есть менять размер, цвет, начертание шрифта, цвет фона и так далее.

2.Создание поля для вычисления

Порядок действий:

  1. кликнуть мышкой и отпустить кнопку Поле на Панели, элементов

  2. переместить указатель мышки (указатель мышки принимает вид +ab )в область формы, где должно располагаться поле, нажать и отпустить левую кнопку мышки,

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

4.затем создаём, редактируем и форматируем поле Надпись, записывая в него наименование результата вычислений.

ЗАДАНИЕ 1.

Последовательность действий:

  1. в окне базы данных в списке Объекты кликнуть значок Формы,

  2. на панели инструментов окна базы данных кликнуть кнопку Создать,

  3. появляется окно Новая форма, в котором следует выбрать строку Мастер форм,

  4. в текстовой строке окна Новая форма выбрать имя таблицы ОТДЕЛ и нажать кнопку OK,

  5. появляется окно Создание форм, в котором из текстового окна Доступные поля следует перенести все поля таблицы ОТДЕЛ в текстовое окно Выбранные поля,

  6. в строке Таблицы и запросы (этого же окна) выбрать таблицу КАДРЫ и перенести все поля в текстовое окно Выбранные поля,

  7. в строке Таблицы и запросы (этого же окна) выбрать таблицу ДОЛЖНОСТИ и перенести поле OKL в текстовое окно Выбранные поля и нажать кнопку Далее (следует отметить, что порядок выбора таблиц не имеет значения),

  8. появляется следующее окно Создание форм, в котором выделить имя главной таблицы ОТДЕЛ, установить переключатель Подчинённые формы и нажать кнопку Далее (вид представления данных зависит от того какая таблица выделена - главная или подчинённая),

  9. в следующем окне выбрать внешний вид формы - ленточный и нажать кнопку Далее,

  10. в следующем окне выбрать любой стиль и нажать кнопку Далее,

  11. в следующем окне задать имена форм (лучше, когда имена форм совпадает с именами таблиц, то есть ОТДЕЛ1 и КАДРЫ подчинённая форма и нажать кнопку Готово.

На рисунке представлена подчинённая форма в режиме конструктора и в режиме формы.

ЗАДАНИЕ 2