Foreversoft.ru

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

Ms access построитель выражений

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

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

В этой статье

Начнем с начала — как его найти?

Хотя построитель выражений доступен в разных местах приложения Access, наиболее верным способом его отображения является переход к окну свойств, содержащему выражение, например Данные или Значение по умолчанию и щелкните Построитель выражений или нажмите клавиши CTRL+F2.

В макросе щелкните значок .

Совет Если в меню есть слово выражение, можно щелкнуть его, чтобы открыть построитель выражений.

Проверьте возможность в действии

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

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

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

Технология IntelliSense и советы

1 IntelliSense (Access 2010 или более поздняя версия) отображает возможные функции и другие идентификаторы по мере ввода выражения.

По мере ввода идентификатора или имени функции IntelliSense отображает раскрывающийся список возможных значений. Вы можете продолжать ввод или дважды щелкнуть правильное значение в списке, чтобы добавить его в выражение. Кроме того, можно использовать клавиши со стрелками вверх и вниз, чтобы выбрать нужное значение, а затем нажать клавишу TAB или ВВОД, чтобы добавить его в выражение. Например, если вы начнете вводить слово «Формат», в списке IntelliSense появятся все функции, имена которых начинаются со строки «Формат».

Совет Чтобы скрыть раскрывающийся список IntelliSense, нажмите клавишу ESC. Чтобы снова отобразить его, нажмите клавиши CTRL+ПРОБЕЛ.

2 Совет — это краткое описание выбранного элемента.

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

Краткие сведения и справка

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

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

2 Необязательные аргументы заключены в квадратные скобки ( [] ). Аргумент, который вы вводите в данный момент, отображается полужирным шрифтом. Не путайте квадратные скобки, указывающие на необязательность аргумента, с квадратными скобками, в которые заключаются идентификаторы в фактическом выражении.

Использование расширенного построителя выражений

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

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

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

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

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

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

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

Список Категории выражений содержит определенные элементы или категории элементов, соответствующие вашему выбору в списке Элементы выражений. Например, если в списке Элементы выражений выбран пункт Встроенные функции, в списке Категории выражений отображаются категории функций.

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

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

6 Чтобы просмотреть справку и сведения о выбранном значении выражения, щелкните ссылку (если она отображается).

Пошаговый пример

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

Щелкните элементы в списке Элементы выражений, например Функции, и выберите Встроенные функции.

Щелкните категорию в списке Категории выражений, например Управление.

Дважды щелкните элемент в списке Значения выражений, например IIf, чтобы добавить его в поле построителя выражений:

Читать еще:  База данных субд 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 не указан, то возвращает все символы до конца строки начиная с позиции нач_поз аргумента текст.

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

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

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

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

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

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

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

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

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

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

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

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

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

Читать еще:  Access макрос данных

Для подведения итогов необходимо заменить установку Группировка на конкретную итоговую функцию. В СУБД 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

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

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

· Задать значение по умолчанию для поля таблицы или элемента управления в форме или отчете. Значения по умолчанию отображаются при открытии таблицы, формы или отчета.

· Задать условие на значение. Условия на значение контролируют значения, которые могут быть введены в поле или элемент управления.

· Задать условие отбора в запросе.

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

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

Идентификаторы — это имена объектов в Access (например, полей таблиц или запросов), которые при вычислении выражений заменяются их текущими значениями (для определения этой операции обычно используется термин возвращают). Например, идентификатор имени поля [Household Inventory] в выражении возвращает значение поля Household Inventory из текущей выделенной записи. Именованные константы и переменные, применяемые в программах Visual Basic для приложений (VBA), тоже являются идентификаторами. Существует несколько встроенных именованных констант, служащих идентификаторами: True, False, Yes, No, Null.

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

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

Операторы — обычные значки арифметических операций (+, -, *, /) и другие символы и аббревиатуры. Большинство из них эквивалентны операторам традиционных языков программирования типа Basic. Некоторые — специфичны для Access или SQL, например Between или Like. Используемые в операции константы, идентификаторы и функции называются операндами.

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

Таблица 5. Арифметические операторы

ОператорПримерОписание
+[Итог] + [Надбавка]Складывает два операнда
Date () — 7Считает разность двух операндов
— (унарный)-12345Меняет знак операнда
*[Коробок] * [Цена коробки]Перемножает два операнда
/[Количество] / 12.55Делит один операнд на другой
Делит один целый операнд на другой нацело. При использовании деления нацело операнды с десятичными дробями округляются до целого, а дробные части отбрасываются[Коробок] 2
Mod[Коробок] Mod 12Возвращает остаток от деления нацело. Например, 15 Mod 12 равно 3
^Возводит операнд Основание в степень Показатель^ [Показатель]

Таблица 6. Операторы сравнения

ОператорПримерРезультатОписание
=100 >= 1TrueБольше либо равно
>100 > 100FalseБольше
<>1 <> 100TrueНеравно

Логические (булевы) операторы используются для объединения результатов двух или более выражений сравнения в единое целое:

And — конъюнкции (логического И);

Or — дизъюнкции (логического ИЛИ);

Not — логического отрицания;

Хог — исключающего ИЛИ;

Eqv — логической эквивалентности;

Imp — логической импликации.

Они могут состоять только из выражений, возвращающих логические значения True, False или Null.

Таблица 7. Зависимость значения логических операторов от значения операндов

A=True B=FalseA=True B=TrueA=False B=FalseA=False B=True
A And ВFalseTrueFalseFalse
A Or ВTrueTrueFalseTrue
Not AFalseFalseTrueTrue
А Хог ВTrueFalseFalseTrue
A Eqv ВFalseTrueTrueFalse
A Imp ВFalseTrueTrueTrue
Читать еще:  Создание запроса на выборку в access

