Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


Создание запросов с помощью мастерa



Создание запросов с помощью мастерa

Мастер создания запросов представляет собой специальный инструмент Access 2002, с помощью которого пользователь, отвечая на вопросы в появляющихся диалоговых окнах, может построить простой запрос. Мастер – это четко регламентированная процедура создания простых запросов по шагам.

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

Создание простого запроса на основе одной таблицы

Для создания запроса с помощью Мастера необходимо:

1. Перейти на вкладку «Запросы» главного окна базы данных:

 

 

2. Выполнить команду «Создание запроса с помощью мастера» для открытия диалога «Создание простых запросов».

3. В поле «Таблицы и запросы» выбрать таблицу или другой запрос[1], используемый для создания текущего запроса.

Предположим, нам необходимо получить список поставщиков и данные о них. Тогда в качестве исходной таблицы необходимо выбрать таблицу «Поставщик» как это показано на следующем рисунке:

 

 

4. Выбрать поля таблицы, которые будут использоваться в запросе.

Для этого необходимо перенести нужные поля из списка «Доступные поля» в список «Выбранные поля»:

- выделить нужное поле в списке доступных полей;

- нажать кнопку.

5. Выполнить эту последовательность действий для всех полей, используемых в запросе («Наименование поставщика» и «Город»).

 

6. Нажать «Далее» для продолжения работы мастера.

7. Ввести имя для создаваемого запроса. В нашем примере это будет «ЗапросСписокПоставщиков».

Имя запроса – буквенно-цифровая комбинация, уникальная в пределах всей базы данных. По имени запроса происходит обращение к запросу и запуск его на выполнение.

8. Нажать « Готово» для просмотра результатов запроса.

На следующем рисунке показаны результаты выполнения запроса:

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

Здесь текст SQL-запроса можно откорректировать, пользуясь конструкциями языка SQL и практическими приемами, рассмотренными в начале работы.

Для обратного переключения к просмотру данных выполните команду Вид ® Режим таблицы.

После закрытия запроса можно увидеть, что в списке запросов на вкладке « Запросы» главного окна базы данных появится новый объект, созданный при помощи мастера SQL-запрос «ЗапросСписокПоставщиков».

 

 

Создание итогового запроса

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

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

Выполним следующую последовательность действий:

1. Перейти на вкладку « Запросы» главного окна базы данных.

2. Выполнить команду « Создание запроса с помощью мастера».

3. В поле « Таблицы и запросы» выбрать запрос «СписокОперацийПоступления», как показано на следующем рисунке:

 

 

4. Перенести поля «НаименованиеПоставщика» и «Сумма» в список выбранных полей с помощью кнопки .

 

 

5. Нажать « Далее».

6. Выбрать итоговый тип запроса:

 

 

7. нажать кнопку « Итоги» для определения вида итогов;

8. установить вид итогов «SUM». Это означает, что для каждой группы записей будет подсчитываться сумма значений по каждому полю:

 

 

Как видно из рисунка, мастер также позволяет создавать запросы с расчетом среднего (Аvg), минимального (Min) и максимального (Max) значений по группе записей, а также числа записей в группе.

9. Нажать « ОК» для выхода из окна диалога « Итоги».

10. Нажать « Далее» для перехода к следующему окну диалога.

11. Ввести название для запроса «ПоставленоНаСумму», как показано на следующем рисунке:

 

12. Нажать кнопку « Готово» для просмотра результатов запроса.

 

 

Текст сгенерированного мастером запроса можно просмотреть,
выполнив команду Вид ® Режим SQL.

 

 

Если необходимо получить данные только за какой-либо период
(например за январь 2004, т.е. с 01.01.2004 по 31.01.2004), то это можно сделать отредактировав текстом SQL-запроса (см. операция горизонтальный выбор средствами языка SQL).

