- •"Створення у середовищі ms Access та дослідження бази даних "Система контролю безпеки руху"
- •2012 Введение
- •1. Анализ предпосылок предметной области
- •База данных сбд
- •2. Структура базы данных
- •3. Проектирование базы данных
- •4. Создание связей между таблицами
- •5. Формы и их информационные возможности
- •6. Исследование способов создания запросов
- •7. Создание запросов с вычислениями
- •8. Графическое представление информации
- •9. Основы создания отчетов
- •10. Оформление курсовой работы
- •11. Защита курсовой работы
- •12. Контрольные вопросы
- •Список литературы
7. Создание запросов с вычислениями
7.1.В результирующих таблицах запросов могут быть созданы поля с вычисляемыми выражениями. В исходных таблицах такое поле не создается и не влияет на них. Каждый, кто обращается к базе, может с помощью запросов как угодно манипулировать данными и получать любые результаты, но при этом начальные таблицы остаются неприкосновенными и неизменно одинаковыми для всех пользователей.
Для создания запроса с вычислениями используется бланк "запроса на выборку" в режиме Конструктора. Разница только в том, что в очередном свободном столбце вместо названия поля записывается формула. Формула начинается названием вычисляемой величины и двоеточием; это название в результирующей таблице запроса образует название поля с вычислениями. В формулу входятоперанды- ограниченные квадратными скобками названия полей, принимающих участие в вычислениях, и знаки математических операций (таблица 13), например,Стоимость: [Сумма] / [Цена].
В узенький столбец сложно записать длинную формулу, но если нажать [Shift] + [F2], то открывается вспомогательное диалоговое окноОбласть ввода. В поле этого окна можно ввести формулу любой длины. После нажатия кнопкиОКформула переводится в ячейку бланка "запроса на выборку".
7.2.По заданию предлагается по данным поляУщерб таблицыУчет ДТПвычислить количество нарушений каждого водителя, сумму его ущерба и общую сумму ущерба всех водителей. Для вычисления каждого из указанных параметров нужно создавать отдельный запрос.
Запросы с итоговыми вычислениями отдельно для каждого водителя (то есть в группах повторяемых табельных номеров) образуются следующими действиями.
1) Для создания запроса относительно количества ДТП каждого водителя открыть бланк "запроса на выборку" в режиме Конструктори добавить таблицыИнформацияиУчет ДТПиз окнаДобавление таблицы. Завершить выбор таблиц нажатием кнопкиЗакрыть.
2) Перетащить из таблицы Информацияв нижнюю часть бланка полеФИО, а из таблицыУчет ДТП- полеУщерб.
3) Нажатием кнопки Групповые операциина панели инструментовСтандартнаяприбавить в нижней части бланкаКонструкторстрокуГруппировка.
4) В столбце Ущербв строкеПолепередназваниемУщербввести название вычисляемого параметраКоличество ДТП:. Удалить в этом столбце функциюГруппировкаи ввести вместо него функциюCount (таблица 14), вычисляющую количество единиц в группе, то есть количество нарушений каждого водителя.
Таблица 13. Операнды MS Access
Оператор |
Пример |
Описание |
+ |
[Итог] + [Надбавка] |
Добавляет два операнда |
- |
Date( ) - 7 |
Вычисляет разницу двух операндов |
* |
[Коробка] * [Цена коробки] |
Вычисляет произведение двух операндов |
/ |
[Количество] / 12.55 |
Делит один операнд на второй |
\ |
[Коробка] \ 2 |
Делит нацело один целый операнд на второй. При использовании деления нацело операнды с десятичными дробями округляются до целого, а дробная часть отбрасывается |
Mod |
[Коробка] Mod 12 |
Возвращает остаток от деления нацело. Например, 15 Mod 12 равняется 3 |
^ |
Показатель ^ |
Возводит операнд (основу) в степень [показатель] |
< |
1 < 100 |
Меньше |
<= |
1 <= 1 |
Меньше или равно |
= |
1 = 100 |
Равняется |
>= |
100 >= 1 |
Больше или равно |
> |
100 > 100 |
Больше |
<> |
1 < > 100 |
Не равно |
And |
|
Конъюнкция (логическое И) |
Or |
|
Дизъюнкция (логическое ИЛИ) |
Not |
|
Логическое отрицание |
Eqv |
|
Логическая эквивалентность |
Таблица 14. Функции MS Access
Функция |
Типы полей |
Описание |
Avg( ) |
Все типы полей, кроме "Текстовый", "Поле Memo" и "Поле объекта OLE" |
Вычисляет арифметическое среднее набора чисел, находящихся в указанном поле запроса |
Count( ) |
Все типы полей |
Вычисляет количество заполненных записей |
Max( ) |
Все типы полей, кроме "Текстовый", "Поле Memo" и "Поле объекта OLE" |
Возвращает максимальное значение из данных указанного поля |
Min( ) |
Все типы полей, кроме "Текстовый", "Поле Memo" и "Поле объекта OLE" |
Возвращает минимальное значение из данных указанного поля |
Sum( ) |
Все типы полей, кроме "Текстовый", "Поле Memo" и "Поле объекта OLE" |
Возвращает сумму данных указанного поля |
5) По окончании формирования бланка этого запроса нажать кнопку Закрыть(справа в строке заголовка бланка). На экран выводится окно для ввода названия запроса; удалить предложенное название, ввести названиеКоличество ДТП 3и нажать [Enter], что тождественно нажатиюOK.
6) Для создания запроса относительно ущерба каждого водителя открыть бланк "запроса на выборку" в режиме Конструктори добавить таблицыИнформацияиУчет ДТПиз окнаДобавление таблицы. Завершить выбор таблиц нажатием кнопкиЗакрыть.
7) Перетащить из таблицы Информацияв нижнюю часть бланка полеФИО, а из таблицыУчет ДТП- поле Ущерб.
8) Нажатием кнопки Групповые операциина панели инструментовСтандартнаядобавить в нижней части бланкаКонструкторастрокуГруппировка.
9) В столбце Ущербв строкеПолепередназваниемУщербввести название вычисляемого параметраУщерб ДТП:.Удалитьв этом столбце функциюГруппировкаи ввести вместо нее функциюSum(таблица 14), вычисляющей сумму ущерба каждого водителя.
10) По окончании формирования бланка этого запроса нажать кнопку Закрыть. На экран выводится окно для ввода названия запроса; удалить предложенное название, ввести названиеУщерб ДТП 3и нажать [Enter].
11) Для создания запроса относительно общегоколичества ДТП, причиненных водителями, иобщей суммы ущерба открыть бланк "запрос на выборку" в режимеКонструктор. Из окнаДобавление таблицыв верхнюю часть бланка добавить таблицуУщерб ДТП; в нижнюю часть бланка дважды перетащить полеУщерб.
12) В строке Полев первом столбике названиеУщербзаменить таким выражением:Количество ДТП:Count([Ущерб])
В строке Полево втором столбце названиеУщербзаменить таким выражением:Ущерб ДТП:Sum([Ущерб])
13) По окончании формирования бланк этого запроса нажать кнопку Закрыть. На экран выводится окно для ввода названия запроса; удалить предложенное название, ввести названиеОбщий ущерб 3и нажать [Enter]. Обратить внимание на то, что после закрытия последнего запроса в его строкеИмя таблицыназвания таблицыУчет ДТПскрываются средой Access.
14) Выполнить запросы для проверки выполненных действий.