powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Вычисляемое поле, ссылка на предыдущую ячейку
12 сообщений из 12, страница 1 из 1
Вычисляемое поле, ссылка на предыдущую ячейку
    #39890835
leshqow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть поле с именем СОСТОИТ. Оно вычисляется по формуле СОСТОИТ_ПРЕДЫДУЩЕЕ + ПРИБЫЛО - УБЫЛО. Как сделать в формуле ссылку на предыдущую ячейку ? Форму менять крайне не желательно.
...
Рейтинг: 0 / 0
Вычисляемое поле, ссылка на предыдущую ячейку
    #39890913
Фотография Tarasios
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
leshqow,
прямой ссылки вы не получите, это же не Ексель.
Для определения текущей и предыдущих "ячеек" используйте сортировку по возрастанию по вашему ключевому полю, идентификацию записи по значению этого ключевого поля. Типа "текущее значение ключа минус 1".
...
Рейтинг: 0 / 0
Вычисляемое поле, ссылка на предыдущую ячейку
    #39890934
leshqow
Есть поле с именем СОСТОИТ. Оно вычисляется по формуле СОСТОИТ_ПРЕДЫДУЩЕЕ + ПРИБЫЛО - УБЫЛО. Как сделать в формуле ссылку на предыдущую ячейку ? Форму менять крайне не желательно.
Судя по картинке значение СОСТОИТ_ПРЕДЫДУЩЕЕ для текущей записи, это всё, что прибыло минус всё, что убыло до даты текущей записи. Если так, то:
Код: plsql
1.
2.
3.
=DSum("[Прибыло]";"[Табл1]";"[Дата записи]<#11/15/2019# And ...")
- NZ(DSum("[Убыло]";"[Табл2]";"[Дата записи]<#11/15/2019# And ..."))
+ NZ([Прибыло]) - NZ([Убыло]) 


Если это одна таблица, то можно так:
Код: plsql
1.
2.
=DSum("NZ([Прибыло])-NZ([Убыло])";"[Табл]";"[Дата записи]<#11/15/2019# And ...")
+ NZ([Прибыло]) - NZ([Убыло])



ЗЫ. Странная у вас увязка конкретного поставщика с конкретным покупателем.
...
Рейтинг: 0 / 0
Вычисляемое поле, ссылка на предыдущую ячейку
    #39890995
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Поле СОСТОИТ есть вычисляемое поле и я надеюсь в таблице его нет. Остаток же вычисляется несколько иначе СОСТОИТ=SUM(прибыло)-SUM(убыло)
...
Рейтинг: 0 / 0
Вычисляемое поле, ссылка на предыдущую ячейку
    #39891024
Фотография vmag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
leshqow,

Как БЭ дело имхо не в форме ...
- По идее прибыло и убыло это (почти везде и у всех) собственно две разные таблицы...
Остаток вычисляется как уже сказали
sdku
SUM(прибыло)-SUM(убыло)

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

Выбранная схема не выдерживает вообще никакой критики, ну допустим месяц назад кто-то ошибся в прибыло или убыло, да еще несколько раз и нужно исправить ?
Не, дело то хозяйское...
...
Рейтинг: 0 / 0
Вычисляемое поле, ссылка на предыдущую ячейку
    #39891133
leshqow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sdku
Поле СОСТОИТ есть вычисляемое поле и я надеюсь в таблице его нет. Остаток же вычисляется несколько иначе СОСТОИТ=SUM(прибыло)-SUM(убыло)


Поле состоит находится у меня в сущности ДВИЖЕНИЕ. Вы имеете ввиду убрать его из таблицы и оставить только на форме?
В вашей формуле вычисления остатка нет значения предыдущего СОСТОИТ. Было 100кг чермета, привезли 50, увезли 20. По вашей формуле остаток будет 30 кг, а по факту то 130 кг.

Tarasios

прямой ссылки вы не получите, это же не Ексель.
Для определения текущей и предыдущих "ячеек" используйте сортировку по возрастанию по вашему ключевому полю, идентификацию записи по значению этого ключевого поля. Типа "текущее значение ключа минус 1".


=[Движение].[КодДвиж]-1 так я получаю значение счетчика предыдущей записи, а как в этой записи то значение поля Состоит добраться?

vmag
leshqow,

Как БЭ дело имхо не в форме ...
- По идее прибыло и убыло это (почти везде и у всех) собственно две разные таблицы...
Остаток вычисляется как уже сказали
- У некоторых это одна таблица с графой Движение и признаком приход/расход (приход плюсуется, расход минусуется при расчетах)
- Иногда еще дополнительно для ускорения текущих операций делают глобальный классификатор Остатков, в котором при каждой операции приход/расход происходит уточнение остатков позиции (и их в любой момент можно пересчитать при желании).