Предположим, необходимо получить информацию о количестве и стоимости поставленного товара. Для решения этой задачи необходимо создать итоговый запрос с группировкой по полям «НаименованиеТовара», «ЕдиницаИзмерения» и расчетом сумм по полям «Количество» и «Сумма». Для этого выполним следующую последовательность действий:

1. Перейти на вкладку « Запросы» главного окна базы данных;

2. Выполнить команду « Создание запроса с помощью мастера».

3. В поле « Таблицы и запросы» выбрать запрос «СписокОперацийПоступления».

4. Перенести поля «НаименованиеТовара», «ЕдиницаИзмерения», «Количество» и «Сумма» из списка « Доступные поля» в список « Выбранные поля» как показано на следующем рисунке.

 

 

5. Нажать « Далее».

6. Выбрать «Итоговый» тип запроса.

7. Нажать кнопку « Итоги».

8. Выбрать тип итогов с расчетом суммы по полям «Количество» и «Сумма», как показано на рисунке:

 

 

9. Нажать « OК» для выхода из диалога « Итоги».

10. Нажать « Далее».

11. Ввести имя запроса «ПоставленныеТовары».

12. Нажать « Готово» для просмотра результатов запроса.

 

 

Просмотрим текст сгенерированного мастером SQL-запроса, выполнив команду Вид ® Режим SQL.

 

 

Создание простого запроса

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

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

1. Перейти на вкладку « Запросы» главного окна базы данных.

2. Выполнить команду Создание запроса с помощью конструктора.

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

3. Выделить в списке таблицу «Товар» и нажать кнопку « Добавить ».

 

 

Удалить и добавить таблицу из запроса можно будет через контекстное меню.

4. Нажать кнопку « Закрыть», т.к. список товаров создается только на основе таблицы «Товар» и больше никакие таблицы (т.е. источники данных) в запросе не требуются.

Окно конструктора после добавления таблицы «Товар» будет выглядеть следующим образом:

 

Источник данных – таблица или запрос, добавленные в рабочую область конструктора запросов.

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

Список полей любого источника начинается с символа звездочки «*», использование которого в тексте запроса означает, что в результат выполнения запроса должны быть выведены все поля данной таблицы или запроса.

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

5. Добавить в окно свойств запроса поля «НаименованиеТовара»
и «ЕдиницаИзмерения» из таблицы «Товар».

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

 

 

6. Определить сортировку данных по возрастанию для полей
«НаименованиеТовара» и «ЕдиницаИзмерения».

 

 

7. Выполнить команду Файл ® Сохранить или нажать кнопку .

8. Ввести имя запроса «СписокТоваров».

 

9. Нажать « OK» для сохранения запроса.

 

Текст SQL-запроса, сгенерированный конструктором запросов, можно просмотреть, выполнив команду Вид ® Режим SQL.

 

 

Вернуться в режим конструктора можно выполнив команду Вид ® Конструктор.

Просмотрим результат выполнения запроса. Для этого необходимо выполнить команду Вид ® Режим таблицы.

 

 

Как видно из рисунка, в результате выполнения запроса «СписокТоваров» была получена таблица со списком товаров, отсортированная по полю «НаименованиеТовара» по возрастанию в алфавитном порядке.

Построим простой запрос с отбором записей по какому-либо условию. Предположим, необходимо получить не просто список поставщиков товаров, а список поставщиков из Москвы.

Выполним следующую последовательность действий:

1. Перейти на вкладку «Запросы» главного окна базы данных.

2. Выполнить команду «Создание запроса с помощью конструктора».

3. Выделить таблицу «Поставщик» в списке таблиц.

4. Нажать кнопку «Добавить».

5. Нажать кнопку «Закрыть».

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

 

 

6. Добавить поля «НаименованиеПоставщика» и «Город» в окно свойств запроса.

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

 

 

7. В поле «Условие отбора» необходимо ввести текст «=" Москва" », как показано на следующем рисунке:

 

 

