Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Сумма полей в форме (так понятнее) / 25 сообщений из 25, страница 1 из 1
05.06.2003, 13:06
    #32177272
Asy
Asy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сумма полей в форме (так понятнее)
Подскажите, пожалуйста.
В форме должна получиться такая табличка(меня интересуют поля долг и остаток)

сумма оплачено долг
100_____ 50_____50
300______0______350
100_____500_____-50
То есть долг(2)=долг(1)+сумма(2)-оплачено(2).
Подскажите, как мне подобраться к предыдущему значению поля долг?
...
Рейтинг: 0 / 0
05.06.2003, 13:12
    #32177286
Zenia
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сумма полей в форме (так понятнее)
долг(1) = долг(2)-сумма(2)+оплачено(2)
...
Рейтинг: 0 / 0
05.06.2003, 13:24
    #32177303
Senin Viktor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сумма полей в форме (так понятнее)
А зачем Долг хранишь в базе?
Это вычисляемое значение, которое не надо хранить в бд
Другое - если проводиться сознательная денормализация, но и в этом случаее она создана неверно (ИМХО). Отсюда и проблемы
...
Рейтинг: 0 / 0
05.06.2003, 14:01
    #32177373
Asy
Asy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сумма полей в форме (так понятнее)
А как верно? Подскажите, если не трудно.
...
Рейтинг: 0 / 0
05.06.2003, 14:16
    #32177403
Asy
Asy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сумма полей в форме (так понятнее)
Я сделала вычисляемое поле (долг), а как мне к его предыдущему значению подобраться?
...
Рейтинг: 0 / 0
05.06.2003, 14:25
    #32177410
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сумма полей в форме (так понятнее)
Пусть меня поправят, но можно попробовать примерно так:

Код: plaintext
1.
2.
3.
4.
With Me.RecordsetClone
    .Bookmark = Me.Bookmark
    .MovePrevious
    DolgPrev = !Dolg
End With
...
Рейтинг: 0 / 0
05.06.2003, 14:27
    #32177412
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сумма полей в форме (так понятнее)
Правда, то, что я предложил, годится только для текущей записи в форме и только если она не первая.
...
Рейтинг: 0 / 0
05.06.2003, 14:36
    #32177429
АлексейК
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сумма полей в форме (так понятнее)
наверное что - нибудь типа:

Код: plaintext
select КОД, сумма, оплачено,(select sum(сумма) - sum(долг) from TABLE1 tbl1 where tbl1.КОД <= TABLE1.КОД) as долг  from TABLE1
...
Рейтинг: 0 / 0
05.06.2003, 14:55
    #32177457
Alexus12
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сумма полей в форме (так понятнее)
У меня была похожая задача:
журнал по датам с приходом и расходом, нужно было вычислить на каждую дату остаток.
Решал ее еще в ХЛ (давно было дело ;), естественно, через VB.
И здесь, мне кажется, можно пройтись из VB по всем записям отсортированной в нужном порядке таблицы
и в процессе прохождения во временную таблицу выбрасывать результаты.

Или воспользоваться опять же VB-шной функцией sumfield

Public Function SumField(Optional var) As Double
Static D As Double
If IsMissing(var) Then
D = 0
Else
D = D + Nz(var, 0)
End If
SumField = D
End Function

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

Первый вызов для сброса счетчика -
SumField()
- просто вставить в строку "условие" конструктора;
след. вызовы
ИмяПоляСНакопСуммой: SumField(ПолеДляСложения)
- в обычном поле
...
Рейтинг: 0 / 0
05.06.2003, 15:16
    #32177504
Senin Viktor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сумма полей в форме (так понятнее)
А что Asy делать будет если где-то через 10-20 проводок окажеться что внесенно не правильная сумма оплаты, и ее отредактируют. А долг, а долг последующих записей?
...
Рейтинг: 0 / 0
05.06.2003, 15:22
    #32177519
Alexus12
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сумма полей в форме (так понятнее)
Asy и все остальные юзеры таких методов должны
позаботиться об очистке временной таблицы и повторном ее заполнении
НЕПОСРЕДСТВЕННО ПЕРЕД печатью отчета.
(DELETE * и прочие радости )

На то таблица и временная ;)
...
Рейтинг: 0 / 0
05.06.2003, 15:33
    #32177539
Senin Viktor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сумма полей в форме (так понятнее)
Базу, основанную на не правильной структуре, ни одна временная таблица не спасет.
Asy -пока не поздо -переделывай
...
Рейтинг: 0 / 0
05.06.2003, 15:42
    #32177551
wara
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сумма полей в форме (так понятнее)
Давай придумаем структуру. Только сообщите
1. Порядок поступления входных данных
2. Вид результирующего отчета
3. Требования к периодичности/времени подсчета, количеству обрабатываемых данных.
...
Рейтинг: 0 / 0
05.06.2003, 15:50
    #32177564
