Вычисляемое поле в таблице access - IT Справочник
Llscompany.ru

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

Вычисляемое поле в таблице access

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Copyright

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

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

Как заставить Аксесс хранить результат вычислений?

Например, если у вас есть поля Количество и ЦенаЗаЕдиницу, как заставить Аксесс записать Количество * ЦенаЗаЕдиницу в поле Стоимость?

Лучший ответ: «Не делайте этого!»

Место вычисляемых полей ― в запросах, а не в таблицах.

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

Спросите себя: «Если в этом поле окажется значение, отличное от вычисленного, будет ли это ошибкой?» Если ответ «Да», вам не стоит заводить это поле. Если разница будет нести определенный смысл, тогда вам это поле действительно нужно.

Читать еще:  Поиск в базе данных access

Итак, как же получить вычисленное поле, если его нельзя хранить в таблице? Используйте запрос:

  1. Создайте запрос, основанный на этой таблице.
  2. Запишите выражение в строке конструктора запроса:
    Стоимость: [Количество] * [ЦенаЗаЕдиницу]

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

Вы все еще хотите хранить вычисляемые поля?

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

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

Чтобы получить это, используйте событие AfterUpdate контрола на вашей форме, чтобы автоматически посчитать плату:

  1. Выставьте значение свойства AfterUpdate текстового поля Количество на [Обработка события] .
  2. Нажмите кнопку построителя (. ). Аксесс откроет окно редактора кода
  3. Введите эту строку между строками Private Sub. и End Sub:
  4. Установите свойство After Update текстового поля ЦенаЗаЕдиницу на [Обработка события] , и нажмите кнопку построителя.
  5. Введите следующую строчку:

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

Если у вас возник вопрос, как бы помочь пользователю с вычислением с помощью описанного приема, см. Enter text in calculated controls.

А как насчет вычисляемых полей в Аксессе 2010?

Аксесс 2010 позволяет создать вычисляемое поле в таблице вот таким образом:

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

Это может показаться простым решением, но оно создает больше проблем, чем решает. Вы быстро столкнетесь с тем, что выражения весьма ограничены. Также это сделает базу данных бесполезной для тех, кто будет использовать ее в Аксессе 2007. Вместо того, чтобы прочитать данные, они увидят вот такое сообщение:

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

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

Создание таблиц и запросов в MS Access. Условия выборки данных. Логические операции и выражения. Вычисляемые поля.

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

Запрос можно создать с помощью мастера запросов, либо с помощью конструктора запросов.

Условия выборки данных.

Примеры использование символов задания шаблонов

Примеры условных выражений

Логические операции и выражения.

Выражения

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

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

Операции

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

Читать еще:  Базы данных access видео уроки

Оператор — это наименьшая исполняемая единица программного кода VBA. Различают операторы выражения, операторы объявления, операторы присваивания, условный оператор, цикла и т.д. Операторы выражений — это процедуры или строка в тексте исполняемого кода программы. Операторы выражений выполняют какие-либо действия в программе.

Оператор присваивания — это связанное знаком равенства выражение, в котором значение выражения, указанное справа, присваивается переменной, находящейся слева от знака равенства. Например, в операторе присваивания strСтудент.ИмяST = «Петр», имя «Петр» присваивается структурному элементу «ИмяST» переменной пользовательского типа данных «strСтудент».

Арифметические операторы представляют собой инструкции, в которых применяются арифметические операции. В VBA используются арифметические операции: сложение (+); вычитание (-); умножение (*); деление (/); деление без остатка (); остаток от деления по модулю (mod); возведение в степень (^). Например, result=(7+12)*5^3

Логические операторы — это инструкции, в которых применяются логические операции в логических выражениях. Логические выражения имеют значения типа Boolean, которое принимает одно из двух логических значений: True (1) или False (0). При выполнении логических операций логическим переменным присваивается результат вычислений, указанный в правой части операторов. К логическим операциям относятся: and, or, nod, xor, eqv, imp (логическое и, или, нет, логическое исключающее или, логическая эквивалентность, логическая импликация). Например,(9>8) Or (2>5) ‘ Результат является True (истина), так как одно из условий является True.

Операторы сравнения или отношений. Результатом операций сравнения является значение Boolean, которое принимает одно из двух логических значений: True (истина) или False (ложь). В операторах могут применяться с определенным синтаксисом следующие знаки операций сравнения: равенство (=); больше чем (>) и меньше чем ( ); больше или равно (>=) и меньше или равно (

Общие условия выбора системы дренажа: Система дренажа выбирается в зависимости от характера защищаемого.

Опора деревянной одностоечной и способы укрепление угловых опор: Опоры ВЛ — конструкции, предназначен­ные для поддерживания проводов на необходимой высоте над землей, водой.

Организация стока поверхностных вод: Наибольшее количество влаги на земном шаре испаряется с поверхности морей и океанов (88‰).

Запросы с вычисляемыми полями

СУБД Access позволяет выполнять вычисления с любыми полями таблицы и сделать вычисляемое выражение новым полем в наборе записей. В вычисляемых выражениях можно использовать любые из встроенных функций Access. При вычислении арифметических выражений Access присваивает результату подходящий тип данных.

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

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

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

Аргументами функций могут быть сложные выражения, в состав которых входят поля таблицы. Для создания таких выражений Построитель имеет область объектов (таблицы, запросы, формы и т.д.) и область полей указанных объектов. При раскрытии объекта Функции появляется список групп функций и список функций выделенной группы.

В выражениях могут использоваться обычные операторы: +, -, *,/, а также специальные операторы, например:

MOD – остаток от деления целого выражения на целое. При необходимости происходит округление обоих выражений;

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

1)Вычислить стоимость партии товара.

