Как сделать вычисляемое поле в форме access?

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

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

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

В этой статье

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Как сделать вычисляемое поле в форме access?

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

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

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

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

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


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

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

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

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

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


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


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

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

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

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

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

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

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

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

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

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

Фамилия & » » &

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

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

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

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

Left («stringexpr»; «n») ,

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

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


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

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

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

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

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

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

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


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

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


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

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

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

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

Как создать вычисляемые поля в форме Access

Просмотров: 17 975

невозможно задать тип данных вычисляемый для поля
наебалово(

Wicked Torpedo 75

Нурс ушул комменти окуп жаткан болсон ответ пожалуйста бро ))

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

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

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

Северный Олюс

Наконец-то у меня появился шанс сдать экзамен по ИТ♥♥♥

Герман Мамичев

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

Денис Шангареев

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

Рустам Алиев

Добрый день.
Нужна помощь.

Задача моя такая
1. У меня есть товары, которые заказываются на производстве (например, 20000 штук крема).
2. Заказываются по предоплате (предоплатный счет) — 50% (иногда 60%).
3. Далее данный план производства выполняется в течение месяца партиями (факт производства).
4. Суммарный факт производства никогда не равен плану (99% случаев меньше).
5. Мы забираем каждую партию только когда конкретно за нее заплатим оставшиеся 50%.

НАЙТИ — требуется вычислить общий долг по каждому Плану производства.

Я создал таблицу ПЛАН ПРОИЗВОДСТВА, ФАКТ ПРОИЗВОДСТВА (связь 1-8) и СЧЕТА. Партии из ФАКТ ПРОИЗВОДСТВА привязываются к плану (связь 1-8). Таблица СЧЕТА содержит разные типы счетов и суммы за товар или услуги: ОСНОВНОЙ, ПРЕДОПЛАТНЫЙ. ПРЕДОПЛАТНЫЙ счет привязывается к ПЛАН ПРОИЗВОДСТВА, а ОСНОВНОЙ к ФАКТУ ПРОИЗВОДСТВА (в списке фильтрую и показываю в зависимости от таблице свой набор счетов).

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

Для этого я создал запрос ПРОИЗВОДСТВО, куда свел Товар (их несколько) за все время (помесячно), вывел плановый заказ (в штуках) и цену. Далее, я создал вспомогательный запрос, где сгруппировал факт по КОДУ ПЛАН ПРОИЗВОДСТВА и СУММировал по ФАКТ (шт.). Далее вывел в запрос ПРОИЗВОДСТВО суммарный ФАКТ (шт). Имея ЦЕНА и ФАКТ — перемножил и получил фактическую сумму долга.

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

И теперь самое интересное: СТ-СТЬ ФАКТ «-» ПРЕДОПЛААТ «-» ОПЛАЧЕНО = ДОЛГ
ТАК ВОТ ТАМ ГДЕ ЕСТЬ ПУСТЫЕ ЯЧЕЙКИ ИЛИ ПРЕДОПЛАТЫ ИЛИ ОПЛАЧЕНО = ДОЛГ НЕ ВЫЧИСЛЯЕТСЯ.
ПОЧЕМУ? ПОМОГИТЕ РЕШИТЬ.

P.S. — Пробовал заполнять нулями, думая, что нужно числовое значение (Iif(IsNull(Предоплата);0;Предоплата)) — где пустые ячейки выводило ноль, но ДОЛГ все равно оставался пустым, хотя, например поле ОПЛАЧЕНО могло содержать числа. Вычисления проводились только тогда, когда все аргументы данного вычисления были больше нуля.

Bogdan Bodik

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

Спасибо! очень интересный урок. И так совпало, что как раз вчера мне нужно было решить похожую задачку. Правда мне ещё нужно было сделать так, чтобы вычисляемое поле заполняло таблицу (т.е. чтобы данные сохранялись в системе, а не просто показывались на форме или в отчёте), и при этом пользователь смог их редактировать.
К сожалению, решить ее с помощью только формул и макросов не смог. Пришлось использовать VBA. Может вы сталкивались с чем-то похожим и знаете другой вариант решения?

Пора рассказать о. взаимосвязанных (подчиненных) формах, которые взаимосвязаны друг с другом через невидимое поле на основной форме. Это один из самых частых вопросов. (пример есть в базе «Решения» от 97-го Access-а)