8. Установить сортировку по возрастанию в поле «НаименованиеПоставщика» и снять флажок « Выводить на экран» для поля «Город». В результате получим:

 

 

9. Выполнить команду Файл ® Сохранить.

10. Ввести в качестве имени запроса текст «СписокПоставщиковИзМосквы».

 

 

11. Нажать « ОК».

Просмотрим текст сгенерированного конструктором SQL-запроса ( Вид ® Режим SQL ).

 

 

Просмотрим результаты запроса, выполнив команду Вид ® Режим таблицы:

 

 

Пример 1.

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

 

Дата Операции Код Товара Единица Измерения Поступление Отпуск Возврат Списание

 

Графа Поступление формируется из поля «Количество» таблицы «Поступление» и «ПоступлениеСостав».

Графа Отпуск формируется из поля «Количество» таблицы
«Отпуск» и «ОтпускСостав».

Графа Возврат формируется из поля «Количество» таблицы «Возв­рат» и «ВозвратСостав».

Графа Списание формируется из поля «Количество» таблицы «Списа­ние» и «СписаниеСостав».

Графа ДатаОперации формируется из полей Поступление.ДатаПоступления, Отпуск.ДатаОтпуска, Возврат.ДатаВозврата, Списа­ние.ДатаСписания.

Графа КодТовара формируется из полей Поступление.КодТовара, Отпуск.КодТовара, Возврат. КодТовара, Списание. КодТовара.

Опуская процесс создания детальных запросов[5], предположим, что детальные запросы для граф «Поступление», «Отпуск», «Возврат» и «Списание» уже созданы.

 

Наименование запроса Назначение
ОперацииПоступления Детальный запрос для получения списка операций по поступлению товара на основе таблиц «Поступление» и «ПоступлениеСостав»
ОперацииОтпуска Детальный запрос для получения списка операций по отпуску товара на основе таблиц «Отпуск» и «ОтпускСостав»
ОперацииВозврата Детальный запрос для получения списка операций по возврату товара от покупателей на основе таблиц «Возврат» и «ВозвратСостав»
ОперацииСписания Детальный запрос для получения списка операций по списанию товара на основе таблиц «Списание» и «СписаниеСостав»

 

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

Результат выполнения запроса « ОперацииПоступления » представлен на следующем рисунке:

 

Результат выполнения запроса « ОперацииОтпуска » представлен на следующем рисунке:

Результат выполнения запроса « ОперацииВозврата » представлен на следующем рисунке:

Результат выполнения запроса « ОперацииСписания » представлен на следующем рисунке:

Решение

1. Создадим запрос, приводящий запрос «ОперацииПоступления» к структуре таблицы объединения. Для этого произведем следующие действия.

1.1. Выполним команду Создание запроса с помощью конструктора.

1.2. Добавим в конструктор запрос «ОперацииПоступления».

1.3. Перенесем поля «ДатаПоступления», «КодТовара», «ЕдиницаИзмерения», «Количество» в область свойств запроса. Получим:

 

 

1.4. Переименуем поле «ДатаПоступления» в «ДатаОперации».

 

1.5. Переименуем поле «Количество» в «Поступление».

 

1.6. Добавим в запрос виртуальное поле «Отпуск», установив для него нулевое значение[6]. Для этого необходимо:

- перейти в свободную графу области свойств запроса;

- в строке Поле ввести текст «Отпуск: 0»;

 

1.7. Добавим в запрос виртуальное поле «Возврат», установив для него нулевое значение. Для этого необходимо:

- перейти в свободную графу области свойств запроса;

- в строке Поле ввести текст «Возврат: 0».

1.8. Добавим в запрос виртуальное поле «Списание», установив для него нулевое значение. Для этого необходимо:

- перейти в свободную графу области свойств запроса;

- в строке поля ввести текст «Списание: 0».

В результате окно конструктора будет выглядеть так:

 

1.9. Выполним команду Файл ® Сохранить и установим для нового запроса имя «Форма1_ОперацииПоступления».

