Как сделать вычисляемое поле в таблице access 2007?

Как сделать вычисляемое поле в таблице access 2007?

На этом шаге будет рассмотрено создание вычисляемых полей.

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

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

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


Рис. 1. Построитель выражений

С ее помощью можно выполнять различные вычисления с использованием данных, находящихся в БД — полей таблиц, запросов, форм и отчетов. Все перечисленные объекты БД находятся, соответственно, в папках Таблицы, Запросы, Forms и Reports в левой части Построителя.

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

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

Также существует возможность использования в выражении различных функций Access. Для этого в левой части окна необходимо открыть папку Функции и выбрать пункт Встроенные функции. Затем следует в средней части Построителя определить категорию, в которой находится требуемая функция, и выбрать после этого в правой части окна название искомой функций (рис. 2, 3). Создаваемое таким образом выражение отображается в верхней части окна Построителя выражений.


Рис. 2. Построитель выражений. Встроенные функции


Рис. 3. Построитель выражений. Текстовая функция Left

Например, необходимо в запросе ПреподавателиПредметы вместо поля Фамилия добавитъ вычисляемое поле, в котором содержались бы фамилия и инициалы преподавателя.

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

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

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

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

Фамилия & Символ Пробела & Инициал имени & Символ точки & Инициал отчества & Символ точки.

Все текстовые символы указываются в двойных кавычках, поэтому структура выражения примет такой вид:

Фамилия & » » & Инициал имени & «.» & Инициал отчества & «.».

Таким образом, начало выражения будет следующим:

Фамилия & » » &

Для работы с текстовыми значениями используются функции категории Текстовые. Чтобы получить инициал имени, необходимо воспользоваться одной из функций данной категории, а именно — функцией Lеft, которая возвращает первые n символов указанной строки.

Чтобы добавить функцию в выражение, необходимо дважды щелкнуть на папке Функции и выбрать после этого раздел Встроенные функции (рис. 2).

Читать еще:  Как в access сделать автоматическое заполнение поля из другой таблицы?

Затем во втором столбце необходимо выбрать требуемую категорию, в данном случае Текстовые, и после этого в третьем столбце выбрать нужную функцию, т.е. Left (рис. 3).

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

Left («stringexpr»; «n») ,

в котором необходимо указать значения требуемых параметров. В частности, вместо stringexpr нужно указать поле Имя, а вместо n — количество символов, которые необходимо получить из строки, т.е. 1. Таким образом, текущее выражение примет вид:

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


Рис. 4. Построитель выражений. Поле Имя таблицы Преподаватели

Таким образом, название поля с указанием имени таблицы необходимо отображать в следующем формате:

[Имя таблщы] ! [Название поля]

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

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

Названия полей запроса формируются автоматически. Для полей таблиц названия совпадают с названиями соответствующих полей запроса (например, поле Название). С другой стороны, названия вычисляемых полей формируются автоматически; Выражение1, Выражение2 и т. д. Очевидно, что такие названия не являются информативными.

Чтобы установить подпись для поля в таблице или запросе, необходимо в режиме конструктора установить курсор в требуемое поле (в частности, в поле Выражение1) и нажать кнопку Свойства . После этого в диалоговом окне Свойства поля можно на вкладке Общие указать в строке Подпись то название поля, которое будет использоваться вместо исходного в режиме редактирования запроса (или таблицы), а также в формах и отчетах. В частности, для вычисляемого поля Выражение1 можно указать подпись ФИО (рис. 5).


Рис. 5. Диалоговое окно Свойства поля

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


Рис. 6. Запрос на выборку с вычисляемым полем ФИО

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

На следующем шаге вы узнаете о групповых операциях, которые можно использовать при создании запроса.

Предыдущий шаг Содержание Следующий шаг

Сложные запросы

С помощью сложных запросов можно выполнить следующее.

• Представить данные из нескольких связанных таблиц в виде одной.

• Выбрать данные по заданному пользователем условию.

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

• Отобрать некоторые записи из таблиц с помощью какого-либо условия.

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

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

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

