Сдам Сам

ПОЛЕЗНОЕ


КАТЕГОРИИ







Примеры построения запросов MS Access





Для создания нового запроса визуальным способом необходимо в окне База данных установить переключатель на Запросы и выполнить команду Создать. После этих действий открывается окно Новый запрос, которое имеет пять переключателей. Среди них следует использовать Конструктор для простого запроса и Перекрестный запрос - для перекрестного. После нажатия кнопки Ok открывается соответствующее этим переключателям окно Запроса в режиме конструктора. На его фоне должно находиться окно Добавить таблицу подобно тому, как это было с уже рассмотренным окном Схема данных. Если оно отсутствует (например, нечаянное закрытие), то его можно вызвать командой Добавить таблицу из окна MS Access так же, как это делается при установлении связей между таблицами или с помощью контекстного меню. При этом курсор должен находиться на верхнем чистом поле запроса.

Новый запрос в режиме конструктора создается в три этапа:

1– занесение таблиц или других запросов в верхнее поле запроса;

2– перенос в запрос полей из источников запроса;

3– занесение выражений в нижнюю часть окна запроса.

Построим запрос для отчета по условию задачи 4. Напомним, что отчет должен содержать данные про суммарный объем транспортируемого газа за текущий год по каждому предприятию для показанного на форме газопровода. В окне База данных выберем объект Запросы. Появляется окно Новый запрос, в котором выбираем Конструктор. Появляется окно Конструктора запроса, на фоне которого имеется окно Добавить таблицу с перечнем таблиц базы данных. Выбираем таблицы Pidpr (для выбора названий предприятий) и Oblik (для данных об объеме газа, дату и код газопровода), и с помощью команды Добавить заносим их макеты на верхнее поле конструктора запроса. Выполняем команду Закрыть в окне Добавить таблицу. Установим временные связи между таблицами с помощью кодового поля Kodpp, для этого перенесем его из макета одной таблицы на другую.



Внесем в запрос следующие поля:

–Nazpp;

–Suma: Kil, установим групповую операцию: Sum;

–Rik: Year ([Data]), условие отбора записей: Year (Date());

–Kodpr, условие отбора записей: [Forms]![Form]![Kodpr].

Групповые операции вызываем с помощью соответствующей кнопки на панели инструментов.

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

Ob_sum
Nazpp Suma Rik Kodpr
Экспорттрансгаз
Львовтрансгаз

Рисунок 3.8 – Копия запроса Ob_sumв в режиме просмотра

 

С целью проверки запроса выполним все необходимые операции вручную. Таблица Oblik содержит три записи о транспортировке газа по газопроводу с кодом 2 (это предприятия с кодами 1, 4, и 5), но только два последних предприятия отражены в таблице, как такие, что работали в 2006 текущем году. В запросе правильно отражены предприятия с кодами 4 и 5. Совпадают и суммы транспортируемого газа. Заметим, что во время проверки запроса системная дата содержала 2006 год. Следовательно, запрос работает верно, закроем его и дадим ему название Ob_sum.

Запрос для диаграммы по условию задачи 5 тоже построим с помощью конструктора. Напомним, что согласно постановке задачи он должен содержать данные о суммарном количестве транспортированного газа всеми газопроводами за каждый год в течение последних 8 лет предприятием, название которого находится на открытой форме. Выберем таблицы Pidpr и Oblik, в которых содержатся эти данные. Назовем запрос Grafik, занесем в него следующие поля:

–Rik: Year([Data]), условие отбора записей: Year(Date())-Year([Data])<9;

–Kilk:Kil, групповая операция: Sum;

–Kodpp, условие отбора записей: [Forms]![Form][Kodpp];

–Nazpp.

Grafik
Rik Kilk Kodpp Nazpp
Харьковтрансгаз
Харьковтрансгаз

Рисунок 3.9 – Копия запроса Grafikв в режиме просмотра

Копия запроса для диаграммы показана на рис. 3.9. Во время его открытия был введен код предприятия 1 (из-за отсутствия формы), название которого Харьковтрансгаз отражено в запросе. В таблице Oblik есть три записи о нем: один за 2002 год с количеством 3 и два за 2006 год с суммарным количеством 6, что верно отражено в запросе.

Rozpodil
Nazpr Nazpp Kilkist Rik
Гадяч - Кобеляки - Киев Киевтрансгаз
Гадяч - Кобеляки - Киев Прикарпаттрансгаз
Гадяч - Кобеляки - Киев Харьковтрансгаз
Орел – Киев Харьковтрансгаз
Украина Экспорттрансгаз
Украина Львовтрансгаз

Рисунок 3.10 – Копия запросаRozpodil в в режиме просмотра

 

Для отчета по условию задачи 6 о распределении количества транспортируемого газа на каждом газопроводе по предприятиям в текущем году построим такие два запроса: простой - Rozpodil и перекрестный Rozpodil_p.

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

–Nazpr;

–Nazpp;

