MS Access Вставить вычисляемое поле в таблицу Поле. Вычисляемое поле в таблице в access


Добавление вычисляемого поля в таблицу

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

Примечания: 

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

  • Результаты вычислений доступны только для чтения.

  • Вычисляемые поля доступны только в базах данных Access в ACCDB-файлах.

  • Необходимо использовать Access 2010 или более поздней версии.

Создание вычисляемого поля в режиме таблицы

  1. Откройте таблицу, дважды щелкнув ее в области навигации.

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

  3. В появившемся списке выберите пункт Вычисляемое поле и укажите тип данных результата.

    Откроется построитель выражений Access.

  4. Начните вводить формулу расчета, которую вы хотите использовать для этого поля. Например:

    [Количество] * [Цена единицы]

    Примечание:  В начале выражения не требуется вводить знак равенства (=).

  5. Нажмите кнопку ОК.

    Приложение Access добавит вычисляемое поле и выделит его заголовок, чтобы можно было ввести имя поля.

  6. Введите имя вычисляемого поля и нажмите клавишу ВВОД.

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

Изменение вычисляемого поля в режиме таблицы

  1. Откройте таблицу, дважды щелкнув ее в области навигации.

  2. Выделите вычисляемое поле, которое необходимо изменить.

  3. На вкладке Поля в группе Свойства нажмите кнопку Изменить выражение.

    Откроется построитель выражений Access.

  4. В поле выражения внесите необходимые изменения в вычисление.

    Примечание:  В начале выражения не требуется вводить знак равенства (=).

  5. Нажмите кнопку ОК.

К началу страницы

support.office.com

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

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

Задача 1. В таблице ТОВАР имеются поля ЦЕНА и СТАВКА_НДС, вычислите цену с учетом НДС и сравните ее с полученной в вычисляемом поле таблицы Цена с НДС.

  1. Создайте в режиме конструктора запрос на выборку для таблицы ТОВАР. Перетащите в бланк запроса поля НАИМ_ТОВ, ЦЕНА, СТАВКА_НДС и Цена с НДС (рис. 4.6).
  2. Для подсчета цены с учетом НДС создайте вычисляемое поле, записав в пустой ячейке строки Поле (Field) выражение [ЦЕНА]+[ЦЕНА]*[СТАВКА_НДС].
  3. Для отбора записей со значением выше 5000 в вычисляемом поле в строку Условие отбора (Criteria) введите > 5000
  4. После ввода выражения система по умолчанию формирует имя вычисляемого поля Выражение 1, которое становится заголовком столбца в таблице с результатами выполнения запроса. Это имя вставится перед выражением [ЦЕНА]+[ЦЕНА]*[СТАВКА_НДС]. Для каждого нового вычисляемого поля в запросе номер выражения увеличивается на единицу. Имя вычисляемого поля отделяется от выражения двоеточием. Для изменения имени установите курсор мыши в вычисляемом поле бланка запроса и нажмите правую кнопку мыши. В контекстно-зависимом меню выберите Свойства (Properties) поля и в строку Подпись (Caption) введите новое имя поля ― Цена с НДС1. Теперь в таблице с результатами выполнения запроса в заголовке вычисляемого столбца отобразится это имя. Имя поля может быть исправлено также непосредственно в бланке запроса.
  5. Для отображения результата выполнения запроса щелкните на кнопке Выполнить (Run) в группе Результаты (Results). Вычисляемое поле таблицы и за-проса имеют одинаковые значения.
  6. Измените в одной из записей запроса цену товара. Значения в обоих вычисляемых полях будут моментально пересчитаны.
  7. Для формирования сложного выражения в вычисляемом поле или условии отбора целесообразно использовать построитель выражений. Построитель позволяет выбрать необходимые в выражении имена полей из таблиц, запросов, знаки операций, функции. Удалите выражение в вычисляемом поле и используйте построитель для его формирования.
  8. Вызовите построитель выражений (Expression Builder), нажав кнопку Построитель (Builder) в группе Настройка запроса (Query Setup) ленты Конструктор (Design), или выбрав Построить (Build) в контекстно-зависимом меню. Курсор мыши должен быть установлен предварительно в ячейке ввода выражения.
  9. В левой части окна Построитель выражений (Expression Builder) (рис. 4.7) выберите таблицу ТОВАР, на которой построен запрос. Справа отобразится список ее полей. Последовательно выбирайте нужные поля и операторы, двойным щелчком вставляя в выражение. Выражение сформируется в верхней части окна. Обратите внимание, построитель перед именем поля указал имя таблицы, которой оно принадлежит, и отделил его от имени поля восклицательным знаком.
  10. Завершите процесс построения выражения в вычисляемом поле, щелкнув на кнопке ОК.
  11. Сохраните запрос под именем ― Цена с НДС и закройте его.
  12. Выполните сохраненный запрос, выделив его в области навигации и выбрав в контекстном меню команду Открыть (Open).

