Гость
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Вычисляемое поле, ссылка на предыдущую ячейку / 12 сообщений из 12, страница 1 из 1
18.11.2019, 22:43
    #39890835
leshqow
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вычисляемое поле, ссылка на предыдущую ячейку
Есть поле с именем СОСТОИТ. Оно вычисляется по формуле СОСТОИТ_ПРЕДЫДУЩЕЕ + ПРИБЫЛО - УБЫЛО. Как сделать в формуле ссылку на предыдущую ячейку ? Форму менять крайне не желательно.
...
Рейтинг: 0 / 0
19.11.2019, 09:45
    #39890913
Tarasios
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вычисляемое поле, ссылка на предыдущую ячейку
leshqow,
прямой ссылки вы не получите, это же не Ексель.
Для определения текущей и предыдущих "ячеек" используйте сортировку по возрастанию по вашему ключевому полю, идентификацию записи по значению этого ключевого поля. Типа "текущее значение ключа минус 1".
...
Рейтинг: 0 / 0
19.11.2019, 10:28
    #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
19.11.2019, 12:06
    #39890995
sdku
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вычисляемое поле, ссылка на предыдущую ячейку
Поле СОСТОИТ есть вычисляемое поле и я надеюсь в таблице его нет. Остаток же вычисляется несколько иначе СОСТОИТ=SUM(прибыло)-SUM(убыло)
...
Рейтинг: 0 / 0
19.11.2019, 13:03
    #39891024
vmag
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вычисляемое поле, ссылка на предыдущую ячейку
leshqow,

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

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

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


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

Tarasios

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


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

vmag
leshqow,

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

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


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

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

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

vmag

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

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

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


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