Progress-servis55.ru

Новости из мира ПК
5 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Расчеты в access

Лекция 6 Тема: Запросы. Вычисления и групповые операциию

6.1. Вычисляемые поля.

6.2. Создание выражений с помощью Построителя выражений.

6.3. Обзор встроенных функций СУБД MS Access.

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

6.5. Перекрестные запросы.

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

В QBE СУБД MS Access такие возможности предоставляются через вычисляемые поля и групповые операции.

6.1. Вычисляемые поля

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

Стоимость: Товары! Цена * Количество * (1-Скидка)

КоличествоМужчин: Sum(IIf(Пол = «м»; 1; 0))

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

Если имя таблицы или поля содержит пробелы, то его идентификатор обязан в выражении заключаться в квадратные скобки, например

Стоимость: Цена*[Количество товара]

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

Обновить вычисленные результаты вручную невозможно.

Для построения сложных выражений в СУБД MS Access входит утилита, называемая Построитель выражений.

6.2. Создание выражений с помощью Построителя выражений

Построитель выражений можно запустить щелкнув по клавише Построить на панели инструментов Конструктор запросов или выбрав в контекстном меню поля бланка запроса QBE команду меню Построить….

Рис.6.1. Диалоговое окно Построитель выражений

Рис.6.2. Диалоговое окно Построителя выражений
со сформированным выражением

6.3. Обзор встроенных функций СУБД MS Access

СУБД MS Access содержит более 100 встроенных функций (рис.6.3), которые можно использовать при формировании вычисляемого поля или при задании условия отбора.

Рис.6.3. Диалоговое окно Построителя выражений
со списком встроенных функций

Все встроенные функции в Построителе выражений сгруппированы по функциональному назначению.

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

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

Таблица 6.1

Функции категории Дата/время

Возвращает значение дня месяца от 1 до 31

Возвращает значение месяца от 1 до 12

Возвращает название месяца соответствующего номеру месяца: 1 – январь, 2 – февраль, и т. д. Если значение аргумента флаг Истина, то функция возвращает аббревиатуру месяца: 1 – янв, 2 – фев и т. д.

Возвращает значение года от 100 до 9999

Если аргумент число не указан, возвращает значение дня недели от 1 (воскресенье) до 7 (суббота). Если аргумент число имеет значение 0, то возвращает значение дня недели от 1 (понедельник) до 7 (воскресенье)

Возвращает целое число от 0 од 23, представляющее значение часа

Возвращает числовое значение в зависимости от значения аргумента интервал:

«q» – квартал (от 1 до 4);

«m» – месяц (от 1 до 12);

«yyyy» – год (от 100 до 9999);

«ww» – неделя (от 1 до 53);

и т. п. (см. справку по функции).

Возвращает текущую системную дату

Функции категории Проверка

Возвращает значение Истина если значение переменной (значение поля в источнике данных) равно Null

Возвращает значение Истина если значение переменной (значение поля в источнике данных) имеет один из числовых типов данных

Функции категории Управление

IIf(условие; выр1; выр2)

Возвращает значение выражения выр1 если значение аргумента условие Истина и возвращает значение выражения выр2 если значение аргумента условие Ложь. Данная функция аналогична функции ЕСЛИ в MS Excel.

Продолжение таблицы 6.1

Функции категории Текстовые

Возвращает n левых символов аргумента текст

Возвращает n правых символов аргумента текст

Mid(текст; нач_поз[; n])

Возвращает n символов начиная с позиции нач_поз аргумента текст. Если аргумент n не указан, то возвращает все символы до конца строки начиная с позиции нач_поз аргумента текст.

Читать еще:  Powerpoint обучение онлайн бесплатно

Возвращает количество символов (длину строки) в аргументе текст

Возвращает строковое значение аргумента текст без начальных пробелов

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

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

Возвращает строковое значение аргумента число

Возвращает значение аргумента переменная в формате заданным аргументом формат

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

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

— количество сделок с Партнерами за определенный промежуток времени;

— средний объем продаж по каждому месяцу за предыдущий год.

Ответы на такие вопросы дает итоговый запрос.

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

По умолчанию для каждого поля, занесенного в бланк запроса, устанавливается значение Группировка (итоги не подводятся).