Операторы слияния строковых значений (конкатенации)

Стандартный значок оператора конкатенации SQL, амперсант (&), является более предпочтительным, чем значок плюса (+), хотя оба они приводят к одинаковому результату: объединению двух текстовых значений в единую строку символов. Применение значка плюс (+) двусмысленно, его основное назначение — сложение двух числовых операндов.

Пример: слияние «Visual » & «Basic» дает «Visual Basic». Обратите внимание на дополнительный пробел в первом слове, без него результат выглядел бы несколько иначе: «VisualBasic».

Операторы сравнения с образцом

Таблица 8. Операторы сравнения с образцом

ОператорПримерОписание
BetweenBetween (-100) And (100)Определяет, находится ли числовое значение в определенном диапазоне значений
IsIs Null Is Not NullПри использовании вместе с Null определяет, является ли значение Null или Not Null
InIn («Москва», «Киев», «Санкт-Петербург»)Определяет, является ли строковое значение элементом списка значений
LikeLike «Ив*» Like «db??»Определяет, начинается ли строковое значение с указанных символов (для правильной работы Like нужно добавить символ шаблона «*» или один или несколько символов «?»)

Символ «*» замещает любое число знаков, а символ шаблона «?» замещает только один знак, поэтому Like «Ив*» вернет True для значений «Иванов», «Иващенко», «Иволгин». Для «dbl» или «dbl00» значение оператора Like «db??» будет False, но тот же оператор вернет для «dbl0» и «dbXX» значение True. Символы шаблона «*» и «?» могут стоять в любом месте шаблонной строки.

Вопросы для самоконтроля:

1. Когда в Access используются выражения?

2. Что такое константы?

3. Что такое идентификаторы?

4 Что такое операторы?

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

Дата добавления: 2014-11-06 ; Просмотров: 4805 ; Нарушение авторских прав?

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

построитель выражений — значение записи при определенных условиях

Привет, Камрады!
Подскажите, а то не могу сообразить никак!
Есть поля «USD курс», » EUR курс», «USD», «EUR» и вычисляемое «Цена».
Как построить выражение в поле «Цена», что бы при заполнении значений в «USD» или «EUR» автоматически подставлялось значение «USD курс»*»USD» или «EUR курс»*»EUR» в зависимости от того, какое из полей «USD» или «EUR» заполнено.

Это даже объяснить-то по-человечески сложно!

13.01.2012, 13:09

Изменить в таблице значение при определенных условиях!
Здравствуйте! У меня есть таблица пользователей. У каждого пользователя есть свой ранг: first.

Excel: Combobox при определённых условиях показывает лишь первое значение
На листе висят две формы. В форме А есть комбобокс. Если я активирую форму Б и сразу после этого.

Как написать макрос, чтобы при определенных условиях в ячейке С прибавлялось значение 1
Как написать макрос, чтобы при определенных условиях (к примеру А=В) в ячейке, например, С к.

Срабатывание события при определенных условиях
Нужно написать программу в которой реализируется логика движения автомобиля. В 20 часов ( if (j ==.

13.01.2012, 13:212

Наверное проще пример приложить..(с)

13.01.2012, 13:593

Привет, Камрады!
Подскажите, а то не могу сообразить никак!
Есть поля «USD курс», » EUR курс», «USD», «EUR» и вычисляемое «Цена».
Как построить выражение в поле «Цена», что бы при заполнении значений в «USD» или «EUR» автоматически подставлялось значение «USD курс»*»USD» или «EUR курс»*»EUR» в зависимости от того, какое из полей «USD» или «EUR» заполнено.

Это даже объяснить-то по-человечески сложно!

Но учтите, что если будут заполнены оба поля ([USD] и [EUR]), то значение в поле [EUR] будет проигнорировано.

Добавлено через 3 минуты
С такой

13.01.2012, 18:10 [ТС]4

Ошибка:
Введенное выражение содержит ошибочные операторы «.» (точка), «!» или скобки.
Задан ошибочный идентификатор, или добавлены скобки после константы Null.

Добавлено через 3 часа 48 минут
Спасибо разобрался!
Какая-то беда с подстановкой. Поля USD_kurs и EUR_kurs были подстановочными из таблицы kurs.
Почему-то при просчете формулы они не учитываются, просто добавил такие же поля без связи и немного изменил формулу (добавились рубли)

13.01.2012, 23:48514.01.2012, 00:01 [ТС]614.01.2012, 02:227

Странно.
Но если всё решилось, то и бог с ним.

З.Ы. В приложении тестовая база

Вложения

Database1.zip (18.2 Кб, 50 просмотров)
15.01.2012, 05:378

О, опять. И где там граждане, которые пытались убедить меня в обратном?

15.01.2012, 08:389

Возможно вы использовали не «хранимое» значение, а то что видит пользователь в поле таблицы (далее Таб_1). Это частая ошибка. В таком случае действительно ничего не получится. Нужно использовать именно индекс записи из другой таблицы (далее Таб_2), сохранённый в подстановочном поле.
Если же очень хочется использовать (например в условии отбора) то значение, которое отображается, то:
1) в конструктор запроса нужно вытягивать Таб_2, из которой берутся подстановочные данные.
2) в список полей запроса вытягивать то поле из Таб_2, из которого подставляются данные
3) уже в условии этого поля писать условия на выборку.


Но это только в том случае, если «очень печёт».

Я бы крайне не рекомендовал так поступать.
Что будет с вашим запросом, если будет изменена запись в Таб_2? Например если исправить одну букву в фамилии (если отбор был по фамилии). У вас запрос не будет выдавать ожидаемый результат.

О, опять. И где там граждане, которые пытались убедить меня в обратном?

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