Смекни!
smekni.com

Создание и обработка баз данных в СУБД Access (стр. 4 из 5)

6. Для ограничения точности результата двумя знаками выберите в окне Свойства поля для поля ПБАЛЛ в строке Формат поля – Фиксированный

7. Сохраните этот запрос под именем ЧИСЛО СТУДЕНТОВ И СРЕДНИЙБАЛЛ ГРУППЫ

Рассмотрите технологию конструирования многотабличного запроса.

Пусть необходимо получить информацию об оценках, полученных студентами по всем предметам.

1. В режиме Конструктор создайте новый запрос.

2. В окне Добавление таблицы выберите СТУДЕНТ, УСПЕВАЕМОСТЬ, ПРЕДМЕТ.

3. Если хотите видеть в бланке запроса наряду с именем поля еще и имя таблицы, выполните команду Вид/Имена таблиц

4. Перетащите в строку бланка запроса Поле поля:

· ФИО - из таблицы СТУДЕНТ

· НП - из таблицы ПРЕДМЕТ

· ОЦЕНКА – из таблицы УСПЕВАЕМОСТЬ

5. Если необходимо получить информацию об успеваемости конкретных студентов, например, Шакиртовой и Бидаралова, введите эти значения в строку Условиеотбора записей. Запишите в поле ФИО фамилии студентов в разных строках бланка запроса, т.к. необходимо выбрать записи по логике «или». Поскольку инициалы студентов не известны, фамилии задайте с использованием шаблона *. Заметьте, что система сама вставляет оператор Like, определяющий поиск по образцу.

6. Выполните запрос и сохраните под именем ОЦЕНКИ ПО ПРЕДМЕТАМ

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

1. Откройте запрос ОЦЕНКИ ПО ПРЕДМЕТАМ в Режиме конструктора.

2. В строке Условие отбора поля ФИО введите обращение к пользователю в квадратных скобках, например, [Фамилия и инициалы студента]

3. Для поля НП - второй параметр запроса [Введите наименование предмета]

4. Выполните запрос, задав любую фамилию из таблицы СТУДЕНТ и любой предмет из таблицы УСПЕВАЕМОСТЬ

Построение запроса на основе других запросов

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

1. Создайте запрос на выборку, в котором по таблице ПРЕПОДАВАТЕЛЬ с помощью функции Count подсчитывается число преподавателей на каждой кафедре. Сохраните запрос под именем ЧИСЛО ПРЕПОДАВАТЕЛЕЙ КАФЕДРЫ.

2. Для подсчета общего числа часов занятий, проводимых каждой кафедрой, создайте запрос на базе таблиц ПРЕПОДАВАТЕЛЬ и ИЗУЧЕНИЕ.

3. Сохраните запрос под именем ЧАСЫ КАФЕДРЫ и выполните.

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

5. Создайте запрос в Режиме конструктора. В окне Добавление таблицы откройте вкладку Таблицы и запросы и выберите таблицу КАФЕДРА и два предыдущих запроса

6. В строку Поле из таблицы КАФЕДРА перенесите поля ККАФ и НКАФ, а из запросов - соответственно Count_ ТАБН и Sum_ЧАСЫ. Таблица КАФЕДРА включена в запрос для дополнения кода кафедры ее наименованием.

7. Для создания вычисляемого поля, рассчитывающего среднюю нагрузку преподавателя, введите выражение [Sum_ЧАСЫ]/[ Count_ ТАБН]. Для этого в строке Поле пустого столбца с помощью контекстно-зависимого меню вызовите Построитель выражения, выбрав меню Построить. В левой части окна Построителя выражения в папке Запросы выберите соответствующие запросы. Справа отобразится список полей. Последовательно выбирая нужные поля, нажимая кнопку Вставить и вставляя знаки операции, сформируйте необходимое выражение в верхней части окна, Ok.

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

9. Задайте в Подпись поля значение Средняя нагрузка преподавателя, в Форматполя - Фиксированный и в Число десятичных знаков – 0

10. Сохраните запрос под именем НАГРУЗКА ПО КАФЕДРАМ