Для подведения итогов необходимо заменить установку Группировка на конкретную итоговую функцию. В СУБД MS Access предусмотрено 9 функций (табл. 6.2), обеспечивающих выполнение групповых операций.

Таблица 6.2

Функции категории Статистические

Возвращает сумму набора значений

Возвращает среднее арифметическое набора значений

Возвращает наименьшее значение из набора значений

Возвращает наибольшее значение из набора значений

Возвращает количество записей в наборе значений отличных от Null

Возвращает первое значение поля в группе

Возвращает последнее значение поля в группе

Возвращает среднеквадратичное отклонение набора значений

Возвращает дисперсию набора значений

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

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

Для решения более сложных статистических задач в СУБД MS Access предусмотрен специальный тип запроса – перекрестный запросов.

6.4. Перекрестные запросы

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

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

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

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

Рис.6.4. Макет перекрестной таблицы

Рис.6.5. Сформированный перекрестный запрос в QBE

Рис.6.6. Результат выполнения запроса в режиме Таблицы

Вычисления в Access 2003

В Accessвычисления выполняют в запросах и в отчетах. Все вычисления по формулам осуществляют только в запросах с помощью строки Групповая операция. Чаще всего используются следующие функции этой строки.

· Выражение. Выполнение вычислений в поле по формуле.

· Суммирование (Sum). Суммирует все значения выбранного поля.

· Среднее значение (Avg). Вычисляет среднее значение всех чисел в выбранном поле.

· Минимум (Min). Определение наименьшего числа в поле.

· Максимум (Max). Определение наибольшего числа в поле.

Рис.19. Открываем окно со строкой Групповые операции

Для выполнения вычислений с использованием размещенных в полях запроса данных прежде всего проверьте в каких столбцах каких таблиц размещены необходимые для расчетов числа. Все эти столбцы (поля) включите в запрос. Затем следует, щелкнув левой кнопкой мыши в панели инструментов на кнопке Конструктор(рис. 19), добавить в окно запроса строку Групповая операция, которая по умолчанию скрыта. Откроется окно, показанное на рисунке 20. В некоторых версиях Accessв менюВидимеется строкаГрупповая операция, которая может быть использована для этой цели.

Рис.20. Строка Групповая операция

Строка Групповая операция должна появиться автоматически. В некоторых версиях Accessэтастрока автоматически не появляется. В таком случае надо в панели инструментов нажать кнопку с символом ∑ (Групповая операция), которая выделена на рисунке . Для записи формулы выбираем пустое поле. В строке Групповая операция во всех полях запроса по умолчанию записано значение Группировка. Для ввода формулы в выбранном поле этой строки надо поместить значение Выражение, что можно сделать следующим образом:

Читать еще:  Как добавить шрифт в powerpoint

· Щелкните по строке Групповая операция в выбранном поле.

· Щелкните по появившейся в поле кнопке с треугольником.

· В раскрывшемся списке выберите строку Выражение (рис.21 ).

· В строке Вывод на экран надо отметить флажок.

Рис. 21. Выбор групповой операции «Выражение»

Формула записывается в строке Поле по тем же правилам, что и в Excel, но вместо адресов ячеек используются заключенные в квадратные скобки имена полей. Имя поля в формуле следует вводить с учетом регистра, вручную, не копировать! В формулу могут входить числа (константы), однако проценты необходимо преобразовать в десятичные дроби. Например, если требуется вычислить отпускную цену товара, увеличив оптовую цену на 25%, в строке Поле следует записать формулу:

После ввода формулы щелкните за пределами готового выражения, можно в другой строке. Вместо знака равенства Accessдобавит в начало формулы текст Выражение1:, который и станет именем поля. Этот текст можно позднее заменить. Если в запрос будет добавлено еще одно поле с формулой, оно получит имя Выражение2: и т.д. Откройте запрос и проверьте наличие нового поля с заголовком Выражение 1. Для того, чтобы просмотреть запрос в виде таблицы, выберите в меню команду Вид, в раскрывшемся списке – Режим таблицы. Для изменения заголовка поля щелкните в панели инструментов на кнопке Конструктор(рис. 19), затем в нужном столбце строки Поле (рис. 20) удалите прежнее имя и введите новое.