Задача 2. В вычисляемых полях и условиях отбора можно использовать встроенные функции. В Access определено более 150 функций.Пусть необходимо выбрать все накладные, по которым производилась отгрузка в заданном месяце. В таблице НАКЛАДНАЯ дата отгрузки хранится в поле ДАТА_ОТГ с типом данных Дата/время (Date/Time).

  1. Создайте в режиме конструктора запрос на выборку для таблицы НАКЛАДНАЯ. Перетащите в бланк запроса поля НОМ_НАКЛ и КОД_СК (рис. 4.8).
  2. Создайте вычисляемое поле в пустой ячейке строки Поле (Field), записав туда одно из выражений: Format([НАКЛАДНАЯ]![ДАТА_ОТГР];»mmmm») ― эта функция возвратит пол-ное название месяцаили Format([НАКЛАДНАЯ]![ДАТА_ОТГР];»mm») ― эта функция возвратит номер месяца.
  3. Для отбора накладных, выписанных в заданном месяце, в вычисляемом поле в строку Условие отбора (Criteria) введите название месяца, например март (рис. 4.8), или номер месяца, например 3 в соответствии с параметром в функции Format.
  4. Выполните запрос, нажав кнопку Выполнить (Run) в группе Результаты (Results) на вкладке ленты Работа с запросами | Конструктор (Query Tools | Design).
  5. Запишите в вычисляемом поле функцию Month(НАКЛАДНАЯ!ДАТА_ОТГ), и убедитесь, что эта функция возвращает выделенный из даты номер месяца.
  6. Для выборки всех строк, относящихся ко второму кварталу, в строку Условие отбора (Criteria) введите оператор Between 4 And 6, определяющий, попадает ли значение выражения в указанный интервал.
  7. Запишите в вычисляемом поле выражение MonthName(Month(НАКЛАДНАЯ!ДАТА_ОТГ)) и убедитесь, что функция MonthName преобразует номер месяца в его полное на-звание.

Для закрепления смотрим видеоурок:

Параметрический запрос Access тут.

accesshelp.ru

Вычисляемые поля | MS Access Russian Pages Wiki

Автор Allen Browne, ноябрь 2003 г. Обновление апрель 2010 г.

Перевод с английского Александр Артамонов, октябрь 2011 г.

Оригинал Calculated Fields

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

Лучший ответ: "Не делайте этого!"Место вычисляемых полей ― в запросах, а не в таблицах.

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

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

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

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

Ну... Почти надежно. Остается вероятность неверной интерпретации вычисляемых полей.Вы все еще хотите хранить вычисляемые поля?

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

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

Чтобы получить это, используйте событие AfterUpdate контрола на вашей форме, чтобы автоматически посчитать плату:Выставьте значение свойства AfterUpdate текстового поля Количество на [Обработка события].Нажмите кнопку построителя (...). Аксесс откроет окно редактора кодаВведите эту строку между строками Private Sub... и End Sub:

Private Sub Количество_AfterUpdate() Me.Плата = Round(Me.Количество * Me.ЦенаЗаЕдиницу * 0.1, 2) End Sub

Установите свойство After Update текстового поля ЦенаЗаЕдиницу на [Обработка события], и нажмите кнопку построителя.Введите следующую строчку:

Private Sub ЦенаЗаЕдиницу_AfterUpdate() Call Количество_AfterUpdate End Sub

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

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

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

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

Скриншот вычисляемого поля в Access 2010

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

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

Диалоговое сообщение о несовместимости

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

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

msaccessrussianpages.wikia.com

Создание выражений - Access