Просмотрим результат выполнения запроса, выполнив команду Вид ® Режим таблицы. Получим:

 

 

Как видно из рисунка, полученная структура запроса « Форма1_ОперацииПоступления » по составу полей полностью соответствует таблице, которую необходимо получить в результате объединения.

Приведем к такой же структуре запросы «ОперацииОтпуска», «ОперацииВозврата», «ОперацииСписания».

2. Приведем запрос «ОперацииОтпуска» к структуре, аналогичной таблице объединения.

Приведение запроса «ОперацииОтпуска» к единой структуре полностью идентично, процессу рассмотренному в п.1. Отличие заключается в том, что поле «Количество» переименовывается в поле «Отпуск», а значения полей «Поступление», «Возврат» и «Списание» устанавливаются равными нулевым значениям. В результате мы получим запрос «Форма1 _ ОперацииОтпуска».

Выполнив этот запрос, получим:

 

 

3. Приведем запрос «ОперацииВозврата» к структуре, аналогичной таблице объединения.

Приведение запроса «ОперацииВозврата» к единой структуре полностью идентично процессу, рассмотренному в п.1. Отличие заключается в том, что поле «Количество» переименовывается в поле «Возврат», а значения полей «Поступление», «Отпуск» и «Списание» устанавливаются равными нулевым значениям. В результате мы получим запрос «Форма1_ОперацииВозврата».

4. Приведем запрос «ОперацииСписания» к структуре, аналогичной таблице объединения.

Приведение запроса «ОперацииСписания» к единой структуре полностью идентично процессу, рассмотренному в п.1. Отличие заключается в том, что поле «Количество» переименовывается в поле «Списание», а значения полей «Поступление», «Отпуск» и Возврат» устанавливаются равными нулевым значениям. В результате мы получим запрос «Форма1_ОперацииСписания».

5. Создадим запрос, объединяющий результаты запросов «Форма1_ОперацииПоступления», «Форма1_ОперацииОтпуска», «Форма1_ Опе­ра­цииВозврата», «Форма1_ОперацииСписания» в единую таблицу. Для этого произведем следующие действия.

5.1. Выполним команду Создание запроса с помощью конструктора.

5.2. Выполним команду Вид ® Режим SQL.

5.3. Наберем текст запроса на языке SQL, как это показано на рисунке:

 

 

5.4. Выполним команду Файл ® Сохранить и присвоим запросу имя «Форма1».

Просмотрим результаты запроса, выполнив команду Вид ® Режим таблицы.

 

ПРИМЕЧАНИЕ:

Чтобы вместо поля «КодТовара» получить поле «НаименованиеТовара», как уже известно из построения детального запроса, необходимо:

- создать новый запрос;

- перенести туда запрос «Форма1» и таблицу «Товар»;

- установить связь между таблицей «Товар» и запросом «Форма1» по полю «КодТовара» (параметры объединения – INNER JOIN);

- перенести в результирующую таблицу (область свойств запроса) все поля
запроса «Форма1»;

- из таблицы «Товар» перенести поле «НаименованиеТовара» в результирующую таблицу;

- сохранить запрос.

Как видно из таблицы, в результате выполнения шагов 1-5 данные нескольких таблиц были собраны в одну. Теперь можно выполнять с этими данными любые другие операции, такие как отбор, группировка и расчет вычисляемых полей.

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

1. Отобрать данные из запроса «Форма1» за период, т.е. по условию:

ДатаОперации < [ДатаРасчетаОстатка]

 

1.1. Выполнить команду Создание запроса с помощью конструктора;

1.2. Добавить в конструктор запрос «Форма1»;

1.3. Перенести все поля в область свойств запроса – таблицу результатов;

1.4. В графе ДатаОперации в строке Условие отбора ввести текст условия:

< [ДатаРасчетаОстатка].

В результате получим:

 

 

