Red4u.ru

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

Вычисляемое поле в форме access

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

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

  1. Создайте свободный элемент управления типа Поле (Text Box) в нужном месте формы.
  2. Прямо в поле введите выражение =Date (). Знак равенства обязателен.
  3. Откройте окно Свойства (Properties) для этого элемента и задайте для свойства Формат поля (Format) желаемый формат даты, например Длинный формат даты (Long Date).
  4. Установите длину поля таким образом, чтобы в нем помещалось необходимое количество символов.
  5. Измените название метки этого текстового поля. Созданное поле будет выглядеть, как показано на рис. 9.47.

Рис. 9.47. Вычисляемое поле

Обычно для создания вычисляемых полей выбирают именно элемент управления Текстовое поле, хотя это и необязательно. Допускается использовать для этого любые элементы управления, имеющие свойство Данные (Control Source).

Именно в свойстве Данные (Control Source) должно быть задано выражение, которое вычисляет значение этого элемента. Ввод выражения допускается прямо в элемент управления, как мы и сделали это в примере. Однако, если выражение достаточно длинное, его неудобно вводить прямо в поле. Можно ввести выражение в ячейку свойства Данные (Control Source) в окне Свойства (Properties), а если выражение не помещается в ячейке свойства, просто нажать комбинацию клавиш + и открыть окно Область ввода (Zoom). Еще можно воспользоваться Построителем выражений.

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

  • Первый способ основан на том, что форма строится на базе запроса, в который включают вычисляемые столбцы. В форме создается текстовое поле, у которого в качестве источника данных указывается вычисляемый столбец запроса. Поле блокируется, чтобы пользователь не мог изменить данные в нем, ведь эти данные вычисляются в процессе выполнения запроса.
  • Во втором случае форма может строиться прямо на базе таблицы. В ней создается текстовое поле, в котором в качестве источника данных указывается выражение, например = [Цена за единицу] * Количество. При этом в выражении необязательно указываются те поля, которые включены в форму, а любые поля базовой таблицы.

Замечание

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

Первый способ в большинстве случаев предпочтительнее, т. к. такой запрос может быть использован не только в одной форме, но и в отчетах и в других формах. Примером такой организации расчетов может служить форма «Подчиненная форма заказов» (Orders Subform) базы данных «Борей». Она основана на запросе «Сведения о заказах» (Order Details Extended), в котором создано вычисляемое поле «ОтпускнаяЦена» (ExtendedPrice), содержащее формулу:

в примере английской версии Access:

Свойство Данные (Control Source) элемента управления ОтпускнаяЦена

(ExtendedPrice) в форме имеет значение «ОтпускнаяЦена» (ExtendedPrice) — имя вычисляемого поля запроса.

Замечание

В приведенной выше формуле CCur — это функция, которая преобразует значение выражения в тип Денежный (Currency).

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

Вычисления в форме БД Access 2003

Известно, что в БД Microsoft Access вычисляемые поля могут быть созданы в запросе, форме или отчете. Рассмотрим создание вычисляемых полей в отчете базы данных Access 2003. Для ввода Выражения в форму ее необходимо открыть в режиме Конструктора и создать свободное текстовое поле, используя кнопку «ab» (Поле) на панели инструментов. Слева от созданного свободного поля располагается метка, связанная с текстовым полем, в которой отображается порядковый номер введенного поля.

Читайте так же:
Запрос на изменение в access

Свободное поле означает, что оно не связано ни с одним полем. В свободное поле можно вводить поле таблицы БД или Выражение. Метка используется для ввода имени поля. При вводе в свободное поле «Выражения», которое вычисляет требуемое значение, оно становится вычисляемым. В вычисляемых полях можно использовать функции, например функцию дата или время, а можно ввести выражение, использующее в качестве входных данных значения полей таблицы БД Access. На форму можно также вставить автономную текстовую метку, т.е. метку не связанную с текстовым полем, для этого надо использовать кнопку «Aa» (Надпись) на панели инструментов.

