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


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



 

Пусть мы хотим получить сведения о том, кто из клиентов и какие продукты покупал, а также в каком количестве, причем данные хотим иметь в виде таблицы (табл1).

В этом случае надо будет создать так называемый перекрестный запрос.

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

Таким образом, при создании перекрестного запроса необходимо указать:

· откуда брать заголовки строк;

· откуда брать заголовки столбцов;

· откуда брать данные и что с ними делать (суммировать, вычислять среднее, брать максимальное значение и т.д.).

Перекрестный запрос создаётся следующим образом.

1. Сначала как обычно щелкнуть по объекту «Запросы», щелкнуть по кнопке «Создать», выделить строчку «Конструктор» и ОК.

2. После этого надо добавить те таблицы, откуда будут браться названия строк, столбцов и данные. В нашем случае надо добавить все таблицы.

 

Таблица 1. Перекрестная таблица

Продукт
 
 


Клиент

Пастила фруктовая Торт «Птичье молоко» Конфеты «Южная ночь»
Клуб «Орфей» 10, 4  
Ресторан «Барракуда»   56, 5 28, 5
Ресторан «Максим» 37, 8  

 

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

4. В первом столбце макета указывается откуда брать заголовки строк, причем в строке «Перекрестная таблица» надо указать, что это заголовки строк (щелкнуть в этой строке и выбрать из списка). В нашем случае заголовки строк это наименование клиента, поэтому надо выбрать таблицу «Клиенты», поле – «наименование», групповая операция - группировка.

5. Аналогично во втором столбце указывается, откуда брать заголовки столбцов. Нам надо выбрать таблицу «Продукты», поле – «Название», групповая операция – группировка, перекрестная таблица – заголовки столбцов.

6. Ну а в третьем столбце надо указать, откуда брать данные и что с ними делать. Что делать с данными указывается следующим образом. Сначала в строке «Перекрестная таблица» выбирается из списка «Значение», а затем в строке «Групповая операция» выбирается соответствующая операция. В нашем случае имя таблицы – «Заказы», поле – «Количество», групповая операция - Sum, перекрестная таблица – «Значение».

7. Закрыть макет подтвердив сохранение и назвав запрос «Кто что и сколько».

8. Открыть запрос «Кто что и сколько» и убедиться, что он работает.

 

Создание запроса на обновление данных

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

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

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

 

 

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

 

 

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

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

 

Запрос на удаление

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

Пусть мы хотим удалить из таблицы «Заказы» все записи, в которых продуктом служит «Пастила фруктовая». Начало как при создании обычного запроса на выборку на основе двух таблиц: «Заказы» и «Продукты».

 

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

 

 

Во втором столбце макета запроса надо установить условие отбора “Пастила фруктовая” на поле «Название» таблицы «Продукты».

 

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

 

 

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

 

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

 

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

 

Создание отчётов

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

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

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

1. Щелкнуть по объекту «Отчеты», нажать кнопку «Создать», выделить строчку «Мастер отчетов», выбрать внизу из списка источник данных и нажать на кнопку ОК.

2. Из списка «Доступные поля» перенести в окно «Выбранные поля», те поля, которые будут использованы в отчете и нажать кнопку «Далее».

3. Этот пункт делается по мере необходимости! Нажимая на кнопки со стрелками вправо или влево, добавить или убрать уровни группировки данных в отчете. Нажать на кнопку «Далее».

4. Этот пункт делается только в том случае, когда необходимо осуществить сортировку по ПЕРВОМУ полю! Выбрать из списка название поля и, нажимая на кнопку, расположенную справа, установить сортировку по возрастанию или убыванию. Нажать на кнопку «Далее».

5. Выбрать вид макета, ориентацию страниц отчета и нажать на кнопку «Далее».

6. Выбрать требуемый стиль и нажать на кнопку «Далее».

7. Задать имя отчета и нажать на кнопку «Готово».

8. Если необходимо произвести сортировку по полю, которое не является первым, то отчет надо открыть в конструкторе и щелкнуть в панели инструментов по кнопке «Сортировка и группировка». В появившемся окне выбрать имя поля, по которому будет производится сортировка и указать как сортировать (по возрастанию или по убыванию). После этого закрыть окно и отчёт, подтвердив сохранение внесенных изменений.

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

1. Щелкнуть по объекту «Отчеты», нажать кнопку «Создать», выделить строчку «Мастер отчетов», строчку источника данных оставить пустой и нажать на кнопку ОК.

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

3. Пункты с 3 по 7 аналогичны первому случаю.

 

Макросы

Макрос – это программа состоящая из последовательности макрокоманд.

Макрокоманда – это инструкция, предписывающая базе данных выполнить определённое действие над каким-либо объектом базы дынных.

Например, макрокомандой можно открыть форму, выполнить запрос, применить фильтр.

В Access имеется более 50 макрокоманд.

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

Чтобы создать макрос надо перейти на закладку «Макросы» и щелкнуть по кнопке «Создать». Появиться окно макроса.

Макрос1: макрос
Макрокоманда Примечание
   

В столбце «Макрокоманда» из списка выбирается нужная макрокоманда, после чего в нижней части надо указать необходимые аргументы для данной макрокоманды. Например, если в качестве макрокоманды выбрать «ОткрытьФорму», то появиться список её аргументов, среди который есть аргумент «Имя формы». Значение этого аргумента устанавливается выбором имени той формы, которую надо открыть из списка.

В столбце «Примечание» можно написать пояснение к данной макрокоманде, если оно необходимо.

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

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

При работе с запросами можно было наблюдать, как окно запроса занимает неудобное положение на экране и имеет неподходящие размеры. При использование макроса для выполнения запроса можно разметы окна и его положение задавать заранее. Для примера, рассмотрим создание макроса для выполнения запроса «Итоги». Этот макрос должен содержать две макрокоманды.

Первая макрокоманда «ОткрытьЗапрос» с аргументом «Имя запроса» - «Итоги».

Вторая макрокоманда «СдвигРазмер», которая имеет четыре аргумента: по правому краю, От верхнего края, ширина, высота. Эти аргументы имеют следующий смысл (см. рис.)

 
 

Расстояния измеряются либо в сантиметрах, либо в дюймах – зависит от установок операционной системы.

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

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

Например, [Дата] Between 2.04.2005 And 20.04.2005

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

MsgBox(«Открыть отчёт? », 1)=1

То это вызовет появление на экране диалогового окна с вопросом («Открыть отчёт? » и двумя кнопками ОК и Отмена. Если нажать ОК, то окошко возвращает значение 1 и, следовательно, эта макрокоманда будет выполнена. Если нажать кнопку Отмена, то окошко вернёт значение 2, а 2 1 и, следовательно, эта макрокоманда не будет выполнена.

Если по условию должно быть выполнено несколько макрокоманд, то в столбце «Условие» для этих макрокоманд (кроме первой, где указано условие) надо набрать многоточие (…).

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

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

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

 


Поделиться:



Популярное:

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


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