1.5. выполнить команду Файл ® Сохранить и в качестве имени для этого запроса текст: «ОстатокТоваровНаДату1».

2. На основе запроса, полученного в п.1. («ОстатокТовараНаДату1»), провести группировку по полю «КодТовара» с расчетом сумм по полям «Поступление», «Отпуск», «Возврат», «Списание».

 

2.1. Выполнить команду «Создание запроса c помощью конструктора».

2.2. Добавить в конструктор запрос «ОстатокТоваровНаДату1».

2.3. Перенести в таблицу результатов запроса поля «КодТовара», «Поступление», «Отпуск», «Возврат», «Списание».

2.4. Выполнить команду Вид ® Групповые операции.

2.5. Установить в графах «Поступиление», «Отпуск», «Возврат», «Остаток» в строке «Группировка» выражение «SUM», для расчета сумма по указанным полям.

В результате окно конструктора будет выглядеть так:

 

 

Зная, что Access автоматически переименует поля, по которым рассчитывается сумма, установим имена для полей запроса.

2.6. В графу «Поступление» в строку «Поле: » введем текст «Поступление: Поступление».

2.7. В графу «Отпуск» в строку « Поле: » введем текст «Отпуск:
Отпуск».

2.8. В графу «Возврат » в строку «Поле: » введем текст «Возврат: Возврат».

2.8. В графу «Списание » в строку «Поле: » введем текст «Списание: Списание».

 

2.9. Выполним команду Файл ® Сохранить и введем имя запроса «ОстатокТоваровНаДату2».

 

3. На основе запроса, полученного в п.2, провести создание вычисляемого поля Остаток по формуле:

Остаток = Поступление – Отпуск + Возврат – Списание

 

3.1. Выполнить команду Создание запроса с помощью конструктора.

3.2. Добавить в конструктор запрос «ОстатокТоваровНаДату2».

3.3. Перенести все поля запроса в таблицу результатов запроса.

3.4. Установить курсор в свободную колонку таблицы результатов запроса, как это показано на рисунке:

 

 

3.6. Нажать Shift + F2 для перехода в диалоговую область ввода.

3.7. В области ввода ввести текст расчета значения вычисляемого поля «Остаток», как это показано на следующем рисунке:

 

 

3.8. Нажать « OК».

3.9. Выполнить команду Файл ® Сохранить и ввести имя этого запроса: «ОстатокТоваровНаДату3».

Просмотрим результаты запроса, выполнив команду Вид ® Режим таблицы. В качестве начальной даты введем «29.02.2004». Получим:

 

 

Просмотрим текст запроса, сгенерированный конструктором, выполнив команду Вид ® Режим SQL. Получим:

 

 

Как видно из рисунка, вычисляемое поле представляет собой арифметическое выражение, состоящее из имен полей (в его состав также могут входить цифры и функции SQL).

Для большей наглядности полученных результатов в запросе «ОстатокТоваровНаДату3» результаты сведем к следующей таблице:

 

НаименованиеТовара Остаток

 

4. На основе запроса «ОстатокТоваровНаДату3» получим таблицу указанной выше формы. Для этого необходимо:

4.1. Выполнить команду «Создание запроса с помощью конструктора».

4.2. Добавить в конструктор запрос «ОстатокТоваровНаДату3» и таблицу «Товар».

Связь между таблицей и запросом по полю «КодТовара» установится автоматически, т.к. правильно была определена схема данных.

Если связь не установилась, нужно установить ее вручную, перетащив поле «КодТовара» из таблицы «Товар» на поле «КодТовара» в запросе «ОстатокТоваровНаДату3».

4.3. Добавить поле «НаименованиеТовара» из таблицы «Товар» в таблицу результатов запроса.

4.4. Добавить поле «Остаток» из запроса «ОстатокТоваровНаДату3».

4.5. В графе НаименованиеТовара в строке Сортировка установить значение по возрастанию.

В результате выполненных действий 4.1- 4.5 получим:

 

 