Access Лабораторная работа № 2.DOC. Access Лабораторная работа № 2. Создание форм в режиме конструктора. Вычисляемые поля в формах

Access. Лабораторная работа № 2.

Тема: Создание форм в режиме конструктора. Вычисляемые поля в формах.

  1. В режиме конструктора создайте макет второй таблицы в базе данных:

Таблица 2

Имена полей задайте такие же, как в таблице 2. Задайте свойства полей:

Код студента: тип счетчик, подпись поля №, индексированное, без повторений .

Фамилия: тип текстовый, размер поля 50 , о бязательное, без пустых строк, индексированное.

Имя: тип текстовый, размер поля 25 , о бязательное, без пустых строк

Группа: тип текстовый, размер поля 7, подпись № Группы , маска ввода , о бязательное, без пустых строк, индексированное .

Оценка по экзамену: тип числовой, формат байтовый, подписями полей сделайте названия предметов, например, История, Ботаника или другие, условие на значение Between 2 and 5 (воспользуйтесь «Построителем выражений»), сообщение об ошибке «Ошибка ввода оценки» .

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

  1. Создайте форму с использованием мастера для ввода и редактирования данных в таблицу Сессия (формуляр с отображением всех полей из таблицы). Назовите ее Сессия . Для вызова мастера используйте кнопку « Создать » на панели инструментов. Обязательно укажите источник данных! Используя эту форму, заполните базу данными. Введите 8-10 строк для тех студентов, фамилии и номера групп которых есть и в первой таблице.
  2. Создайте форму – диаграмму для графического отображения результатов сессии. Включите в диаграмму поля фамилии студентов и три оценки за экзамены. Выберите тип «Гистограмма». В макете формы данными оси абсцисс выберите фамилии, экзамены перенесите в область данных , где двойным щелчком мыши вызовите окно «вычисление итоговых значений» и поставьте «отсутствует». Сохраните форму с именем Диаграмма . Откройте форму, вызовите свойства рамки объекта, изменением свойства макета «Установка размеров» увеличьте размер рамки объекта (высоту и ширину).
  3. Создайте форму с использованием конструктора для просмотра данных таблицы. В конструкторе формы создаются вручную. Основой для создания формы может быть таблица или запрос.
  • В панели инструментов окна базы данных выберите кнопку Создать , далее выберите таблицу Сессия как источник данных для формы, далее выберите режим конструктора форм. Появляется бланк формы, содержащий пустую область данных . Ознакомьтесь с видом бланка формы и инструментами для создания форм. Если отображена только область данных, в меню Вид добавьте Заголовок / примечания формы . Форма строится из элементов управления. Они расположены в панели инструментов. Элемент «Надпись» , предназначен для создания заголовков. Элемент поле предназначен для отображения данных из таблиц и выполнения вычислений.
  • В область данных поместите все поля таблицы, используя буксировку поля из таблицы в область данных формы. При этом все поля данных формы связываются с данными соответствующих полей таблицы (свойство поля «Данные»). К каждому полю в области данных присоединяется надпись, значение которой совпадает с именем поля. Удалите ее.
  • В области заголовков над полями поместите надписи с названиями столбцов таблицы (имена полей или надписи).
Читать еще:  Как базу данных access сделать sql?

Поместите заголовок «Ведомость оценок за сессию» в область заголовка над названиями столбцов.

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

Вычисляемые поля форм. Такие поля не связаны с таблицей. Создаются с использованием элемента «Поле», взятого из панели элементов. Свойство «Данные» записывается через построитель выражений, вызываемый кнопкой .

  1. В области данных добавьте вычисляемое поле Средний балл . Найдите среднюю оценку для каждого студента . В свойствах макета задайте формат поля «Фиксированный» и точность вывода на экран два знака после запятой.
  2. В область примечаний формы добавьте итоговое вычисляемое поле Средний балл . Определите средние оценки по каждому из предметов с использованием функции Avg() (группа «Статистические») построителя выражений. Округлите до двух знаков после запятой. Добавьте поясняющую надпись «Средний балл по предметам».
  3. Добавьте в форму вычисляемое поле Процент стипендии . Задайте в нем отображение данных через выбор по условию функцией Iif() : для среднего балла, равного 5, стипендия начисляется в размере 200%, для среднего балла, большего или равного 4 – в размере 100%, в остальных случаях она равна 0. Базовый размер стипендии примите равным 300 руб.
  1. Поиск в базе данных. Используя расширенный фильтр, в форме «Студенты — сессия» выполните поиск в базе данных:
  2. а) по фамилии студента;
  3. б) по номеру группы;
  4. б) найдите всех студентов с итоговыми оценками 5 по каждому предмету;
  5. в) найдите всех студентов, которые успевают на 4 или 5 по каждому предмету;
  6. г) найдите студентов, имеющих оценку 2 хотя бы по одному предмету.
  7. Сохраните каждый фильтр как запрос с именем, соответствующим условию поиска.