Две разные таблицы, так там тоже можно ошибиться, разве на скриншоте не максимально простая и эффективная карточка учета? Все вместе и приход и расход ?
Опишите пожалуйста своё виденье, уважаемый vmag. Спасибо всем !
...
Рейтинг: 0 / 0
Вычисляемое поле, ссылка на предыдущую ячейку
    #39891156
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
leshqow
....Было 100кг чермета, привезли 50, увезли 20. По вашей формуле остаток будет 30 кг, а по факту то 130 кг.
На момент начала работы БД на складе было 0 кг чермета,затем по акту инвентаризации, при начале использования БД(Иначе откуда взялась цифра 100 ) на складе имеется 100 кг чермета которые приходуются и попадают в [прибыло],а далее все идет как я сказал sum(прибыло)-sum(убыло):
(0+100+50)-20=130
...
Рейтинг: 0 / 0
Вычисляемое поле, ссылка на предыдущую ячейку
    #39891183
Фотография vmag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
leshqow
Две разные таблицы, так там тоже можно ошибиться,


ну и да, исправил ошибку и всё - при пересчете итоги выровняются автоматически...
в вашем случае после исправления ошибки, нужно корректировать все записи следующие за корректируемой, ибо у вас каждая запись зависит от предыдущей... разница есть ?
...
Рейтинг: 0 / 0
Вычисляемое поле, ссылка на предыдущую ячейку
    #39891315
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
leshqow

...=[Движение].[КодДвиж]-1 так я получаю значение счетчика предыдущей записи
Записи с таким значением кодового поля(счётчика) может вообще не быть.
К счетчику-коду нужно "прикасаться" крайне аккуратно,а лучше его вообще не трогать в подобных случаях(вычислениях чего-либо)
...
Рейтинг: 0 / 0
Вычисляемое поле, ссылка на предыдущую ячейку
    #39891320
leshqow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sdku
На момент начала работы БД на складе было 0 кг чермета,затем по акту инвентаризации, при начале использования БД(Иначе откуда взялась цифра 100 ) на складе имеется 100 кг чермета которые приходуются и попадают в [прибыло],а далее все идет как я сказал sum(прибыло)-sum(убыло):
(0+100+50)-20=130

Понял. Только это остаток на текущий момент. Значение поля СОСТОИТ для каждой записи своё, т.е. идет нарастающим итогом, в этом вся загвоздка. В EXCEL оно бы вычислялось СОСТОИТ = СОСТОИТ_ПРЕДЫДУЩЕЕ + ПРИБЫЛО - УБЫЛО.

vmag

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

Вы имеете ввиду 2 сущности, одна ДВИЖЕНИЕ_РАСХОД и ДВИЖЕНИЕ_ПРИХОД? В первом посте я прикрепил скрин, такая форма должна быть обязательна, с полем СОСТОИТ, которое идет нарастающим итогом. Разве это будет возможно по вашей схеме?
...
Рейтинг: 0 / 0
Вычисляемое поле, ссылка на предыдущую ячейку
    #39891332
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
leshqow

...=[Движение].[КодДвиж]-1 так я получаю значение счетчика предыдущей записи
Записи с таким значением кодового поля(счётчика) может вообще не быть.
К счетчику-коду нужно "прикасаться" крайне аккуратно,а лучше его вообще не трогать в подобных случаях(вычислениях чего-либо)
...
Рейтинг: 0 / 0
Вычисляемое поле, ссылка на предыдущую ячейку
    #39891690
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
leshqow
В EXCEL оно бы вычислялось СОСТОИТ = СОСТОИТ_ПРЕДЫДУЩЕЕ + ПРИБЫЛО - УБЫЛО.
при работе с ACCESS забудьте про EXCEL-СУБД и электронные таблицы таки две огромные разницы.
Ведь СОСТОИТ_ПРЕДЫДУЩЕЕ есть остаток на какой-то конкретный момент времени и то что Вам предлагается позволяет получить это значение на любую дату,внеся её в поле ввода (остаток нарастающим итогом при этом хранить нет никакой необходимости, хранение же этих данных кроме лишнего геморра не дает ничего. Внесение же находящегося на складе,при переходе на учет в БД, в поле "прибыло" есть разовая операция.)
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Вычисляемое поле, ссылка на предыдущую ячейку
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]