Дата добавления: 2015-05-09 ; Просмотров: 971 ; Нарушение авторских прав?

Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет

Вычисляемые поля в запросе БД Access 2003

Вычисления в запросе БД Access 2003

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

Выражения могут содержать следующие элементы:

  • идентификаторы (имя поля и элемента управления, которые заключаются в квадратные скобки);
  • операторы (арифметические, логические, сравнения и другие операторы);
  • функции (готовые формулы, которые состоят из имени и аргумента, помещенного в круглые скобки)
  • константы (элементы, которые не изменяются в Выражении, например Null, Истина, Ложь);
  • значения (например, значения даты и времени, численные положительные или отрицательные значения).
  • =[Оценка]/1,2, где «=» — опрератор, [Оценка] — имя поля, а 1,2 — значение;
  • Date(), где Date — имя функции текущей даты, которая не имеет аргумента.

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

Рассмотрим создание вычисляемого поля в бланке запроса на примере базы данных Training_students_VP. Постановка задачи: в запросе на выборку (Запрос 3) создать поле, в котором должны отображаться итоговые оценки (ниже на 20% от полученных по результатам рейтинга). Для решения этой задачи откроем бланк «Запроса 3» в режиме конструктора (Рис. 1).

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

Читать еще:  Сумма строк в access

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

Для поставленной задачи в Построитель можно ввести выражение =[Оценка]/1,2 с клавиатуры (Рис.2) и щелкнуть на кнопке ОК.

В результате в бланке запроса появится вычисляемое поле =[Оценка]/1,2

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

С учетом вышеизложенного следует изменить название вычисляемого поля и отформатировать его. Для этого необходимо вернуться в режим конструктора и слово Выражение1 заменить на «Итог_оценка». Затем щелкнуть правой кнопкой мыши на вычисляемое поле и в контекстном меню выбрать команду Свойства, откроется диалоговое окно Свойства поля (Рис. 5)

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

Copyright

© Обучение в интернет, .
Обратная связь

Формулы в Access

21.08.2011, 07:08

Access и формулы
Я в Access неочень, ну наверное как и все здесь задающие вопросы книгу мне читать — времени нет.

Формулы в MS Access 2010
Подскажите, как в MS Access 2010 создать БД, в которой в одном из полей будут находиться формулы.

Формулы в таблицах access
Всем привет. У меня например есть формула: x + y. Мне необходимо сохранить эту формулу в таблицу.

Формулы в access 2010
Подскажите пожалуйста случайно нет ни у кого списка формул для ACCESS 2010 с описанием. Использую.

21.08.2011, 10:38221.08.2011, 11:18322.08.2011, 05:004

Например, на форме у поля в свойствах
на вкладке Данные, нажать кнопочку с тремя точками
и появится Построитель выражений.

23.08.2011, 10:06 [ТС]5

Например, на форме у поля в свойствах
на вкладке Данные, нажать кнопочку с тремя точками
и появится Построитель выражений.

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

формулу прописываю следующую: = Долг [Сметная стоимость объекта]-[Оплачено]
в запросе же прописана похожая формула, но немного отличающаяся: [1 Перечень объектов]![Сметная стоимость объекта]-[1 Перечень объектов]![Оплачено]

ошибка возникает при вводе любой из этих формул

23.08.2011, 10:23623.08.2011, 10:34 [ТС]7

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

Добавлено через 7 минут
все разобрался)

19.10.2011, 15:398

А у меня более замороченная тема. и тоже по аналогии с Excel.

Помогите! Мне нужно каким-то образом решить вот какую задачу:
В режиме формы (!Внимание! НЕ в режиме конструктора) нужно создать поле («Себестоимость»), в которое можно бы было вводить вручную простые арифметические вычисления, из которых эта себестоимость складывается (наподобие Excel). Для каждой строки эта формула может быть разной.
Например:
=15*3/3,65+15,5+10
=5*150+4*130
Обращаю внимание, что для каждой новой записи такая формула может быть уникальной.
На выходе нужно получать результат вычисления и при этом иметь возможность «заглянуть в формулу».

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

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

Ссылка на основную публикацию
Adblock
detector