4.6. Выполнить команду Файл ® Сохранить и ввести текст названия запроса «ОстатокТоваровНаДату4».

 

Просмотрим результаты запроса, выполнив команду Вид ® Режим таблицы. В качестве даты расчета остатков введем «29.02.2004». Получим:

 

 

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

Предположим, необходимо создать запрос, который добавляет в таблицу «Товар» сведения о товаре, введенные пользователем. Структура таблицы «Товар» нам известна – она состоит из полей «НаименованиеТовара» и «ЕдиницаИзмерения» (значение поля «КодТовара» генерируется автоматически).

Для того, чтобы создать запрос на добавление записи в таблицу «Товары», необходимо выполнить следующую последовательность действий:

1. Выполнить команду Создание запроса с помощью конструктора.

2. Перейти в режим ввода текста запроса на языке SQL, выполнив команду Вид ® Режим SQL.

3. Набрать текст SQL-запроса, как показано на рисунке:

 

 

4. Выполнить команду Файл ® Сохранить для сохранения запроса и ввести имя запроса «ДобавлениеТовара», нажать « OК» и закрыть окно конструктора. После этого в списке запросов появится новый запрос –«ДобавлениеТовара»:

 

 

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

1. Выполнить запрос «Добавление товара»: произведите на нем двойной щелчок мышью.

 

 

В открывшемся окне ответить « Да», разрешив тем самым запуск запроса на изменение данных.

Т.к. запрос является параметрическим, то система сначала запросит значение параметра « НаименованиеТовара».

2. Ввести в качестве наименования товара текст «Водка Золотой рай 0, 5л» как показано на рисунке:

 

3. Нажать « OK».

4. Ввести в качестве единицы измерения текст «бут», как показано на рисунке:

5. Нажать « OK».

6. Подтвердить добавление записи в следующем диалоге

 

 

7. Открыть таблицу «Товар» для просмотра результатов выполнения запроса.

8. Выполнить команду Сервис ® Удалить фильтр для снятия фильтра и обновления набора данных. Получим:

 

 

Как видно из рисунка, в результате выполнения запроса в таблицу «Товар» была добавлена новая запись.

Добавление данных в таблицу на основе запроса было подробно рассмотрено выше в части «Создание запроса на сохранение данных запроса во временной таблице».

 

Запросы на изменение

Запросы на изменение используются для изменения одной и более записей таблицы. Рассмотрим пример с изменением одной записи.

Пример 1

Предположим, для товара «Сотовый телефон» требуется изменить название на «Сотовый телефон Nokia» в таблице «Товар».

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

1. Выполнить команду «Создание запроса с помощью конструктора».

2. Перейти в режим ввода текста на языке SQL, выполнив команду Вид ® Режим SQL.

3. Ввести текст SQL-запроса, как показано на следующем рисунке:

 

 

4. Выполнить команду Файл ® Сохранить и установить для нового запроса имя «ИзменениеНаименованияТелефона».

Выполним созданный запрос командой Запрос ® Запуск. Откроем таблицу «Товар»:

 

Аналогичным образом можно изменить при помощи запроса любое другое поле любой таблицы.

Пример 2

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

Здесь возможны два случая:

1) если по данному товару не проводилось никаких операций, то нужно открыть таблицу «Товар» и удалить запись с наименованием данного товара;

2) гораздо чаще встречается ситуация, когда по товару было много операций (закупка, продажа, возврат, списание, перемещение и пр.), и информация об этих операциях хранится в базе данных. Тогда, если в базе данных правильно была создана схема данных, в которой были правильно определены связи и механизм поддержки целостности базы данных, удалить эту запись не получится, т.к. если удалить эту запись, нужно удалять и все операции, связанные с данным товаром. Если удалить операции, то база данных перестанет отражать реальное состояние бизнес-процессов: будут неправильно рассчитываться остатки, итоги, формироваться неверные отчеты.

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

Рассмотрим второй случай на конкретном примере.

