Использование в запросах вычисляемых полей

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

Для расчетов с внедрением выражений требуется в бланке запроса сделать новое вычисляемое поле. Оно создается в пустой ячейке поля при помощиПостроителя выражений (кнопка ВД ).

Разглядим создание запроса для таблицы Заказы и определения цены каждой партии продуктов для клиентов Использование в запросах вычисляемых полей с кодом 1,2 либо 3. Сначала, сделаем запрос для таблиц Заказы и Продукты в режиме Конструктора, и добавим в бланк запроса поля Код продукта. Код клиента. Заказано и Продано.

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

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

Выражение будет иметь вид (набросок 27):

Набросок 27- Построитель выражений

Набросок 28 - Запрос с вычислением

После окончания формирования выражения надавить кнопку ОК, и выражение будет перенесено в строчкуПоле бланка запроса Использование в запросах вычисляемых полей. Имя вычисляемого поля будет задано автоматом: Выражение!, которое отделяется от выражения двоеточием. Для конфигурации имени следует просто отредактировать текст в строкеПоле (набросок 28). После наполнения бланка запроса запускаем запрос. Итог показан на рисунке 29:

Набросок 29 - Итог выполнения запроса

Многотабличные запросы

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

Для фо рмирования многотабличного запроса следует перенести в окне Конструктора все таблицы, участвующие в выборке. Дальшевседелается, как в однотабличном запросе: перенести в бланк запроса поля этих таблиц, задать условие подборки. Можно использовать логические условия И Использование в запросах вычисляемых полей / Либо.

Итоговые запросы

Значение Выполняемая операция
Sum Сложение
Avg Среднее значение
Min Малое значение
Мах Наибольшее значение
Count Количество записей, содержащих значения
First Значение в первой записи
Last Значение в последней записи

Запросы, выполняющие вычисления в группах записей, именуются итоговыми запросами. Для сотворения итогового запроса, находясь в Конструкторе запросов, следует Использование в запросах вычисляемых полей избрать из менюВид/Групповые операции. В бланке запроса появится новенькая строчка с наименованием Групповая операция. В ней следует указать тип выполняемого вычисления.

К примеру, требуется подсчитать полное количество заказанных продуктов:

1. В окно Конструктора добавить таблицу Заказы.

2. Поместить в бланк запроса поле Заказано.

3. Из менюВид избратьГрупповые операции и из раскрывающегося перечня в Использование в запросах вычисляемых полей бланке запроса избрать Sum.

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

Для конфигурации имени поля в режиме Конструктора набрать в строке Поле требуемое имя (в нашем примере - Всего продуктов) и отделить от выражения двоеточием,

Набросок 30 - Итог запроса

ЛАБОРАТОРНАЯ РАБОТА

МОДУЛИ

Задание:

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

2. Создать форму и модуль для решения задачки, приобретенной у педагога.

3. Приготовитьотчет.

Отчет должен содержать:

1. Титульный лист.

2. Распечатку формы в режиме Конструктора и результаты выполнения модуля.

3. Распечатку программки.

4. Короткое описание работы.

Ход работы:

Начиная работать с модулями в СУБД Access, нужно иметь способности в программировании Использование в запросах вычисляемых полей на языке VB (Visual Basic). Разработка модуля делается на языкеVBA (Visual Basic for Application), который является общим языком программирования для приложений Microsoft Office.

Модуль представляет набор описаний и процедур на языке Visual Basic for Application для приложений, сохраненных в одном программном блоке.

Набросок 31 - Окно Модуля

Необходимость разработки собственного модуля появляется, когда Использование в запросах вычисляемых полей в СУБД отсутствуют средства выполнения определенного задания. К примеру, нет таковой функции, которая смогла бы выполнить вычисление цены заказа в таблице "ЗАКАЗЫ".

В Access подразумевается применение модулей 2-ух видов:

-стандартных, являющихся объектами базы данных, они отобра­жаются на вкладке Модули окна базы данных;

- модулей форм и отчетов (модули класса Использование в запросах вычисляемых полей), являющиесячастью этихобъектов.

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

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

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

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

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

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

В Access 97 и поболее поздних версиях модули класса могут Использование в запросах вычисляемых полей существовать независимо от форм и отчетов. Этот тип модулей класса отображается в окне базы данных. Модули класса можно использовать для сотворения описания пользовательского объекта. В Access 95 модуль класса существует исключительно в связи с формой либо отчетом.

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

В VBA для приложений имеется два типа процедур:

- функции (процедура Function)

- подпрограмма (процедура Sub).

Процедура-подпрограмма Sub делает действие либо набор действий, но не возвращает значение. Юзер имеет возможность создавать процедуры Sub без помощи других либо использовать процедуры обработки событий Использование в запросах вычисляемых полей, определенные в Microsoft Access.