Рассмотрим создание вычисляемого поля в форме Студенты на примере базы данныхTraining_students_VP. Постановка задачи: в форме БД Access Студенты_конструктор создать одно поле, в котором должна выводиться текущая дата, и другое поле, которое объединяет фамилию, имя и отчество студента. Для решения этой задачи откроем форму Студенты_конструктор в режиме конструктора (рис. 1).

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

  • нажать кнопку «ab» (Поле) на панели инструментов, а затем щелкнуть на форме в том месте, где планируется вставить свободное текстовое поле;
  • затем установить курсор в поле «Свободный» (рис. 2) и ввести функцию: =Date();
  • следующий шаг — изменить название метки текстового поля (рис. 2), для этого надо удалить порядковый номер (в нашем примере Поле30) и ввести слово «Дата:«;
  • изменить длину метки и текстового поля так, чтобы в них поместилось содержимое;
  • отформатировать вычисляемое поле (при необходимости), для этого необходимо щелкнуть правой кнопкой мыши на вычисляемое поле и в контекстном меню выбрать команду Свойства, откроется диалоговое окно «Поле». Форматирование осуществляется в окне «Поле» на вкладке «Все» в строке «Формат поля» (рис. 3);
  • закрыть окно Поле;
  • просмотреть форму БД Access в режиме формы, выполнив щелчок по кнопке Открыть (рис. 4);

Для создания еще одного вычисляемого поля в форме БД Access, отображающего выражение, использующее в качестве входных данных значения полей таблицы (Фамилия, Имя, Отчество), надо выполнить следующие действия:

  • добавить свободное поле на форму (рисунок 5);
  • изменить название метки текстового поля на ФИО;
  • вызвать построитель выражений, для этого щелкнуть на панели инструментов на пиктограмме «Построитель», откроется окно Построитель, в котором надо выделить «выражение» (рисунок 6) и щелкнуть ОК;
  • откроется окно «Построитель выражений», в котором надо ввести =[Фамилия]&» «&[Имя]&» «&[Отчество] (Рисунок 7), затем выделить формулу и сохранить ее в буфере обмена, нажав клавиши Ctrl+C;
  • закрыть окно «Построитель выражений», установить курсор в поле «Свободный» и вставить формулу, нажав клавиши Ctrl+V (рисунок 8);
  • удалить ранее созданные поля и метки Фамилия, Имя, Отчество;
  • изменить длину метки ФИО и связанную с ней длину текстового поля так, чтобы в них поместилось содержимое;
  • просмотреть форму в режиме формы, выполнив щелчок по кнопке Открыть (Рисунок 9).

Copyright

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

Создание вычисляемых элементов управления

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

Читайте так же:
Почему нет звука в презентации powerpoint

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

В этой статье

Создание вычисляемых элементов управления

Эта процедура позволяет создавать вычисляемые элементы управления без использования мастера элементов управления.

Щелкните правой кнопкой мыши форму или отчет в области навигации и выберите команду конструктор.

На вкладке конструктор в группе элементы управления щелкните инструмент для нужного типа элемента управления.

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

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

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

Выделите элемент управления, нажмите клавишу F4, чтобы открыть окно свойств, а затем введите выражение в поле свойства Источник элементов управления . Чтобы создать выражение с помощью Построитель выражений, нажмите кнопку рядом с ячейкой свойства » Источник управления «.

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

Перед каждым выражением введите оператор = . Например: = [Цена] *. 75.

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

Если требуется больше места для ввода выражения в поле свойства Источник элементов управления , нажмите клавиши SHIFT + F2, чтобы открыть окно область ввода .

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

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

Изменение привязанного элемента управления на вычисляемый элемент управления

Хорошим способом создания вычисляемого элемента управления является создание присоединенного элемента управления (например, путем перетаскивания поля из области список полей в форму или отчет), а затем редактирования свойства источника элемента управления связанного элемента управления для создания выражения. Это работает хорошо, если вы гарантируете, что имя элемента управления не будет конфликтовать с именами полей, содержащимися в выражении. Дополнительные сведения о создании присоединенного элемента управления путем перетаскивания поля из области » список полей » можно найти в статье Добавление поля в форму или отчет.

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