Пример 3

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

Решение

1. Добавить в таблицу «Товар» поле «ПометкаНаУдаление» как показано на следующем рисунке:

 

2. Создать запрос на установление пометки на удаление в таблице «Товар».

2.1. Выполнить команду Создание запроса с помощью конструктора.

2.2. Выполнить команду Вид ® Режим SQL для перехода к вводу текста запроса на языке SQL.

2.3. Ввести текст SQL-запроса, как это показано на рисунке:

 

 

2.4. Сохранить запрос, выполнив команду Файл ® Сохранить и
задав ему имя «ПометкаТовараНаУдаление».

 

Проследим работу этого запроса.

1. Выполним команду Запрос ® Запуск для запуска запроса на
выполнение.

2. Ответим Да в диалоге подтверждения выполнения запроса на
изменение записей.

3. Введем наименование товара «Телевизор», помечаемого как удаленный.

4. Нажмем « ».

Запрос выполнен. Просмотрим его результат. Для этого необходимо открыть таблицу «Товар»:

 

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

1. Выполним команду Создание запроса с помощью конструктора.

2. Добавим таблицу «Товары» в окно конструктора.

3. Перенести все поля в область результатов запроса.

4. В графу ПометкаНаУдаление, в строку « Условие отбора» введем текст «=Ложь». В строке вывод на экран снимем флажок « Вывод на экран», как это показано на следующем рисунке:

 

 

5. Выполним команду Файл ® Сохранить и введем имя запроса «СписокТоваровАктуальный».

 

Выполнив этот запрос ( Вид ® Режим таблицы ), можно увидеть, что помеченных на удаление (с помощью запроса «ПометкаТовараНаУдаление») товаров нет в списке. Это видно на следующем рисунке:

 

 

Теперь запрос «СписокТоваровАктуальный» нужно использовать во всех запросах вместо прямого обращения к таблице «Товары».

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

 

Пример 1

Предположим, необходимо создать запрос, который бы изменял цены на товары в таблице «Товар» на определенный процент. Например, необходимо увеличить все цены на 25%.

Исходная таблица «Товар» представлена на следующем рисунке:

 

Решение

Создадим SQL-запрос, изменяющий цены на определенный процент. Для этого необходимо.

1. Выполнить команду Создание запроса с помощью конструктора.

2. Выполнить команду Вид ® Режим SQL.

3. Ввести текст запроса на языке SQL как это показано на рисунке:

 

 

4. Выполнить команду Файл ® Сохранить и ввести имя для нового запроса «ИзменениеЦенНаПроцент».

 

Проследим, как работает этот запрос. Выше дана таблица с исходными ценами на товары. Выполним запрос «ИзменениеЦенНаПроцент». Для этого необходимо:

1. Выполнить команду Запрос ® Запуск.

2. Ввести в качестве параметра «Процент» число 25. Это означает, что цены будут увеличены на 25%.

3. Ответить Да на запрос подтверждения изменения записей.

4. Открыть таблицу «Товар» для просмотра сделанных в ней изменений.

Результат работы запроса представлен на следующем рисунке:

 

 

Как видно из таблицы, цены на товары действительно были увеличены на 25%. Если указать параметр «Процент» с минусом, то цены будут уменьшены на указанное число процентов.

 

è Порядок выполнения работы

 

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

2. Создать базу данных Access 2002.

3. Создать таблицы, связи между ними, согласно варианту задания.

4. Заполнить таблицы данными, приведенными в варианте задания.

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

6. Определить источники данных для создания результирующего отношения.

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

8. Создать запросы в Access 2002, реализующие определенную в п. 6 последовательность действий.

9. Проверить правильность решения задачи путем запуска запросов и проверки результатов их выполнения.

 


Поделиться:



Популярное:

Последнее изменение этой страницы: 2016-04-11; Просмотров: 1556; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.244 с.)
Главная | Случайная страница | Обратная связь