Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
КИТ часть_1 (Лаб практикум) / КИТ_лр6_access_запросы.doc
Скачиваний:
80
Добавлен:
15.06.2014
Размер:
967.17 Кб
Скачать
  1. Перекрестные запросы

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

  1. Нажать кнопку Создать. Выбрать командуПерекрестный запрос. НажатьOK.

  2. В появившемся окне Создание перекрестных таблицдля переключателяПоказатьвыбрать значениеТаблицы(илиВсе). Выбрать таблицуРабочие. НажатьДалее.

  3. Из списка Доступные поляперенести в списокВыбранные поляотметку поляШифр объекта(т.е. выбрать поле, которому в создаваемой таблице будут соответствовать строки). НажатьДалее.

  4. Выбрать поле Профессия(т.е. поле, которому в создаваемой таблице будут соответствовать столбцы). НажатьДалее.

  5. В очередном окне Создание перекрестных таблицв спискеПолевыбратьТабельный номер, в спискеФункции – Число(так как требуется подсчитать количество рабочих). Установить также флажокВычислить итоговое значение для каждой строки(чтобы подсчитать количество рабочих на каждом объекте). НажатьДалее.

  6. Задать имя запроса Распределение профессий по объектам. Установить переключательПросмотреть результаты запроса. НажатьГотово. Результаты запроса должны иметь примерно такой вид, как показано на рис.1.

Рисунок 1 – Результаты перекрестного запроса

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

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

Создать перекрестный запрос, как показано в примере 6.1. На шаге 2 потребуется выбрать для переключателя ПоказатьзначениеЗапросы(илиВсе) и выбрать запросРаспределение рабочих по видам объектов. В качестве строк создаваемого запроса следует выбрать виды объектов, в качестве столбцов – названия профессий (или наоборот). Присвоить созданному отчету имяРаспределение профессий по видам объектов.

  1. Запросы на изменение базы данных

Пример 7.1 (запрос на обновление).Создать запрос для выполнения следующей операции: для всех каменщиков и штукатуров, имеющих разряд не ниже пятого, установить шифр объекта П80.

Условия отбора (профессии – каменщики и штукатуры, разряд – не ниже пятого) уже были заданы в запросе Отобранные(см. раздел 4).

  1. Сделать копию запроса Отобранные, присвоив новому запросу имяНаправление на объект.

  2. Открыть запрос Направление на объектв режиме Конструктора.

  3. Удалить из запроса все лишние поля: оставить только поля Профессия, РазрядиШифр объекта.

  4. Выбрать команду Запрос – Обновление. В описании запроса появляется строкаОбновление.

  5. В строке Обновлениедля поляШифр объектауказать значениеП80.

  6. Сохранить запрос Направление на объект. Закрыть его. Выполнить запрос (кнопкойОткрытьили двойным щелчком мыши). При этом на экран будут выводиться предупреждения о том, что выполнение запроса приведен к изменению данных в таблице. На эти предупреждения отвечатьДа.

  7. Открыть запрос Отобранные(или таблицуРабочие) и убедиться, что для всех каменщиков и штукатуров с разрядом не ниже пятого установлен шифр объектаП80.

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

  1. Используя Конструктор, создать обычный запрос, содержащий поля Фамилия, РазрядиДопуск на высоту(из таблицыРабочие). В строкеУсловие отборадля поляРазрядуказать условие<=2, для поляДопуск на высоту– условиенет. Сохранить запрос под именемУдаление.

  2. Выполнить запрос Удаление(кнопкойОткрытьили двойным щелчком мыши). Эта операция требуетсятолько в качестве меры предосторожности(запрос пока выполняет не удаление, а только просмотр данных). Убедиться, что в результате выполнения запроса на экран выводится информация о рабочих, соответствующих заданным условиям (разряд не выше второго, нет допуска на высоту).

  3. Открыть запрос Удалениев режиме Конструктора. Выбрать командуЗапрос – Удаление. Можно (но не обязательно) также удалить из запроса полеФамилия.

Примечание. Если требуется снова преобразовать запрос для удаления в обычный запрос (для выборки данных), то необходимо выполнить команду Запрос – Выборка.

  1. Сохранить запрос Удаление. Выполнить его. При этом на экран выводятся предупреждения. Чтобы выполнить удаление, ответить на эти предупрежденияДа.

  2. Открыть таблицу Рабочиеи убедиться, что удаление выполнено.