–Kilkist: Kil, групповая операция: Sum;

–Rik: Year([Data]), условие отбора записей: Year(Date()).

Запрос Rozpodil_pизготовим с помощью мастера перекрестного запроса, отвечая на его шаги, в качестве строк выберем поле Nazpr - названия газопроводов, а в качестве столбцов поле Nazpp - названия предприятий. Источником этого запроса является запрос Rozpodil, который в режиме просмотра показан на рис. 3.10. Запрос Rozpodil_p показан на рис. 3.11. Сверив данные, что есть в этих запросах с данными таблиц, убеждаемся в том, что запросы работают верно.

 

Rozpodil_p
Nazpr Итоговое значение Kilkist Экспорттрансгаз Киевтрансгаз Львовтрансгаз Прикарпаттрансгаз Харьковтрансгаз
Гадяч - Кобеляки - Киев    
Орел – Киев        
Украина      

Рисунок 3.11– Копия запросаRozpodil_pв режиме просмотра

 

Запрос для почтовой наклейкипо условию задачи 8 содержит информацию из двух таблиц: Gazpr и Oblik. В режиме просмотра он показан на рис 3.12. Он имеет название Naklejka и содержит следующие поля:

–Nazpr;

–Kil:Kil, групповая операция: Sum;

–Kilnyt;

–Diam;

–Povidom:Iif([Kilnyt]>3;"Колич. ниток больше 3";"");

–Vidbir:Iif(Year(Date())-Year([Data])<11;True;False), условие отбора: = True. (На рисунке 3.12 это поле не показано).

 

Naklejka
Nazpr KKil Kilnyt Diam Povidom
Гадяч - Кобеляки - Киев Колич. ниток больше3
Орел – Киев  
Украина  

Рисунок 3.12– Копия запроса Naklejkaдля почтовых наклеек в режиме просмотра

 

Построим запрос для формы по условию задачи 7. Эта форма служит для просмотра всех данных, поэтому в окно конструктора запроса внесем все таблицы (Gazpr, Oblik и Pidpr) и соединим их между собой с помощью соответствующих кодовых полей. Внесем в запрос следующие поля:

–Nazpp– название предприятия;

–Kodpr– код газопровода;

–Nazpr– название газопровода;

–Kilnyt– количество ниток газопровода;

–Diam– диаметр газопровода;

–Karta– карта-схема газопровода;

–Kil– количество транспортированного газа;

–Data– дата учета;

–Logopp– логотип предприятия.

Назвем запрос D_form, он не содержит ни групповых операций, ни условий отбора записей.

Изготовление отчетов

 

Рисунок 3.13. – Отчет Ob_sum в режиме просмотра

 

ОтчетOb_sumпо условию задачи 4 изготовим с помощью мастера отчета. В окне База данных выберем объект Отчет, выполним команду Создать. Появляется окно Новый отчет, выбираем в нижней его части источник отчета - запрос Ob_sum, а в верхней - мастера.

Дадим ответы на шаги мастера:

1– на предложение выбрать имена полей, выберем: Nazppи Suma;

2– добавить уровень группировки. Проигнорируем, группировка выполнена во время изготовления запроса;

3– мастер предлагает установить порядок сортировки строк, оставим все без изменения, команда Ok;

4– макет отчета - ступенчатый;

5– стиль – спокойный;

6– дадим имя отчету Ob_sum, команда Готово.

 
 

 

 


На рисунке 3.14 показано окно Панель элементов, оно вызывается на экран из окна MS Access командами Вид-Панель элементов или из контекстного меню. Кнопка команды имеет вид перекрещенных молотка и гаечного ключа.

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

Просмотрим отчет, изготовленный мастером, перейдем в режим конструктора. В окне конструктора отредактируем надписи и из окна панели элементов установим два вышеупомянутых поля. Для первого поля откроем контекстное меню, вызовем окно Свойства. В нем выберем раздел Данные и в строке Данные запишем формулу Date(). Аналогично во второе поле - значение [Forms]![Form]![Nazpr]. Готовый отчет Ob_sum показан на рис. 3.13.

Для построения графика по условию задачи 5 вызовем мастер диаграмм, выберем источник - запрос Grafik. Отвечая на шаги мастера, выберем все поля, тип - Гистограмма, на надпись Оси перенесем поле Rik, Данные - поле Kilk. Назовем диаграмму Grafik.

Отредактируем диаграмму в окне конструктора, для этого поставим курсор на область данных, вызовем контекстное меню и выполним команду диаграмма - Изменить, что позволит редактировать все элементы диаграммы. Изготовим поле и внесем в него формулу ="Предприятие:" & [Forms]![Form]![Nazpp] подобно тому, как это делалось для запроса Ob_sum. Напомним, что код именно этого предприятия будет выбран в запросе для графика во время его запуска из формы.

 

 









Не нашли то, что искали? Воспользуйтесь поиском гугл на сайте:


©2015- 2018 zdamsam.ru Размещенные материалы защищены законодательством РФ.