· Поставить курсор в пустую ячейку строки Поле:;

· вызвать Построитель выражений – ;

· дважды щёлкнуть по объекту Таблицы;

— выбрать таблицу Товар, затем поле Цена, кнопку Вставить;

— знак (или кнопку) — * (умножить);

— выбрать таблицу Продажи, затем поле Количество, кнопку Вставить;

· в пустой ячейке строки Поле получилось выражение:

· заменить служебное слово Выражение1 на смысловое СтоимостьПартии;

· сохранить запрос c вычисленным полем, задать имя запроса:

2)Ввести 10% скидку на стоимость партии товара более 10 штук.

· Ввести в запросный бланк таблицу Товар и запрос Стоимость;

· создать вычисляемое поле с помощью Построителя выражений, используя функцию управления – развилку:

IIf (логическое выражение;

действие1 по значению истина;

действие2 по значению ложь).

СтоимПартии: IIf([продажи]![Количество]>10;

3)Создать новое поле «ФИО», составленное из полей «Фамилия», «Имя», «Отчество» одной таблицы.

Решение: выражение, на основе которого выполняется запрос —

[Фамилия] & “,” & [Имя] & “,” & [Отчество]

1. Вы­числяемое поле существует только в результирующей таблице запроса.

2. После выполнения запроса вычисляемое по­ле выводит на экран результат вычислений, а не само выражение.

Читать еще:  Шаблоны access скачать

3. Самый быстрый способ вставки поля в выражение в Построителе выражений – это двойной щелчок левой кнопкой мыши по имени поля.

4. Вы­числяемое поле можно создать путем простого ввода (с клавиатуры) выражения для вычисления в ячейку «Поле» пустого столб­ца бланка запроса.

5. Вычисляемые поля имеют стандартные имена: Выражение1,2… Для удобства работы с ними следует изменить стандартные имена на смысловые непосредственно в запросной форме (в ячейке строки вычисляемого поля).

6. Для просмотра и ввода длинных выражений ячейки строки Поле: следует открыть окно Область ввода нажатием клавиш Shift–F2.

Вычисляемые поля в запросах.

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

1. Создать запрос выбора, выбрав необходимые поля.

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

3. Запустите запрос, нажав кнопку с изображением!.

4. В результирующей таблице появится новое поле с названием Выражение 1.

5. Вернувшись в режим Конструктора, измените имя Выражение 1на более значимое.

  1. При закрытии, сохраните запрос.

Запросы позволяют производить итоговые вычисления. Для этого предусмотрены следующие статистические функции:

Sum – суммирование значений определенного поля.

Avg – вычисление среднего значения данных определенного поля.

Min – вычисление минимального значения поля.

Max – вычисление максимального значения поля.

Count – вычисление количества записей, отобранных запросом.

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

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

StDev – вычисляется стандартное отклонение значений данного поля, для всех записей, отобранных запросом.

Var — вычисляется вариация значений данного поля, для всех записей, отобранных запросом.

Создать запрос выбора, выбрав необходимые поля.

1. Выполните команду Вид – Групповая операция. В результате чего в бланке запроса появится строка Групповая операция.

2. Для соответствующего поля выберите нужную функцию из списка Группировка.

3. Запустите запрос, нажав кнопку с изображением!.

4. При закрытии, сохраните запрос.

  1. Создать запрос выбора, выбрав поля, значения которых в новой таблице должны появиться в виде строк, столбцов и в качестве значения.
  2. Выполните команду Запрос – Перекрестный. Строка запроса Вывод на экран изменится на строку Перекрестная таблица и перед ней появится строка Групповая операция.
  3. Щелкните мышью в строке Перекрестная таблица и выберите соответствующие значениям данных полей опции из раскрывающегося списка.
  4. Для поля, содержимое которого индицируется в качестве значений, в строке Групповая операция введите необходимую функцию.
  5. Запустите запрос, нажав кнопку с изображением!.
  6. При закрытии, сохраните запрос.

Выполненное задание отправить в системе moodle.ysaa.ru

II. Создание форм и отчетов (2 часа).

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

2. С помощью мастера форм создайте и сохраните форму на основе таблицы «Поставщики», выводящую в один столбец значения полей «Название фирмы», «Телефон», «Факс», «Адрес».

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

4. Создайте форму для таблицы «Товары1», отображающую данные о ценах на телевизоры, их марку и изображение, включив в область примечаний минимальную цену. Добавьте в форму кнопку, при нажатии на которую будет выполняться запрос на обновление данных, созданный на предыдущих занятиях. ( Для обновления данных в форме после нажатия на созданную кнопку используйте команду Записи- Обновить).

5. Создайте отчет по запросу для таблиц «Товары» и «Поставщики», отображающий данные о музыкальных центрах: их марку и цену, а также название фирмы-поставщика, включив в область заголовка соответствующее название отчета, в область верхнего колонтитула системную дату, а в область примечаний – среднюю цену (Для записи формулы вычисления средней цены воспользуйтесь Построителем выражений). Оформите отчет с помощью элементов рисования панели элементов. В случае необходимости воспользуйтесь информацией Помощника по разработке отчета.

Для создания отчета без помощи Мастера.

Статьи к прочтению:

Как создать ВЫЧИСЛЯЕМЫЕ запросы в базе Access

Похожие статьи:

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

Одна из самых мощных возможностей Access одновременно является и наиболее важной. Отношения позволяют связать таблицы графически. Можно даже связывать…

Ссылка на основную публикацию
ВсеИнструменты 220 Вольт
Adblock
detector