Как создать вычисляемые поля в форме Access

Просмотров: 17 975

невозможно задать тип данных вычисляемый для поля
наебалово(

Wicked Torpedo 75

Нурс ушул комменти окуп жаткан болсон ответ пожалуйста бро ))

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

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

Северный Олюс

Наконец-то у меня появился шанс сдать экзамен по ИТ♥♥♥

Герман Мамичев

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

Денис Шангареев

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

Рустам Алиев

Добрый день.
Нужна помощь.

Задача моя такая
1. У меня есть товары, которые заказываются на производстве (например, 20000 штук крема).
2. Заказываются по предоплате (предоплатный счет) — 50% (иногда 60%).
3. Далее данный план производства выполняется в течение месяца партиями (факт производства).
4. Суммарный факт производства никогда не равен плану (99% случаев меньше).
5. Мы забираем каждую партию только когда конкретно за нее заплатим оставшиеся 50%.

НАЙТИ — требуется вычислить общий долг по каждому Плану производства.

Я создал таблицу ПЛАН ПРОИЗВОДСТВА, ФАКТ ПРОИЗВОДСТВА (связь 1-8) и СЧЕТА. Партии из ФАКТ ПРОИЗВОДСТВА привязываются к плану (связь 1-8). Таблица СЧЕТА содержит разные типы счетов и суммы за товар или услуги: ОСНОВНОЙ, ПРЕДОПЛАТНЫЙ. ПРЕДОПЛАТНЫЙ счет привязывается к ПЛАН ПРОИЗВОДСТВА, а ОСНОВНОЙ к ФАКТУ ПРОИЗВОДСТВА (в списке фильтрую и показываю в зависимости от таблице свой набор счетов).

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

Для этого я создал запрос ПРОИЗВОДСТВО, куда свел Товар (их несколько) за все время (помесячно), вывел плановый заказ (в штуках) и цену. Далее, я создал вспомогательный запрос, где сгруппировал факт по КОДУ ПЛАН ПРОИЗВОДСТВА и СУММировал по ФАКТ (шт.). Далее вывел в запрос ПРОИЗВОДСТВО суммарный ФАКТ (шт). Имея ЦЕНА и ФАКТ — перемножил и получил фактическую сумму долга.

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

И теперь самое интересное: СТ-СТЬ ФАКТ «-» ПРЕДОПЛААТ «-» ОПЛАЧЕНО = ДОЛГ
ТАК ВОТ ТАМ ГДЕ ЕСТЬ ПУСТЫЕ ЯЧЕЙКИ ИЛИ ПРЕДОПЛАТЫ ИЛИ ОПЛАЧЕНО = ДОЛГ НЕ ВЫЧИСЛЯЕТСЯ.
ПОЧЕМУ? ПОМОГИТЕ РЕШИТЬ.

P.S. — Пробовал заполнять нулями, думая, что нужно числовое значение (Iif(IsNull(Предоплата);0;Предоплата)) — где пустые ячейки выводило ноль, но ДОЛГ все равно оставался пустым, хотя, например поле ОПЛАЧЕНО могло содержать числа. Вычисления проводились только тогда, когда все аргументы данного вычисления были больше нуля.

Bogdan Bodik

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

Спасибо! очень интересный урок. И так совпало, что как раз вчера мне нужно было решить похожую задачку. Правда мне ещё нужно было сделать так, чтобы вычисляемое поле заполняло таблицу (т.е. чтобы данные сохранялись в системе, а не просто показывались на форме или в отчёте), и при этом пользователь смог их редактировать.
К сожалению, решить ее с помощью только формул и макросов не смог. Пришлось использовать VBA. Может вы сталкивались с чем-то похожим и знаете другой вариант решения?

Пора рассказать о. взаимосвязанных (подчиненных) формах, которые взаимосвязаны друг с другом через невидимое поле на основной форме. Это один из самых частых вопросов. (пример есть в базе «Решения» от 97-го Access-а)

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