Можно ли использовать формулы в access
Содержание статьи
Вычисляемые поля в запросах Access
В этой статье речь поговорим про вычисляемые поля в запросах Access. В запросе, как и в таблице, для каждой записи могут производиться вычисления с числовыми, строковыми значениями или значениями дат с использованием данных из одного или нескольких полей. Результат вычисления образует в таблице запроса новое вычисляемое поле. В отличие от вычисляемых полей таблицы, вычисляемые поля запроса в исходных таблицах базы данных новых полей не создают. При каждом выполнении запроса производятся вычисления на основе текущих значений полей.
В выражениях вычисляемых полей помимо имен полей могут использоваться константы и функции. В результате обработки выражения может получаться только одно значение.
Задача 1. В таблице ТОВАР имеются поля ЦЕНА и СТАВКА_НДС, вычислите цену с учетом НДС и сравните ее с полученной в вычисляемом поле таблицы Цена с НДС.
- Создайте в режиме конструктора запрос на выборку для таблицы ТОВАР. Перетащите в бланк запроса поля НАИМ_ТОВ, ЦЕНА, СТАВКА_НДС и Цена с НДС (рис. 4.6).
- Для подсчета цены с учетом НДС создайте вычисляемое поле, записав в пустой ячейке строки Поле (Field) выражение [ЦЕНА]+[ЦЕНА]*[СТАВКА_НДС].
- Для отбора записей со значением выше 5000 в вычисляемом поле в строку Условие отбора (Criteria) введите > 5000
- После ввода выражения система по умолчанию формирует имя вычисляемого поля Выражение 1, которое становится заголовком столбца в таблице с результатами выполнения запроса. Это имя вставится перед выражением [ЦЕНА]+[ЦЕНА]*[СТАВКА_НДС]. Для каждого нового вычисляемого поля в запросе номер выражения увеличивается на единицу. Имя вычисляемого поля отделяется от выражения двоеточием. Для изменения имени установите курсор мыши в вычисляемом поле бланка запроса и нажмите правую кнопку мыши. В контекстно-зависимом меню выберите Свойства (Properties) поля и в строку Подпись (Caption) введите новое имя поля ― Цена с НДС1. Теперь в таблице с результатами выполнения запроса в заголовке вычисляемого столбца отобразится это имя. Имя поля может быть исправлено также непосредственно в бланке запроса.
- Для отображения результата выполнения запроса щелкните на кнопке Выполнить (Run) в группе Результаты (Results). Вычисляемое поле таблицы и за-проса имеют одинаковые значения.
- Измените в одной из записей запроса цену товара. Значения в обоих вычисляемых полях будут моментально пересчитаны.
- Для формирования сложного выражения в вычисляемом поле или условии отбора целесообразно использовать построитель выражений. Построитель позволяет выбрать необходимые в выражении имена полей из таблиц, запросов, знаки операций, функции. Удалите выражение в вычисляемом поле и используйте построитель для его формирования.
- Вызовите построитель выражений (Expression Builder), нажав кнопку Построитель (Builder) в группе Настройка запроса (Query Setup) ленты Конструктор (Design), или выбрав Построить (Build) в контекстно-зависимом меню. Курсор мыши должен быть установлен предварительно в ячейке ввода выражения.
- В левой части окна Построитель выражений (Expression Builder) (рис. 4.7) выберите таблицу ТОВАР, на которой построен запрос. Справа отобразится список ее полей. Последовательно выбирайте нужные поля и операторы, двойным щелчком вставляя в выражение. Выражение сформируется в верхней части окна. Обратите внимание, построитель перед именем поля указал имя таблицы, которой оно принадлежит, и отделил его от имени поля восклицательным знаком.
- Завершите процесс построения выражения в вычисляемом поле, щелкнув на кнопке ОК.
- Сохраните запрос под именем ― Цена с НДС и закройте его.
- Выполните сохраненный запрос, выделив его в области навигации и выбрав в контекстном меню команду Открыть (Open).
Задача 2. В вычисляемых полях и условиях отбора можно использовать встроенные функции. В Access определено более 150 функций.
Пусть необходимо выбрать все накладные, по которым производилась отгрузка в заданном месяце. В таблице НАКЛАДНАЯ дата отгрузки хранится в поле ДАТА_ОТГ с типом данных Дата/время (Date/Time).
- Создайте в режиме конструктора запрос на выборку для таблицы НАКЛАДНАЯ. Перетащите в бланк запроса поля НОМ_НАКЛ и КОД_СК (рис. 4.8).
- Создайте вычисляемое поле в пустой ячейке строки Поле (Field), записав туда одно из выражений: Format([НАКЛАДНАЯ]![ДАТА_ОТГР];»mmmm») ― эта функция возвратит пол-ное название месяца
или Format([НАКЛАДНАЯ]![ДАТА_ОТГР];»mm») ― эта функция возвратит номер месяца. - Для отбора накладных, выписанных в заданном месяце, в вычисляемом поле в строку Условие отбора (Criteria) введите название месяца, например март (рис. 4.8), или номер месяца, например 3 в соответствии с параметром в функции Format.
- Выполните запрос, нажав кнопку Выполнить (Run) в группе Результаты (Results) на вкладке ленты Работа с запросами | Конструктор (Query Tools | Design).
- Запишите в вычисляемом поле функцию Month(НАКЛАДНАЯ!ДАТА_ОТГ), и убедитесь, что эта функция возвращает выделенный из даты номер месяца.
- Для выборки всех строк, относящихся ко второму кварталу, в строку Условие отбора (Criteria) введите оператор Between 4 And 6, определяющий, попадает ли значение выражения в указанный интервал.
- Запишите в вычисляемом поле выражение MonthName(Month(НАКЛАДНАЯ!ДАТА_ОТГ)) и убедитесь, что функция MonthName преобразует номер месяца в его полное на-звание.
Для закрепления смотрим видеоурок:
Параметрический запрос Access тут.
Источник
Введение в использование выражений
Выражения в Microsoft Access можно применять для решения широкого круга задач (например, для математических вычислений, объединения и извлечения текста или проверки данных). В этой статье приведены основные сведения о выражениях, в том числе инструкции по их использованию, сравнение с формулами Microsoft Excel, а также описание их компонентов.
В этом разделе…
Общие сведения о выражениях
Способы использования выражений
Примеры выражений
Компоненты выражений
Сравнение выражений Access и формул Excel
Общие сведения о выражениях
Это можно представить себе следующим образом: если вы хотите, чтобы приложение Access сделало что-то, вам нужно обратиться к нему на его языке. Предположим, что вы хотите попросить Access проверить поле BirthDate в таблице Customers и сообщить год рождения заказчика. Вы можете записать эту просьбу в виде такого выражения:
DatePart(«yyyy»,[Customers]![BirthDate])
Это выражение содержит функцию DatePart и два аргумента: «yyyy» и [Customers]![BirthDate].
Рассмотрим его более подробно.
1. DatePart — это функция, которая проверяет даты и возвращает определенный фрагмент. В этом случае используются первые два аргумента.
2. Аргумент интервала сообщает Access, какую часть даты нужно вернуть. В данном случае значение «yyyy» указывает на то, что требуется вернуть только год.
3. Аргумент даты говорит о том, где искать значение даты. В данном случае значение [Customers]![BirthDate] указывает, что дата находится в поле BirthDate таблицы Customers.
Способы использования выражений
С помощью выражений можно делать следующее:
Вычислять значения, которые отсутствуют в данных. Можно вычислять значения в полях таблиц и запросов и в элементах управления форм и отчетов.
Присваивать значения по умолчанию полям таблиц или элементам управления в формах и отчетах. Эти значения по умолчанию отображаются при каждом открытии таблицы, формы или отчета.
Создавать правила проверки, чтобы определять значения, которые пользователь может вводить в поле или элемент управления.
Определять условия запроса для ограничения результатов нужным подмножеством.
Вычисление значений
Один из наиболее распространенных способов использования выражений в Access — вычисление значений, которые присутствуют непосредственно в данных. Столбец в таблице или запросе, в котором сохраняются результаты таких вычислений, называется вычисляемым полем. Вы можете создать вычисляемое поле, в котором объединяются данные из двух или нескольких полей таблицы. Например, имена и фамилии часто хранятся в разных полях. Если вы хотите объединить имена и фамилии, а затем отобразить их в одном поле, можно создать вычисляемое поле в таблице или запросе:
[FirstName] & » » & [LastName].
Здесь амперсанд (&) используется для объединения значения в
поле FirstName, символа пробела (он заключен в кавычки) и значения в
поле LastName.
Определение значения по умолчанию
В Microsoft Access с помощью выражений можно установить значения по умолчанию для поля в таблице или элемента управления. Например, чтобы по умолчанию задать для поля даты текущую дату, в поле свойства DefaultValue (Значение по умолчанию) необходимо ввести такое выражение:
Date()
Создание правила проверки
Кроме того, выражения можно использовать для настройки правила проверки. Например, правило проверки можно использовать в элементе управления или поле таблицы, чтобы требовать ввода даты, которая не предшествует текущей. В этом случае в поле свойства ValidationRule (Правило проверки) нужно ввести выражение:
>= Date()
Определение условий запроса
Наконец, выражения можно использовать для определения условий запросов. Предположим, что необходимо получить данные о продажах для заказов, поставленных в определенный период времени. Можно ввести условия для определения диапазона данных, а Microsoft Access вернет только те строки, которые соответствуют им. Например, выражение может выглядеть следующим образом:
Between #1/1/2017# And #12/31/2017#
При добавлении условий в запрос и выполнении этого запроса возвращаются только те значения, которые соответствуют указанным датам.
Примеры выражений
В приведенной ниже таблице представлены некоторые примеры выражений Access и типичные способы их использования.
Выражение | Назначение |
---|---|
=[RequiredDate]-[ShippedDate] | Вычисляет разницу между значениями дат в двух текстовых полях (RequiredDate и ShippedDate) отчета. |
Date() | Устанавливает текущую дату в качестве значения по умолчанию для поля даты и времени в таблице. |
Between #1/1/2017# And #12/31/2017# | Определяет условия для поля даты и времени в запросе. |
=[Orders Subform].Form!OrderSubtotal | Возвращает значение элемента управления OrderSubtotal подчиненной формы Orders в форме Orders. |
>0 | Задает правило проверки для числового поля таблицы: пользователи должны вводить значения больше нуля. |
Одни выражения начинаются с оператора равенства (=), а другие — нет. При вычислении значения для элемента управления в форме или отчете в начале выражения указывается оператор =. В других случаях, например при вводе выражения в запрос или в свойство
DefaultValue или ValidationRule поля или элемента управления
оператор = использовать не нужно, если только выражение не добавляется в текстовое поле таблицы. В некоторых случаях, например при добавлении выражений в запросы, Access автоматически удаляет оператор =.
Компоненты выражений
Выражение представляет собой набор компонентов, используемых по одному или в сочетании друг с другом, который дает определенный результат. Вот эти компоненты:
идентификаторы — имена полей таблицы или элементов управления в форме или отчете либо свойства этих полей или элементов управления;
операторы , например + (плюс) или — (минус);
функции , например SUM или AVG;
константы — постоянные значения, например текстовые строки или числа, не вычисляемые выражением;
значения — строки, например «Введите число от 1 до 10», или числа, такие как 1254, которые используются в операциях.
Эти компоненты описаны более подробно в разделах ниже.
Идентификаторы
Идентификатор — это имя поля, свойства или элемента управления. Идентификаторы используются в выражении для ссылки на значение, связанное с полем, свойством или элементом управления. Например, рассмотрим выражение =[RequiredDate]-[ShippedDate]. В этом выражении значение поля или элемента управления ShippedDate вычитается из значения поля или элемента управления RequiredDate. В этом выражении как RequiredDate, так и
ShippedDate являются идентификаторами.
Операторы
Access поддерживает большое количество операторов, в том числе стандартные арифметические операторы, такие как +, -, * (умножение) и / (деление). Также можно использовать операторы сравнения, например
< (меньше) или > (больше), для сравнения значений; текстовые операторы, например
& и +, для сцепления (объединения) текста; логические операторы, например
Not и And, для определения значений True и False, а также специальные операторы Access.
Функции
Функции — это встроенные процедуры, которые можно использовать в выражениях. Функции можно применять для широкого ряда операций, например для вычисления значений, работы с текстом и датами, а также для подведения итогов. Например, одной из распространенных функций является DATE, которая возвращает текущую дату. Функцию DATE можно использовать различными способами (например, в выражении, которое задает значение по умолчанию для поля или таблицы). В данном примере при добавлении новой записи в качестве значения для поля по умолчанию устанавливается текущая дата.
Для некоторых функций требуются аргументы. Аргумент — это значение, которое передает функции входные параметры. Если функции требуется несколько аргументов, они разделяются точкой с запятой. Например, рассмотрим функцию DATE в следующем примере выражения:
=Format(Date(),»mmmm d, yyyy»)
В этом примере используются два аргумента:
Первый аргумент — функция Date(), которая возвращает текущую дату. Даже если аргументов нет, после имени функции необходимо ввести скобки.
Второй аргумент — «mmmm d, yyyy». Он отделен от первого аргумента точкой с запятой и задает текстовую строку, чтобы указать функции FORMAT, как отформатировать возвращаемое значение даты. Обратите внимание: текстовую строку необходимо заключить в кавычки.
Это пример также иллюстрирует вложение функций: результат, возвращенный одной функцией, часто служит аргументом другой функции. В этом случае
Date() выступает в качестве аргумента.
Константы
Константа — это элемент, значение которого не изменяется во время работы Access. В выражениях часто используются константы True, False и Null.
Значения
В выражениях можно использовать значения-литералы, такие как число 1254 или строка «Введите число от 1 до 10». Вы также можете использовать числовые значения, представляющие собой последовательность цифр и при необходимости содержащие знак и десятичный разделитель.
При использовании текстовых строк заключайте их в кавычки, чтобы они правильно интерпретировались в Access. В некоторых ситуациях Access вводит кавычки за пользователя. Например, при вводе текста в выражение для правила проверки или условий запроса Access автоматически заключает текстовые строки в кавычки.
При использовании значений даты и времени помещайте их между знаками решетки (#). Например, #3-7-17#, #7-Mar-17# и #Mar-7-2017# — допустимые значения даты и времени. Когда приложение Access встречает допустимое значение даты и времени, заключенное в символы #, значение автоматически обрабатывается как имеющее тип даты и времени.
К началу страницы
Сравнение выражений Access и формул Excel
Выражения Access напоминают формулы Excel, так как для получения результатов в них используются похожие элементы. И в формулах Excel, и в выражениях Access содержатся некоторые или все из указанных ниже элементов.
Идентификаторы. В Excel идентификаторы — это имена отдельных ячеек или диапазонов ячеек в книге (например,
A1, B3:C6 или Лист2!C32. В Access идентификаторы — это имена полей таблиц (например, [Contacts]![First Name]), элементов управления в формах и отчетах (например, Forms![Task List]![Description]) или свойства этих полей или элементов управления (например,
Forms![Task List]![Description].ColumnWidth).Операторы. Как в Access, так и в Excel операторы используются для сравнения данных или выполнения простых вычислений с ними. В качестве примеров можно привести операторы + (плюс) и — (минус).
Функции. Как в Access, так и в Excel функции и аргументы используются для выполнения задач, которые невозможно выполнить с помощью одних только операторов. Например, можно найти среднее для значений в поле или преобразовать результаты вычислений в формат денежной единицы. Примерами функций могут служить SUM и STDEV (в Excel — СУМ и СТАНДОТКЛОН). Аргументы — это значения, используемые для передачи данных функциям. И в Access, и в Excel есть много функций, но имена схожих функций в этих приложениях различаются. Например, функция СРЗНАЧ в Excel соответствует функции AVG в Access.
Константы. И в Access, и в Excel константы — это значения, которые не изменяются (например, числа, не вычисляемые с помощью выражений).
Значения. Значения используются в Access и Excel одинаково.
В выражениях Access используются такие же операторы и константы, как и в формулах Excel, но другие идентификаторы и функции. В то время как формулы Excel, как правило, используется только в ячейках листа, выражения Access используются во многих частях приложения для решения широкого круга задач, включая следующие:
создание вычисляемых элементов управления в формах и отчетах;
создание вычисляемых полей в таблицах и запросах;
составление условий в запросах;
проверка данных, вводимых в поле, элемент управления или форму;
группировка данных в отчетах.
Выражения Access и формулы Excel можно использовать для вычисления числовых значений или значений даты и времени с помощью математических операторов. Например, для вычисления цены со скидкой для клиента можно использовать формулу Excel =C2*(1-D2) или выражение Access = [Unit Price]*(1-[Discount]).
Выражение Access или формулу Excel можно использовать для объединения, разбиения или другой обработки строк с помощью строковых операторов. Например, для объединения имени и фамилии в одну строку можно использовать формулу Excel =D3 &» » & D4 или выражение Access = [First Name] & » » & [Last Name].
К началу страницы
Источник