Alexus12
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сумма полей в форме (так понятнее)
2 Senin Viktor:
Именно так!

Но есть и применения моего подхода.
Нужно распечатать сальдо по банку на каждый день (за месяц/год - не важно), основываясь на входящем сальдо (который у бухгалтеров все равно идет как оборот, только на дату, предшествующую началу учета ;)
и приходе - расходе за период.
Что делать?
Журнал всех дат - join - сумма с накоплением? (у меня)
Или как?
...
Рейтинг: 0 / 0
05.06.2003, 16:05
    #32177592
wara
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сумма полей в форме (так понятнее)
Alexus12,
а в какой структуре Вы храните эти приходы-расходы?
...
Рейтинг: 0 / 0
05.06.2003, 16:25
    #32177625
Asy
Asy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сумма полей в форме (так понятнее)
Давай придумаем структуру. Только сообщите
1. Порядок поступления входных данных
2. Вид результирующего отчета
3. Требования к периодичности/времени подсчета, количеству обрабатываемых данных.
Дата: сегодня, 15:42



Есть таблица Фактура в ней: код абонента, № периода, №счет-фактуры,сумма счета фактуры. Нужна форма, в которой для каждого абонента вносится оплата и высчитывается долг по формуле, приведенной в первом вопросе.Делается это по мере поступления оплаты.Кол-во обрабатываемых данных - 20 организаций*кол-во отчетных периодов.
...
Рейтинг: 0 / 0
05.06.2003, 16:30
    #32177632
wara
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сумма полей в форме (так понятнее)
Asy,
А в каком порядке и по какому правилу начисляется долг за период по каждому абононту?
...
Рейтинг: 0 / 0
05.06.2003, 16:38
    #32177639
wara
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сумма полей в форме (так понятнее)
Вообще, совершенно аналогичный вопрос обсуждался здесь База... только там мы ни до чего окончатьельного, не дошли (по-моему).
...
Рейтинг: 0 / 0
06.06.2003, 10:13
    #32178102
Asy
Asy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сумма полей в форме (так понятнее)
WARA
В форме должна получиться такая табличка(меня интересуют поля долг и остаток)

сумма оплачено долг
100_____ 50_____50
300______0______350
100_____500_____-50

То есть долг(1)=сумма(1)-оплачено(1).
долг(2)=долг(1)+сумма(2)-оплачено(2).

Подскажите, как мне подобраться к предыдущему значению поля долг?
...
Рейтинг: 0 / 0
06.06.2003, 10:38
    #32178130
Alexus12
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сумма полей в форме (так понятнее)
Еще раз то же самое ;)
Нада два зыпроса:

Запрос 1: выбирает поля
сумма и оплачено
из таблиц, где они у тебя хранятся.
Одновременно рассчитывает долг (1)-(2) по каждой записи.

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

ВАЖНО:
в запросе () должен стоять ключ
SELECT DISTINCT,
иначе функция насчитает бред.
...
Рейтинг: 0 / 0
06.06.2003, 11:21
    #32178193
Asy
Asy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сумма полей в форме (так понятнее)
Alexus12
Спасибо, попробую что получится!
...
Рейтинг: 0 / 0
06.06.2003, 12:23
    #32178279
АлексейК
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сумма полей в форме (так понятнее)
asy а чем вам мой запрос как источник данных формы не понравился?
...
Рейтинг: 0 / 0
06.06.2003, 14:23
    #32178462
Asy
Asy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сумма полей в форме (так понятнее)
АлексейК

Не совсем я его поняла, ведь мне нужно при вводе оплаты чтобы сразу менялась сумма долга (для конкретной записи, а не для набора). Но я все равно поэкспериментирую. Спасибо.
...
Рейтинг: 0 / 0
06.06.2003, 15:35
    #32178566
АлексейК
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сумма полей в форме (так понятнее)
если для последней введенной записи то
актуальная сумма долга = (сумма полученного) - (сумма оплаченного)

если нет желания разбираться с синтаксисом sql
- попробуй функцию DSUM() , только работает она не быстро

в поле, котром желаешь видеть долг ставишь

= dsum("[сумма] - [оплачено]";"MY_TABLE")

MY_TABLE - замени на название твоей таблицы

только не ставь это в область данных ленточной или табличных форм.
...
Рейтинг: 0 / 0
07.06.2003, 15:17
    #32178962
Zrw
Zrw
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сумма полей в форме (так понятнее)
Если надо, я могу выслать пример, показывающий, как довольно просто реализовать требуемое. При указанном количестве данных тормозить сильно не должно. Если надо - обращайся по email
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Сумма полей в форме (так понятнее) / 25 сообщений из 25, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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