Читать еще:  Как сделать запрос на добавление в access?

Теперь создайте запрос с вычисляемым полем.

1. Откройте желаемую базу данных Microsoft Access 2007 ( Отдел продаж ).

2. Перейдя на вкладку Создание в группе Другие, нажмите кнопку Конструктор запросов . Будет создан новый запрос, и на экране вы увидите окно Добавление таблицы (см. рис. 5.7).

3. Перейдите на вкладку Таблицы и выберите нужную таблицу (например, Клиенты ). Затем нажмите кнопку Добавить , а после этого – кнопку Закрыть . Пустой бланк запроса отобразится на экране.

4. Чтобы создать вычисляемое поле с названием Данные , нажмите на ячейке Поле в столбце бланка запроса и введите следующее: Данные: [Телефон]+” “+[Адрес].

5. Если вы установите флажок Вывод на экран в столбце бланка запроса, то в результате отобразится данное поле запроса.

6. Вы также можете установить сортировку, щелкнув кнопкой мыши на параметре Сортировка в столбце бланка запроса и выбрав вариант По возрастанию в раскрывающемся списке. Измененный бланк запроса будет таким, как показано на рис. 5.17.

Рис. 5.17. Готовый бланк запроса

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

8. В поле Имя запроса вы можете ввести название нового запроса. Затем нажмите кнопку ОК .

9. Перейдите на вкладку Конструктор , а затем нажмите кнопку Выполнить . После этого вы можете увидеть результат измененного запроса (рис. 5.18).

Рис. 5.18. Результат измененного запроса

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

Внутреннее соединение таблиц

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

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

Access 2007 может автоматически создавать эквисоединения при наличии двух условий:

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

– данное соединение было задано пользователем в окне Схема данных .

• Внешнее соединение – соединение, использующееся для создания запроса, который объединяет все записи из одной таблицы и записи из другой таблицы (но только те, в которых связанные поля совпадают).

• Соединение по отношению – тета-соединение необходимо использовать в том случае, если вы хотите связать данные любым отношением. Причем такое соединение не выводится в окне Конструктора и в окне Схемы данных .

• Рекурсивное соединение – еще один вид соединения для совмещения данных в одной таблице. Создается при добавлении в запрос копии таблицы, поля похожих таблиц связываются.

В Microsoft Access 2007 используются некоторые слова языка SQL:

• INNER JOIN – для указаний внутренних соединений;

• LEFT JOIN или RIGHT JOIN – для указания внешних соединений;

• WHERE поле1=поле2 – внутреннее соединение;

• WHERE поле1>поле2 – соединение по отношению.

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

1. Откройте желаемую базу данных Microsoft Access 2007 ( Отдел продаж ).

2. Перейдя на вкладку Создания в группе Другие , нажмите кнопку Конструктор запросов . Будет создан новый запрос, и на экране вы увидите окно Добавление таблицы (см. рис. 5.7).

3. Перейдите на вкладку Таблицы и выберите нужную (например, Клиенты ), нажмите кнопку Добавить . После этого выберите другое имя таблицы (например, Заказы ) и также нажмите кнопку Добавить . По окончании данной процедуры нажмите кнопку Закрыть . Пустой бланк запроса отобразится на экране, в верхней части которого вы увидите структуры таблиц и их связь (рис. 5.19).

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

4. Выберите необходимые поля из двух макетов таблиц двойным щелчком кнопки мыши на названии поля (например, Имя , Телефон , Адрес , Товар , Количество ).

5. Если вы установите флажок Вывод на экран в столбце бланка запроса, отобразится данное поле запроса.

Читать еще:  Как сделать базу клиентов в access?

6. Вы также можете установить сортировку, для этого щелкните кнопкой мыши на параметре Сортировка в столбце бланка запроса нужного вам поля. В открывающемся списке выберите нужный вариант сортировки (рис. 5.20).

Рис. 5.20. Настроенный бланк запроса

В листинге 5.2 приведен SQL-текст вашего запроса.

Данный текст является ознакомительным фрагментом.

Вычисляемые поля в запросе БД 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)

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

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

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