Запрос на создание таблицы

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

Сконструируйте запрос на создание таблицы на запросе ЧИСЛО СТУДЕНТОВ и СРЕДНИЙ БАЛЛ ГРУППЫ.

1. В окне базы данных выделите названный запрос и откройте его в режиме Конструктора

2. Выберите в меню Запрос|Создание таблицы

3. В окне Создание таблиц введите имя ЧИСЛО СТУДЕНТОВ и отметьте Втекущей базе данных

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

Запрос на обновление

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

Рассмотрите технологию формирования на примере обновления поля КОЛ (количество студентов группы в таблице ГРУППА).

1. Для формирования запроса на обновление сначала создайте Запрос на выборку на основе двух таблиц: обновляемой таблицыГРУППАи таблицы ЧИСЛОСТУДЕНТОВ, содержащей данные для обновления. В подсхеме данных запроса автоматически установится связь этих таблиц по полю НГ

2. Преобразуйте запрос на выборку в Запрос на обновление, выбрав из меню Запрос|Обновление

3. Заполните бланк запроса. Перетащите обновляемое поле КОЛ в строку Поле. В строку Обновлениевведите имя поля Count_НС, заключенное в квадратные скобки

4. Просмотрите содержимое поля КОЛ перед обновлением в режиме Таблица

5. Сохраните запрос под именем ОБНОВЛЕНИЕ ТАБЛИЦЫ ГРУППА.

6. Выполните запрос

7. Обратите внимание на измененные значения содержимого поля КОЛ в таблице ГРУППА

Перекрестный запрос

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

Пусть необходимо для каждого преподавателя определить число студентов, знания которых он оценил. Фамилии преподавателей можно получить из таблицы ПРЕПОДАВАТЕЛЬ, которая находится в отношениях один-ко-многим с таблицей УСПЕВАЕМОСТЬ. Поскольку с помощью мастера невозможно построить перекрестный запрос из нескольких таблиц, то необходимо сначала создать запрос на выборку для таблиц УСПЕВАЕМОСТЬ и ПРЕПОДАВАТЕЛЬ

1. Создайте с помощью мастера простой запрос. В этом запросе выберите из таблицы ПРЕПОДАВАТЕЛЬ поле ФИО, а из таблицы УСПЕВАЕМОСТЬ – поля ВИДЗ и НС. Сохраните запрос с именем ПРЕПОДАВАТЕЛЬ - ЗАПРОС

2. Для создания следующего запроса нажмите кнопку Создать|Перекрестный запрос

3. В окне мастера выберите запрос ПРЕПОДАВАТЕЛЬ - ЗАПРОС

4. В следующем окне мастера выберите для заголовков строк поле ФИО. Для выбора используйте кнопку >.

5. Для заголовков столбцов установлено поле ВИДЗ

6. Для вычисления значений ячеек выберите поле НС и функцию Число(Count)

В отличие от мастера Конструктор позволяет создать многотабличный перекрестный запрос. Рассмотрите создание перекрестного запроса, в котором заголовками строк будут фамилии преподавателей, заголовками столбцов - наименование предметов, а на пересечении строк и столбцов - сумма часов.

1. Начните, как обычно, создание запроса в режиме Конструктора

2. В окне Добавление таблицы включите в схему данных таблицы ПРЕДМЕТ, ИЗУЧЕНИЕ и ПРЕПОДАВАТЕЛЬ

3. В бланк запроса перетащите поля ФИО из таблицы ПРЕПОДАВАТЕЛЬ, НП – из таблицы ПРЕДМЕТ, ЧАСЫ – из таблицы ИЗУЧЕНИЕ

4. Выполните команду меню Запрос/Перекрестный. В бланке запроса появятся две дополнительные строки Групповая операция и Перекрестная таблица

5. В строке Перекрестная таблица для поля ФИО выберите из списка значение Заголовки строк, для НПЗаголовки столбцов, для поля ЧАСЫ - Значение

6. В строке Групповая операция для поля ЧАСЫ выберите Sum, оставив для всех остальных полей – Группировка

Отчеты

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