Любая форма либо отчет в базе данных имеет интегрированный модуль формы либо модуль отчета, содержащий интегрированные процедуры обработки событий, которые производятся в ответ на действия, возникающие в форме либо отчете и в элементах управления в форме либо отчете. После того как Microsoft Access обусловит, что событие появилось в Использование в запросах вычисляемых полей форме, отчете либо в элементе управления, автоматом запускается процедура обработки действия, имя которой появляется как композиция имен объекта и действия. К примеру, процедура обработки действия позволяет открыть другую форму при нажатии кнопки в форме.

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

Процедура-функция Function (нередко такие процедуры именуют просто функциями) возвращает значение, к примеру, приобретенное в итоге расчетов. Visual Basic включает ряд интегрированных функций;

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

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

После сотворения функции ее можно использовать в Microsoft Access в всех выражениях.

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

Синтаксис аннотации Function:

[Public | Private] [static] Function имя функции аннотации тела функции

END Function

Подпрограмма Sub:

[Public Private] [static] Sub имя подпрограммы аннотации тела подпрограммы ' END Sub

Функция и подпрограмма, описанная с главным словом Public, доступны для Использование в запросах вычисляемых полей всех процедур во всех модулях. Ключевое слово Private процедуры Function либо процедуры Sub доступны только для других процедур только того модуля, в каком они описаны.

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

Вопрос Использование в запросах вычисляемых полей о очевидном объявлении переменных решается юзером. Для упрощения отладки программ лучше очевидно объявлять переменные. Для этого, находясь в конструкторе форм, нужно выполнить команду Вид/ Программка/ Tools и на вкладке Options установить флагRequire Variable Declaration. Режим начинает работать при повторном воззвании к командеВид/ Программка, что будет видно по наличию в модуле Использование в запросах вычисляемых полей строчки Option Explicit.

В VBA употребляются идеи объектно-ориентированного программи­рования. При разработке программ нужно ознакомиться с архитектурой приложения Access [1,2]. В соответствие с этой архитектурой различают объекты, классы, семейства, характеристики, способы, действия.

Объекты - это абстракции, которыми оперируют в объектно-ориентированных языках программирования. Объект обладает собствен­ными соответствующими признаками, отличающими Использование в запросах вычисляемых полей его от .других объектов. Примерами объектов в СУБД Access служат формы, отчеты, таблицы, запросы.

Класс представляет собой описание совокупы однотипных объектов. Объект представляет из себя экземпляр класса.

Семейство - это упорядоченный набор однотипных объектов, примерами семейств могут служить, к примеру, формы - семейств Forms, элементы управления в форме - семейство Controls Использование в запросах вычисляемых полей и т.д. в свою очередь, как ранее говорилось, семейство тоже является объектом VBA.

Каждый объект имеет характеристики и способы, которые различны у различных классов объектов.

Свойством именуют отдельную характеристику объекта либо класса, к примеру, форма имеет около 100 параметров, элемент поле выше 70 и т.д.

Способ представляет собой функцию объекта либо класса Использование в запросах вычисляемых полей. К примеру, для открытия формы можно использовать способ OpenForm объекта DoCmd. DoCmd - объект VBA, который позволяет в программках делать макрокоманды. Его синтаксис: DoCmd. способ [аргумент].

Для просмотра объектов, их параметров и способов можно воспользоваться окном Object Browser (обозреватель объектов). Для его вызова нужно, находясь в окне модуля:

1. Надавить Использование в запросах вычисляемых полей F2;

2. Надавить кнопку Object Browser в панели инструментов

3. Выполнить командуView, Object Browser.

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

-имя семейства! [имя объекта], к примеру, Forms! [Заказы]

-имя семейства ["имя Использование в запросах вычисляемых полей объекта"], предшествующий пример воспримет вид Forms! ("заказы")

-имя семейства (относительный номер объекта). Access нумерует все объекты семейства, начиная с 0. В нашем случае форма заказ будет иметь нулевой номер, потому ссылка воспримет вид: Forms (0).

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

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

При помощи Конструктора сделаем форму "Определение цены". В ней разместим только кнопку 0, щелчок по которой запустит процесс вычисления и наполнения поля "Цена" таблицы.

Форма будет иметь вид:

Набросок 32 - Вид формы Определение цены:

а) в режиме Использование в запросах вычисляемых полей Конструктора; б) в режиме формы

Выполним командуВид/Программка. На экран выведется окно редактора VBE (Visual Basic Editor), которое может содержать до 3-х панелей:

1. Панель проекта, в ней приводится дерево объектов нашей базы данных Реализации с указанием места объектаForm - определение цены.

2. Панель параметров, в ней отражены характеристики выделенного объекта, в Использование в запросах вычисляемых полей нашем случае это Кнопка 0.

3. Панель редактора кода.

Код программки состоит из 2-ух разделов:

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

Form

Кнопка О

Область данных

- Declarations (описание)