С помощью выражений можно выполнять разнообразные операции с данными. Например, вы можете определить, сколько дней прошло с момента отправки заказа, или объединить содержимое полей FirstName и LastName и поместить результат в поле FullName. Разделы этой статьи содержат пошаговые инструкции по созданию выражений.

В этой статье

Вычисление значений элементов управления в формах и отчетах

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

Чтобы вычислить итог, поместите элемент управления "поле" в нижний колонтитул отчета и настройте для свойства ControlSource этого поля следующее выражение:

=Sum([table_field])

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

ПРОЦЕДУРА

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

  2. Выделите элемент управления, в который необходимо ввести выражение.

  3. Если окно свойств не отображается, нажмите клавишу F4.

  4. Чтобы создать выражение вручную, на вкладке Данные страницы свойств выберите свойство ControlSource (Данные) поля, а затем введите выражение, предварив его знаком равенства (=). Например, для вычисления итога, как показано выше, введите =Sum([table_field]). Вместо элемента table_field укажите действительное имя поля.

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

    После ввода выражения окно свойств будет выглядеть так:

К началу страницы

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

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

Предположим, вы хотите просмотреть все заказы с датой отгрузки в течение первых трех месяцев 2017 г. Чтобы задать условие, введите следующее выражение в ячейку Условия столбца "Дата и время" в запросе. В нашем примере используется столбец "Дата и время" с именем ShippedDate. Чтобы определить диапазон дат, введите следующее условие:

Between #1/1/2017# And #3/31/2017#

Столбец ДатаИсполнения будет выглядеть подобным образом:

