Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология Образование Политология Производство Психология Стандартизация Технологии |
Создание запросов на добавление и изменения данных ⇐ ПредыдущаяСтр 6 из 6
Как уже отмечалось выше, современные приложения работы с базами данных должны строится на повсеместном использовании языка. Это распространяется и на запросы добавления и изменения данных. Запросы на добавление Предположим, необходимо создать запрос, который добавляет в таблицу «Товар» сведения о товаре, введенные пользователем. Структура таблицы «Товар» нам известна – она состоит из полей «НаименованиеТовара» и «ЕдиницаИзмерения» (значение поля «КодТовара» генерируется автоматически). Для того, чтобы создать запрос на добавление записи в таблицу «Товары», необходимо выполнить следующую последовательность действий: 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. Нажмем «OК». Запрос выполнен. Просмотрим его результат. Для этого необходимо открыть таблицу «Товар»:
Теперь, для того, чтобы работать с актуальным списком товаров 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. Проверить правильность решения задачи путем запуска запросов и проверки результатов их выполнения.
1. Какие виды запросов можно создавать в Access? 2. Какие способы создания запросов Вами известны? 3. Что такое мастер? Опишите процесс построения простого запроса с помощью мастера. 4. Что такое детальный запрос? Опишите процесс построения детального запроса по шагам с помощью мастера на конкретном примере. 5. Как просмотреть текст запроса на языке SQL, сгенерированный мастером запросов? 6. Понятие итогового запроса. Опишите процесс создания итогового запроса с помощью мастера на конкретном примере. 7. Как запустить запрос на выполнение? 8. Что такое конструктор? Опишите элементы интерфейса конструктора. 9. Опишите процесс создания простого запроса в конструкторе на примере. Чем процесс построения запроса в конструкторе отличается от построения запроса с помощью мастера. 10. Как установить сортировку в запросе? 11. Как установить условие отбора записей в запросе? 12. Как добавить таблицу или запрос в окно конструктора? 13. Опишите по шагам процесс построения детального запроса на конкретном примере. 14. Как установить связь между таблицами запроса? Что такое параметры объединения? 15. Почему при построении запросов важно, чтобы на этапе создания таблиц базы данных были правильно определены связи между ними. 16. Что такое параметры запроса? Как установить параметры запроса в режиме конструктора? Как можно использовать параметры запроса? 17. Опишите по шагам на конкретном примере процесс построения итогового запроса с помощью конструктора. 18. Как установить группировку значений в запросе? Опишите на конкретном примере. 19. Опишите процесс создания запроса на добавление записей в таблицу на конкретном примере. Почему данные сложных запросов необходимо сохранять во временных таблицах? 20. Опишите на конкретном примере процесс создания запроса на удаление записей. 21. Опишите процесс создания структуры таблицы с помощью запроса SQL. 22. Что такое вычисляемое поле? Как создать вычисляемое поле в запросе? 23. Опишите по шагам технологию создания запроса на объединение данных из нескольких таблиц. Приведите пример.
1. Робинсон С. Microsoft Access 2000: учебный курс. – СПб.: Питер, 2000. 2. Баркер С.Ф. Профессиональное программирование в Microsoft Access 2002.: Пер. с англ. – М.: «Издательский дом «Вильямс», 2002. – 992 с. 3. Пасько В. Access 97 (русифицированная версия) – К.: BHV, 1998. 4. Новалис C. Access 97. Руководство по макроязыку и VBA.
Исходные данные представлены в виде следующих таблиц:
Товар
Поставщик
Поступление
ПоступлениеСостав
С помощью конструктора или мастера создать запросы для решения следующих задач: 1. Получить список товаров, отсортированный по полю «НаименованиеТовара». 2. Получить список поставщиков, отсортированный по полю «НаименованиеПоставщика», в котором не будет поставщиков из Москвы. 3. Получить таблицу следующего вида:
Таблица 1.
Таблица 1. Продолжение
Сохранить результаты запроса во временной таблице. 4. Получить итоги по товарам (по полям Количество и Сумма), 5. Получить список поставщиков, поставлявших какие-либо товары в период с 01.02.2004 по 29.02.2004. Определить стоимость поставленного товара каждым из поставщиков. 6. Получить итоги по товарам (по полям Количество и Сумма) 7. Получить список товаров, которые не поставлялись в течение 8. Создать запросы на удаление записей из таблицы «Поступление» за период с 01.01.2004 по 31.01.2004. Период в запросе определить с
Исходные данные представлены в виде следующих таблиц: Товар
Клиент
Продажа
ПродажаСостав
Возврат
ВозвратСостав
С помощью конструктора или мастера создать следующие запросы: 1. Получить список товаров, отсортированный по полю «НаименованиеТовара». 2. Получить список поставщиков из Москвы, отсортированный по полю «НаименованиеПоставщика». 3. Получить таблицу следующего вида:
Таблица 1.
Таблица 1. продолжение
Сохранить результаты запроса в отдельной таблице. 4. Получить итоги по товарам (по полям «Количество» и «Сумма»), отпущенным покупателям (клиентам) за период с 01.01.2004 по 31.01.2004. Период в запросе определить с помощью параметров. 5. Получить список клиентов, купивших какие-либо товары в период с 01.02.2004 по 29.02.2004. Определить стоимость приобретенного товара каждым из клиентов. 6. Получить итоги по товарам (по полям «Количество» и «Сумма») 7. Получить список товаров, которые не продавались в течение 8. Создать запросы на удаление записей из таблицы «Продажа» за период с 01.01.2004 по 31.01.2004. Период в запросе определить с помощью параметров.
Исходные данные представлены в виде следующих таблиц: Покупатели
Товары
Заказ
Состав заказа
С помощью конструктора или мастера создать следующие запросы: 1. Получить список товаров, отсортированный по полю «НаименованиеТовара». 2. Получить таблицу следующего вида:
Таблица 1.
Таблица. продолжение
Сохранить результаты запроса в отдельной таблице. 3. Получить итоги по заказанным товарам (по полям «Количество» и «Сумма») за период с 01.01.2004 по 31.01.2004. Период в запросе определить с помощью параметров. Результаты запроса сохранить во временной таблице с помощью запроса на добавление. 4. Получить список покупателей, сделавших заказ в период с 01.01.2004 по 15.01.2004. Определить стоимость приобретенного товара каждым из клиентов. 5. Получить итоги по товарам (по полям «Количество» и «Сумма») с группировкой по покупателям и товарам. 6. Получить список товаров, которые не заказывались в течение периода с 01.01.2004 по 31.01.2004. Период в запросе определить с помощью параметров. 7. Создать запросы на удаление записей из таблицы «Заказ» и «ЗаказСостав» за период с 01.01.2004 по 31.01.2004. Период в запросе определить с помощью параметров.
Исходные данные представлены в виде следующих таблиц: Контрагент
СтатьяПоступления
ПоступлениеДенежныхСредств
С помощью конструктора или мастера создать следующие запросы: 1. Получить список контрагентов, отсортированный по полю «НаименованиеКонтрагента». Результаты сохранить с помощью запроса в отдельной таблице. 2. Получить итоги по поступлению денежных средств с группировкой по контрагентам за период с 01.01.2004 по 31.01.2004. Период в запросе определить с помощью параметров. Результаты сохранить с помощью запроса в отдельной таблице. 3. Получить список контрагентов, перечислявших средства в период с 01.02.2004 по 29.02.2004. 4. Получить итоги поступления денежных средств с группировкой по статьям дохода за произвольный, задаваемый пользователем период. Результаты сохранить с помощью запроса в отдельной таблице. 5. Получить список статей дохода, по которым не было поступления в течение периода с 01.01.2004 по 31.01.2004. Период в запросе определить с помощью параметров. Результаты сохранить с помощью запроса в отдельной таблице. 6. Создать запросы на удаление записей из таблицы «ПоступлениеДенежныхСредств» за период с 01.01.2004 по 31.01.2004. Период в запросе определить с помощью параметров. 7. Создать запросы для добавления записей путем ввода параметров для всех таблиц. 8. Создать запрос для изменения значения поля «Сумма» в таблице «ПоступлениеДенежныхСредств».
Исходные данные представлены в виде следующих таблиц: Контрагент
СтатьяРасхода
РасходДенежныхСредств
С помощью конструктора или мастера создать следующие запросы: 1. Получить список контрагентов, отсортированный по полю 2. Получить итоги по расходу денежных средств с группировкой по контрагентам за период с 01.02.2004 по 29.02.2004. Период в запросе 3. Получить список контрагентов, которым производились выплаты средств в период с 01.01.2004 по 29.01.2004. 4. Получить итоги расходов денежных средств с группировкой по статьям расхода за произвольный, задаваемый пользователем период. Результаты сохранить с помощью запроса в отдельной таблице. 5. Получить список статей расхода, по которым не было расходов в период с 01.01.2004 по 31.01.2004. Период в запросе определить с помощью параметров. Результаты сохранить с помощью запроса в отдельной таблице. 6. Создать запросы на удаление записей из таблицы «РасходДенежныхСредств» за период с 01.03.2004 по 31.03.2004. Период в запросе определить с помощью параметров. Результаты сохранить с помощью запроса в отдельной таблице. 7. Создать запросы для добавления записей путем ввода параметров для всех таблиц. 8. Создать запрос для изменения значения поля «Сумма» в таблице «РасходДенежныхСредств».
С помощью конструктора или мастера создать следующие запросы: 1. Объединить данные таблиц «ПоступлениеДенежныхСредств» и «РасходДенежныхСредств», данных в вариантах 5 и 6 в одной таблице следующего вида:
Результаты сохранить в отдельной таблице с помощью запроса на добавление записей. 2. На основании запроса, созданного в п.1, рассчитать итоги (суммы по графам «ПоступлениеСумма» и «РасходСумма») поступления и расходования средств по контрагентам. 3. На основании запроса, созданного в п.1 рассчитать итоги поступления и расходования средств по статьям (поле «НаименованиеСтатьи»). 4. Рассчитать остаток средств (Приход-Расход) на определенную 5. На основании запроса, созданного в п.1, получить список операций за период с 01.01.2004 по 29.01.2004, отсортированный сначала по возрастанию по полю «НаименованиеКонтрагента», затем по полю 6. Получить список статей поступления и расходования денежных средств, незадействованных в период с 01.02.2004 по 29.02.2004. 7. Получить итоги по поступлению денежных средств за период Популярное:
|
Последнее изменение этой страницы: 2016-04-11; Просмотров: 1352; Нарушение авторского права страницы