Выделим строчку Кнопка 0 и Использование в запросах вычисляемых полей щелкнем по ней в разделе General окажется запись Кнопка 0 , а в разделе Declarations предлагается использовать событие Click (щелчок по Кнопке 0) для пуска программки, которую нам еще предстоит написать. Программка вычисления с пояснением приведена на рисунке 33. Если надавить на кнопку раскрывающегося перечня, то раскроется огромное количество событий, которые Использование в запросах вычисляемых полей можно использовать для пуска программки.

В учебном примере приходится удалять значение цены в таблице ЗАКАЗЫ, потому что в неприятном случае нет необходимости в вычислениях, после первого вычисления записи в поле Цена будут заполнены. Если нужно сохранить вычисленные значения, то из модуля нужно удалить 2-ой цикл For NEXT.

Option Compare Использование в запросах вычисляемых полей Database Option Explicit 'Оператор неотклонимого объявления переменных Private Sub КнопкаО_СНс1с() 'Заголовок процедуры обработки действия Click Dim db Реализации As Database 'Объявление объектной переменной db Реализации типа Database Set db Реализации = CurrentDb() 'Устанавливается ссылка на текущую базу данных Реализации Dim rcdЗаказы As Recordset 'Объявление объектной переменной гсd Использование в запросах вычисляемых полей3аказы типа Recordset Set rcdЗаказы dbПpoдaжи.OpenRecordset("ЗAKAЗЫ") 'Устанавливается ссылка на таблицу ЗАКАЗЫ Dim rcdToвары As Recordset 'Объявление объектной переменной rcd 3aказы типа Recordset Set rcdToвары = dbПродажи.OpenRecordset("TOBAPbI") 'Устанавливается ссылка на таблицу Продукты Dim intI As Integer, IntКстрок As Integer 'Объявление переменных IntI, IntСтрок типа Integer rcd3aказы.MoveLast 'Указатель устанавливается Использование в запросах вычисляемых полей на последнюю запись IntKcтрок = rcd3aкaзы.RecordCount 'Определяется количество записей в наборе записей rcd3aказы rcd3aказы.MoveFirst Указатель устанавливается на первую запись or intI 1 То IntKcтрок 'Организация цикла перемещения по записям rcd3aказы.Edit 'Применение способа разрешающего редактирования записей rcd3aказы! [Стоимость] = rcd3aказы ! [Продано] * rcdToвары Использование в запросах вычисляемых полей! [Цена товара] 'Определение цены заказа rcd3aказы. Update 'Сохранение конфигураций в наборе записей rcd3aказы.MoveNext 'Указатель устанавливается на следующуюзапись ext intI 'Конец цикла DoCmd.OpеnTable "ЗАКАЗЫ" 'Применение способа открытие таблицы (OpenTable)объекта DoCmd MsgBox "Обнуление поля Цена" 'Вывод сообщения rcd3aказы,MoveFirst 'Организация цикла обнуления цены в Использование в запросах вычисляемых полей таблице ЗАКАЗЫ For intI = 1 То IntKcтрок cd3aказы Edit rcd3aказы! [Стоимость]= Null "Обнуление цены в таблице ЗАКАЗЫ . rcd3aказы.Update rcd3aказы.MoveNext ext intI rcd3aказы Close 'Закрытие набора записей rcd3aказы rcdТовары 'Закрытие набора записей rcdТовары End Sub


Набросок 33 - Программка вычисления

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

К примеру, нужно найти сумму вклада через Т лет, если на реальный момент вклад составляет А рублей и процент по вкладу составляет Р%.

Для решения этой задачки Конструктором форм разрабатывается форма, в которую вносятся нужные данные А, Р, Т и Использование в запросах вычисляемых полей итог - сумма вклада через Т лет. Для пуска программки в форме расположим кнопку. Форма будет иметь вид, представленный на рисунке 34. Программка для решения данной задачки представлена на рисунке 35.

Набросок 34- Форма для определения вклада через Т лет

Option Compare Database Option Explicit Private Sub Кнопка 10_Click{) Поле1 Null 'Чистка полей Поле3 Null Поле Использование в запросах вычисляемых полей5 Null Поле8 – Null End Sub Private Sub Kнonfca7_Click() Dim intl As Inteeer. A As Single, P As Single, Т As Single 'Объявление и задание типа переменных А = Поле1 Задание значений переменной А через Поле1 Р = Поле.3 'Задание значений переменной Р через Поле3 Т = Поле 5 'Задание значений Использование в запросах вычисляемых полей переменной Т через Поле5 For intl ; 1 То Т 'Организация цикла А=А + А / 100 * Р Next intl Поле8 - А 'Вывод суммы вклада End Sub


Набросок 35 - Программка для вычисления суммы вклада


ispolzovanie-sredstv-organizacionnoj-tehniki-v-rabote-menedzhera-kontrolnaya-rabota.html
ispolzovanie-standartizirovannih-tehnik-testov-v-specialnoj-psihologii.html
ispolzovanie-staticheskogo-ip-adresa.html