Для каждой записи в таблице заказов, для которой значение в столбце ShippedDate попадает в указанный интервал дат, будет создана запись в выходных данных запроса. Обратите внимание: в выражении даты заключаются в знаки решетки (#). Значение между знаками решетки трактуется в Access как значение с типом данных "Дата и время". Это означает, что с такими значениями могут производиться соответствующие вычисления, например вычитание одной даты из другой.

ПРОЦЕДУРА

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

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

  3. Чтобы создать выражение вручную, введите выражение условия. Не начинайте выражение условия с оператора =.

  4. Чтобы использовать построитель выражений, на вкладке Конструктор в группе Настройка запроса нажмите кнопку Построитель  .

    Если для редактирования выражения вам требуется больше места, установите курсор в ячейку Условие отбора, а затем нажмите сочетание клавиш SHIFT+F2, чтобы открыть окно Область ввода:

    Совет.   Чтобы сделать текст более удобным для чтения, выберите Шрифт.

К началу страницы

Создание вычисляемого поля в запросе

Предположим, вы создаете запрос и хотите показать результаты расчета, в котором используются другие поля запроса. Чтобы создать вычисляемое поле, нужно ввести выражение в пустую ячейку в строке Поле запроса. Допустим, в вашем запросе есть поля Количество и Цена. Их значения требуется перемножить, чтобы получить вычисляемое поле Сумма. Для этого в строке Поле запроса введите следующее выражение:

Extended Price: [Quantity] * [Unit Price]

Поскольку выражение начинается с текста Extended Price:, новый столбец получит имя Extended Price. Это имя часто называется "псевдоним". Если псевдоним не указан, он будет создан автоматически, например такой: Expr1..

При выполнении запроса в Access выполняется расчет каждой строки, как показано ниже:

ПРОЦЕДУРА

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

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

  3. Чтобы создать выражение вручную, просто введите его.

    Не начинайте выражение условия с оператора = . В начале выражения должно стоять понятное название, за которым следует двоеточие. Например, введите Extended Price:, чтобы задать название в выражении, которое создает вычисляемое поле с именем Extended Price. После двоеточия введите условие для выражения.

  4. Чтобы использовать построитель выражений, на вкладке Конструктор в группе Настройка запроса нажмите кнопку Построитель.

К началу страницы

Создание вычисляемого поля в таблице

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

[Quantity]*([UnitPrice]+([UnitPrice]*[TaxRate]))

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

ПРОЦЕДУРА

  1. Откройте таблицу, дважды щелкнув ее в области навигации.

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

  3. В появившемся списке выберите пункт Вычисляемое поле и укажите тип данных результата. В Access откроется построитель выражений.

  4. Введите формулу вычисления, которую вы хотите использовать для этого поля, например:

    [Quantity] * [Unit Price]

    Выражения в вычисляемых полях не начинаются со знака равенства (=).

  5. Нажмите кнопку ОК.

    Приложение Access добавит вычисляемое поле и выделит его заголовок, чтобы можно было ввести имя поля.

  6. Введите имя вычисляемого поля и нажмите клавишу ВВОД.

К началу страницы

Задание значений по умолчанию для поля таблицы

С помощью выражения можно задать для поля таблицы значение по умолчанию, которое Access будет использовать для новых записей, если не предоставлено другое значение. Допустим, вы хотите автоматически вставлять дату и время в поле "Дата_заказа" при добавлении новой записи. Для этого можно использовать следующее выражение:

Now()

ПРОЦЕДУРА

  1. В области навигации дважды щелкните таблицу, которую нужно изменить.

    Таблица откроется в режиме таблицы.

  2. Выберите поле, которое требуется изменить.

  3. На вкладке Поля в группе Свойства нажмите кнопку Значение по умолчанию. В Access откроется построитель выражений.

  4. Введите выражение, начинающееся со знака равенства (=).

Примечание.    При связывании элемента управления с полем таблицы действует следующее правило: если для элемента управления и для поля заданы значения по умолчанию, значение по умолчанию элемента управления имеет приоритет.

К началу страницы

Задание значений по умолчанию для элементов управления

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

Date()

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

ПРОЦЕДУРА

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

  2. Выделите элемент управления, который необходимо изменить.

  3. Если окно свойств не отображается, нажмите клавишу F4.

  4. На вкладке Все окна свойств перейдите к ячейке свойства Значение по умолчанию.

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

К началу страницы

Добавление правила проверки в поле таблицы или запись

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

Предположим, что в таблице Inventory имеется поле Units On Hand и требуется задать условие, разрешающее пользователям вводить только неотрицательные значения. Иначе говоря, количество товара никогда не может быть отрицательным. Это можно сделать, указав для поля Units On Hand следующее правило проверки:

>=0

ПРОЦЕДУРА: ввод правила проверки для поля или записи

  1. В области навигации дважды щелкните нужную таблицу. Она откроется в режиме таблицы.

  2. Чтобы ввести правило проверки для поля, выберите нужное поле.

  3. На вкладке Поля в группе Проверка поля нажмите кнопку Проверка и выберите пункт Правило проверки поля или Правило проверки. В Access откроется построитель выражений.

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

    >=0

    Не начинайте выражение со знака равенства (=).

Выражения правил проверки являются логическими, т. е. их результатом может быть только значение True или False. Если значение не равно True, Access не сохраняет вводимые данные и выводит сообщение об ошибке. Если в этом примере ввести в поле Units On Hand отрицательное значение, правило проверки выдаст результат False и значение будет отклонено. Если вы не ввели сообщение о проверке, как описано в следующем разделе, Access выведет собственное сообщение о том, что значение запрещено.

ПРОЦЕДУРА: ввод сообщения проверки правильности

Чтобы сделать базу данных более удобной в использовании, можно задать собственные сообщения проверки правильности. Эти сообщения будут использоваться вместо стандартных сообщений, выводимых приложением Access, когда данные не соответствуют условию. В сообщение можно включить сведения, помогающие пользователю ввести правильные данные, например "Значение в поле Units On Hand не может быть отрицательным".

  1. В области навигации дважды щелкните таблицу, которую нужно изменить.

    Таблица откроется в режиме таблицы.

  2. При создании сообщения для условия на значение поля выделите соответствующее поле.

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

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

К началу страницы

Добавление правила проверки в элемент управления

Как и у полей таблицы и записей, у элементов управления есть свойство ValidationRule (Правило проверки), для которого можно создать выражение. Предположим, что используется форма ввода интервала дат для отчета и требуется, чтобы начальная дата была не раньше, чем 01.01.2017. В этом случае можно задать свойства ValidationRule и ValidationText (Сообщение об ошибке) для поля, в которое вводится начальная дата:

Свойство

Значение

Условие на значение

>=#01.01.2017#

Сообщение об ошибке

Невозможно ввести дату ранее 01.01.2017.

При попытке ввести дату раньше 01.01.2017 будет выведено сообщение с текстом, указанным в свойстве ValidationText. Если поле свойства ValidationText пусто, будет выведено стандартное сообщение. После нажатия кнопки ОК фокус ввода вернется в текстовое поле.

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

ПРОЦЕДУРА

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

  2. Щелкните правой кнопкой мыши элемент управления, который требуется изменить, и выберите пункт Свойства, чтобы отобразить окно свойств.

  3. На вкладке Все выберите ячейку свойства Validation Rule (Правило проверки).

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

    Не начинайте выражение с оператора =.

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

К началу страницы

Группировка и сортировка данных в отчетах

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

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

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

ПРОЦЕДУРА: добавление группировки и сортировки в отчет

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

  2. На вкладке Конструктор в группе Группировка и итоги нажмите кнопку Группировка. Ниже отчета появится область Группировка, сортировка и итоги.

  3. Чтобы добавить к отчету уровень группировки, нажмите Добавить группировку.

  4. Чтобы добавить к отчету порядок сортировки, нажмите Добавить сортировку.

    В области появится новый уровень группировки или порядок сортировки, а также список полей с данными для этого отчета. На приведенном ниже рисунке показан типичный новый уровень группировки (по полю "Категория") и порядок сортировки (по полю "Производитель"), а также список доступных полей для группировки и сортировки.

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

  6. Введите нужное выражение в поле выражения (верхнее поле) построителя выражений. Обязательно начните выражение с оператора равенства (=).

ПРОЦЕДУРА: добавление выражения в существующую группировку или сортировку

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

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

  3. Щелкните стрелку вниз рядом с пунктом Группировка (уровни группировки) или Сортировка (порядок сортировки). Появится список доступных полей

  4. В нижней части этого списка нажмите выражение, чтобы открыть построитель выражений.

  5. Введите выражение в поле выражения (верхнем поле) построителя выражений. Убедитесь, что выражение начинается с оператора равенства (=).

К началу страницы

Управление запуском макрокоманд

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

Например, пусть поле называется Items, тогда выражение для условия будет выглядеть следующим образом:

[Items]>=10

ПРОЦЕДУРА

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

  2. Перейдите к блоку Если, который требуется изменить, или добавьте блок Если из области "Каталог макрокоманд".

  3. Щелкните верхнюю строку блока Если.

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

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

К началу страницы

См. также

Работа с построителем выражений

Введение в использование выражений

Руководство по синтаксису выражений

Примеры выражений

support.office.com

MS Access Вставить вычисляемое поле в таблицу Поле

Если все поля находятся в одной таблице, таблицы доступа имеют рассчитанный тип данных, доступный в представлении дизайна таблицы, который будет обрабатывать это, довольно легко. Это будет ваш самый простой путь; просто используйте свое выражение в вычисленном поле, как показано на рисунке ниже. Обратите внимание, что расчетные поля имеют другие потенциальные ограничения в будущем, но я не стал бы слишком беспокоиться об этом. Имя вашего вычисленного поля будет CompletedLabel, и Access будет поддерживать его значение, основанное на других текущих значениях тока в выражении.

Если поля не в той же таблице, и форма связана и доступ обработке сохраняет (то есть форма имеет свойство RecordSource, и у вас есть доступ в обращении сохранения в записи, когда пользователь изменяет значение, они переходят к новой записи, закрывают форму и т. д.), вы можете добавить событие VBA BeforeUpdate, которое маркирует столбец непосредственно перед тем, как Access автоматически сохраняет поле.Просто добавьте поле CompletedLabel к форме (она может быть скрыта), а затем создать до события обновления:

Private Sub Form_BeforeUpdate(Cancel As Integer) Me!CompletedLabel = [Company] & " " & IIf([Cable]="Fiber","FO Cable","CC Cable") & " " & [CableStartPoint] & "-" & [CableEndPoint] End Sub

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

Вы можете сделать это с помощью SQL, как вы предлагаете, возможно, в событии After Update.

UPDATE tblCableDetails SET CompletedLabel=[Company] & " " & IIf([Cable]="Fiber","FO Cable","CC Cable") & " " & [CableStartPoint] & "-" & [CableEndPoint] WHERE CableDetailsID=Form!CableDetailsID.Value

Или с внешним запросом, когда форма открывается или закрывается, как:

UPDATE tblCableDetails SET CompletedLabel=[Company] & " " & IIf([Cable]="Fiber","FO Cable","CC Cable") & " " & [CableStartPoint] & "-" & [CableEndPoint] WHERE CompletedLabel = null Or Nz(CompletedLabel,"") = ""

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

Много возможностей. Удачи, тег!

stackoverrun.com

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

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

Вычисляемое полеможет содержать вызовы встроенных функций Access и следующие операторы: + – складывает два арифметических выражения. - – вычитает из первого арифметического выражения второе. * – перемножает два арифметических выражения. / – делит первое арифметическое выражение на второе. \ – округляет два арифметических выражения до целых значений и делит первое на второе.  Результат округляется до целого. ^ – возводит первое арифметическое выражение в степень, задаваемую вторым арифметическим выражением. MOD – округляет оба арифметических выражения до целых значений, делит первое на второе и возвращает остаток. & – создает текстовую строку как результат присоединения второй строки к концу первой. Если один из операндов является числом, то оно автоматически преобразуется в строку символов.

На рис. 7.7 показан пример вычисляемого поля для таблицы тАттестат. Вычисляемое полеСреднеевыводит средний балл по трем предметам:Русский,Математика,Физика.

Рис. 7.7. Запрос на основе таблицы тАттестат с вычисляемым полем Среднее

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

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

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

Итоговые функции Access:

Sum– вычисляет сумму всех значений заданного поля в каждой группе. Avg – вычисляет среднее арифметическое всех значений данного поля в каждой группе. Min –возвращает наименьшее значение, найденное в этом поле внутри каждой группы. Max– возвращает наибольшее значение, найденное в этом поле внутри каждой группы. Count– возвращает число записей, в которых значения данного поля отличны от Null. StDev– стандартное отклонение всех значений данного поля в каждой группе. Var–вычисляет дисперсию значений данного поля в каждой группе. First – возвращает первое значение этого поля в группе. Last– возвращает последнее значение этого поля в группе.

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

Рис. 7.8. Запрос с применением групповой операции Sum

studfiles.net

Вычисленное поле со значением из другой таблицы в Microsoft Access

Я не 100% уверен, что вы после этого, но я подумал, что было бы лучше, чтобы показать вам, как связать Сначала две таблицы в запросе.

Перейти Создать> Конструктор запросов:

Добавить оба ваши таблицы (дважды щелкните их):

Затем закройте окно Показать таблицу; Теперь вы должны иметь свои таблицы в конструкторе запросов:

Нажмите и перетащите Stato в типо; это должно создать соединение между этими полями:

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

В следующий доступный поле для запроса, щелкните правой кнопкой мыши в поле «Field» и выберите «Масштаб»:

Поместите свой IIF заявление там; перед ним с именем поля и двоеточием, как это, например:

... Обратите внимание, что я убирала ваш IFF заявление немного, так что теперь гласит:

MyCalculatedField: IIf([Stato]="Vendita",[Costo ivato 1 pezzo]+(([Costo ivato 1 pezzo]/100)*[Costo]),[Costo ivato 1 pezzo]+(([Costo ivato 1 pezzo]/100)*[Costo]))

Нажмите «ОК» в окне «Масштаб». Нажмите кнопку «Выполнить», чтобы увидеть результат вашего запроса:

Вот что результаты запроса в (проверить вычисленное поле является то, что вы ожидаете, что это будет):

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

...и назвать это что-то:

Вы можете перейти к Создать> Дизайн формы:

В панели свойств на правой стороне, идите в «Data» Закладка и использовать раскрывающийся рядом с Record Source, чтобы выбрать запрос, который вы только что сохранили:

Если вы идете в дизайн> Добавить существующие поля, вы должны быть в состоянии принести в поле из запроса для использования в вашей форме (Дважды щелкните или перетащите их, чтобы появиться на вашей форме):

Надеюсь, это поможет!

stackoverrun.com



О сайте

Онлайн-журнал "Автобайки" - первое на постсоветском пространстве издание, призванное осветить проблемы радовых автолюбителей с привлечение экспертов в области автомобилестроения, автоюристов, автомехаников. Вопросы и пожелания о работе сайта принимаются по адресу: Онлайн-журнал "Автобайки"