Щелкните правой кнопкой мыши форму или отчет в области навигации и выберите команду конструктор.

Щелкните поле, которое вы хотите изменить, а затем нажмите клавишу F4, чтобы открыть окно свойств.

Читайте так же:
Ms access 2020 runtime

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

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

Чтобы сохранить изменения, нажмите сочетание клавиш CTRL+S.

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

Если в элементе управления не отображаются нужные данные (например, если в элементе управления отображается #Name? ), Проверьте источник записей формы или отчета, чтобы убедиться в том, что все поля, которые вы использовали в выражении, доступны. Если источником записей является запрос, возможно, потребуется добавить одно или несколько полей в запрос перед тем, как выражение будет работать.

Перед каждым выражением введите оператор = . Например: = [Цена] *. 75.

Если требуется больше места для ввода выражения в поле свойства Источник элементов управления , нажмите клавиши SHIFT + F2, чтобы открыть окно область ввода .

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

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

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

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

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

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

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

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

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

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

Читайте так же:
Таблица в access

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

MS Access-использование значения из формы в вычисляемом поле таблицы

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

Но это показывает, что «The expression cannot be used because refers to another table».

Читайте так же:
Создание отчетов в субд ms access

Как получить доступ к значению текстового поля?

1 Ответ

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

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

У вас есть несколько вариантов в зависимости от того, что вы пытаетесь сделать с данными. Если вам действительно нужно вычисляемое поле в вашей таблице, вы можете использовать форму, чтобы сделать UPDATE для другого поля в вашей таблице; тогда это статические данные, и ваш вычисляемый элемент управления может работать.

Другой вариант — иметь отдельную таблицу для хранения введенного пользователем значения, а затем использовать VIEW (QUERY в терминологии Access) для объединения данных и вычисления результата. В зависимости от того, почему вы это делаете, это, как правило, метод, с которым вы хотите пойти.

Если это не ответ на ваш вопрос, и у вас есть что-то более конкретное, я постараюсь адаптировать ответ больше.

Похожие вопросы:

Я пытаюсь вставить данные в MS Access DB с помощью Servelts ( PreparedStatement ) и HTML формы. Может ли кто-нибудь помочь мне в запросе MS Acces Insert. Мое требование состоит в том, чтобы вставить.

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

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

Я действительно Новичок в доступе. У меня есть вычисляемое поле (Имя) в моей таблице, которая состоит из 3 коротких текстовых полей (fName + mName + lName). Я хочу предотвратить любое дублирование в.

Как отправить письмо из формы MS Access. ? Предположим, у меня есть приложение MS Access с формой DashBoard. У меня есть отправить письма на определенный почтовый адрес например, отправка.

У меня есть супер простая форма MS Access с двумя полями для быстрого сбора некоторых данных, один из которых является типом данных memo, подключенным к полю таблицы. Я хочу скопировать в него.

Мне нужна помощь в том, как сохранить данные из формы MS Access в другую таблицу в той же базе данных MS Access ! У меня есть 2 таблицы Table1 -> I called it Data and this table have all the data.

Я пытаюсь получить No of days late в определенной таблице в MS доступа. Я пытаюсь использовать вычисляемый тип данных. У меня есть [ActualReturnDate] и [ReturnDate] в одной таблице (оба являются.

Я использую MS Access 2007. У меня есть таблица в базе данных, 3 поля для беспокойства являются: Поле 1 = Дата открытия (дата) Поле 2 = Дата закрытия местоположения (дата) Поле 3 = Статус (Текст).

Я новичок в MS Access. Я создал отчет, который извлекает данные из excel и отображает на выходе формы MS Access. Я добавил текстовое поле, для которого в Properties — >Control Source я добавил PO#.

голоса
Рейтинг статьи
Ссылка на основную публикацию
Adblock
detector