powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Одна сумма на несколько записей
30 сообщений из 30, показаны все 2 страниц
Одна сумма на несколько записей
    #39892768
Oleg_Ang
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день!! Подскажите пожалуйста идею или натолкните на мысль. Есть ленточная форма как показано на рисунке. В поле "Cумма" нужно проставить значения, если известна общая сумма и кол. для каждой записи, т.е. принцип такой - взять калькулятор, сложить все кол по выделенным записям, затем разделить 650 (см. для Роспланта) на общее кол. (по калькулятору) и умножить на кол. по каждой отгрузке. полученное значение проставить в поле СУММА. если смотреть на рисунок, то предварительные вычисления выделены синим фоном, а окончательный расчет красным.
...
Рейтинг: 0 / 0
Одна сумма на несколько записей
    #39892785
982183
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Стандартное пропорциональное распределение.
Заведи отдельный список с фирмой, суммой базы и распределяемой суммой
Через ВПР сделай распределение.
...
Рейтинг: 0 / 0
Одна сумма на несколько записей
    #39892790
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Речь идёт всё же об MS Access? если да - то откуда берётся конечная сумма (та, что 650 для Роспланта)?

А если об Excel - то надо точнее попадать мышом в ссылки.
...
Рейтинг: 0 / 0
Одна сумма на несколько записей
    #39892801
982183
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну разницы то особой нет.
Отдельная таблица с распределяемой суммой в разрезе клиентов.
Запрос с суммой "кол." в разрезе тех же клиентов.
и расчет распределенной суммы.
...
Рейтинг: 0 / 0
Одна сумма на несколько записей
    #39892843
Oleg_Ang
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
982183, т.е. в справочнике клиентов завести поле "СУММА" и потом ее уже распределять пропорционально для каждой отгрузки?
...
Рейтинг: 0 / 0
Одна сумма на несколько записей
    #39892855
Akina
откуда берётся конечная сумма (та, что 650 для Роспланта)?

И меня это интересует. И еще:
1. Сумма, это вычисляемое поле?
2. Форма нужна для редактирования или только просмотр?
...
Рейтинг: 0 / 0
Одна сумма на несколько записей
    #39892866
982183
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Oleg_Ang
982183, т.е. в справочнике клиентов завести поле "СУММА" и потом ее уже распределять пропорционально для каждой отгрузки?

И так работать будет.
Но не кошерно.
...
Рейтинг: 0 / 0
Одна сумма на несколько записей
    #39892869
Oleg_Ang
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Кривцов Анатолий, эта сумма (транспортные расходы) берется от перевозчика. в одну машину грузится товар на одного покупателя, но партий там может быть несколько, т.е. записей по кол-ву.
...
Рейтинг: 0 / 0
Одна сумма на несколько записей
    #39892871
Кривцов Анатолий
Сумма, это вычисляемое поле?
Уточню - значения для "посмореть", или их надо сохранить в таблице?
...
Рейтинг: 0 / 0
Одна сумма на несколько записей
    #39892875
Oleg_Ang
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Кривцов Анатолий, Сумма постоянная величина, но может менятся от стоимости траспорта сторонних фирм, в любом случае это число вводится. а форма нужна именно для вычисления поля СУММА для каждой записи (строки)
...
Рейтинг: 0 / 0
Одна сумма на несколько записей
    #39892876
Oleg_Ang
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Кривцов Анатолий, да сохранить нужно, чтоб потом можно вывести на печать в конце месяца и отдать в плановый отдел
...
Рейтинг: 0 / 0
Одна сумма на несколько записей
    #39892912
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Oleg_Ang
...принцип такой - взять калькулятор, сложить все кол по выделенным записям, затем разделить 650 (см. для Роспланта) на общее кол. (по калькулятору) и умножить на кол. по каждой отгрузке. полученное значение проставить в поле СУММА...
..И получить кольцевую ссылку. А откуда берется цифра 650?-ведь это SUM(СУММА)
...
Рейтинг: 0 / 0
Одна сумма на несколько записей
    #39892932
Oleg_Ang
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
sdku, нет. это просто число которое дает перевозчик за услуги транспорта. а потом эту сумму нужно раскидать на то кол. груза которое повезет машина и сохранить эти значения в таблице.
...
Рейтинг: 0 / 0
Одна сумма на несколько записей
    #39892938
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Oleg_Ang
число которое дает перевозчик за услуги транспорта
Блин, КАК ОНО В ЗАПРОС ПОПАДАЕТ???
...
Рейтинг: 0 / 0
Одна сумма на несколько записей
    #39892988
Oleg_Ang
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Akina, так и я хотел бы знать как так сделать, чтоб в форме заполнялись несколько полей по одному клиенту исходя из общей суммы транспортных расходов)
...
Рейтинг: 0 / 0
Одна сумма на несколько записей
    #39893005
982183
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Akina
Блин, КАК ОНО В ЗАПРОС ПОПАДАЕТ???


Oleg_Ang
т.е. в справочнике клиентов завести поле "СУММА"

Он уже предложил черезжопный, но работающий вариант.
...
Рейтинг: 0 / 0
Одна сумма на несколько записей
    #39893023
Oleg_Ang
это число вводится. а форма нужна именно для вычисления поля СУММА для каждой записи (строки)
В таком случае вам нужно поменять стратегию - для редактирования показывать записи только для конкретного контрагента. Для этого в заголовке формы разместить выпадающий список, а также поле для ввода общей суммы и кнопка для вызова процедуры расчета. В самой процедуре два прохода по записям в RecordsetClone. 1-й подсчет количества, 2-й - внесение сумм. Можно обойтись и без первого прохода, если добавить в заголовок поле с =Sum([Кол]), но я не советую.
После добавления/удаления записи все поля - новый расчет.
Для удобства можно предусмотреть два режима - "Просмотр" (все контрагенты с запретом изменений) и "Редактирование".
...
Рейтинг: 0 / 0
Одна сумма на несколько записей
    #39893042
Oleg_Ang
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Кривцов Анатолий, Спасибо, попробую такой вариант.
...
Рейтинг: 0 / 0
Одна сумма на несколько записей
    #39893053
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Oleg_Ang
sdku, нет. это просто число которое дает перевозчик за услуги транспорта.
А с каких пор перевозчик,которому и принадлежит транспорт,еще и даёт деньги за высокое право перевезти Ваш груз.
Я то, наивный, думал что перевозчику надо платить
Посмотрите это-здесь имеются все данные чтоб рассчитаться с перевозчиком (если расчет зависит от суммы заказа. Если от маршрута то надо добавить справочник-тбл."Маршрут",а если от веса или объема нужно добавлять соответствующие поля в справочник-тбл."товар"
...
Рейтинг: 0 / 0
Одна сумма на несколько записей
    #39893064
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Прошу прощения-не правильно понял Ваше сообщение.
Если перевозчик сам выдает эту цифру,то почему с ней производятся какие-то действия
(или по принципу: любую константу надо воспринимать как переменную)
В предложенном Вам есть все данные(если надо допилить!)предоставляемые перевозчику,что получить стоимость перевозки.... фсе
...
Рейтинг: 0 / 0
Одна сумма на несколько записей
    #39893860
Oleg_Ang
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Кривцов Анатолий, добрый день. ну вот примерно наваял рабочую часть. может есть какие замечания или советы?
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
Private Sub KalkSum_Click()
Dim Sum As Single, Sum1 As Single, Sum2 As Single

f = Me.Kl_Sp            ' êîä êëèåíòà
Sum = Me.pSum       ' ñóììà äëÿ ðàñ÷åòà - ââîäèòñÿ íà ôîðìå
Sum1 = 0

If MsgBox("&#213;&#238;&#242;&#232;&#242;&#229; &#240;&#224;&#241;&#241;&#247;&#232;&#242;&#224;&#242;&#252; &#241;&#243;&#236;&#236;&#251;?", vbOKCancel + vbInformation, "&#194;&#237;&#232;&#236;&#224;&#237;&#232;&#229;") <> vbOK Then
    DoCmd.CancelEvent
Else
Set dbs = CurrentDb()
strSQL = "SELECT kod1, kol, SumTr, PrimTr, Month([dataot]) AS mes, Year([dataot]) AS god FROM &#210;&#224;&#225;&#235;&#232;&#246;&#224;" _
& " WHERE (((&#210;&#224;&#225;&#235;&#232;&#246;&#224;.kod1)=" & f & ") AND ((Month([dataot]))=" & Month([Forms]![fTransport].[DataN]) & ") AND" _
& " ((Year([dataot]))=" & Year([Forms]![fTransport].[DataN]) & "))"
Set rs = dbs.OpenRecordset(strSQL, dbOpenDynaset, DB_CONSISTENT, dbPessimistic)
If rs.RecordCount = 0 Then
    MsgBox "&#196;&#224;&#237;&#237;&#251;&#229; &#238;&#242;&#241;&#243;&#242;&#241;&#242;&#226;&#243;&#254;&#242;!", vbInformation, "&#194;&#205;&#200;&#204;&#192;&#205;&#200;&#197;"
Else
    Do Until rs.EOF
        Sum1 = Sum1 + rs.Fields(1)
        rs.MoveNext
    Loop
End If
MsgBox "&#200;&#242;&#238;&#227;&#238; &#234;&#238;&#235;. = " & Round(Sum1, 3), vbInformation, "&#194;&#205;&#200;&#204;&#192;&#205;&#200;&#197;"
rs.MoveFirst
' &#228;&#229;&#235;&#229;&#237;&#232;&#229; &#238;&#225;&#249;&#229;&#233; &#241;&#243;&#236;&#236;&#251; &#242;&#240;. &#240;&#224;&#241;&#245;&#238;&#228;&#238;&#226; &#237;&#224; &#238;&#225;&#249;&#229;&#229; &#234;&#238;&#235;. &#239;&#238; &#234;&#235;&#232;&#229;&#237;&#242;&#243; &#232; &#231;&#224;&#239;&#232;&#241;&#252; &#226; &#234;&#224;&#230;&#228;&#243;&#254; &#241;&#242;&#240;&#238;&#247;&#234;&#243;
Sum2 = Round(Sum / Sum1, 3)
    Do Until rs.EOF
        rs.Edit
        rs.Fields(2) = rs.Fields(1) * Sum2
        rs.Fields(3) = Me.val                     ' текст валюты
        rs.Update
        rs.MoveNext
    Loop
rs.Close
dbs.Close
Set rs = Nothing
End If
End Sub
...
Рейтинг: 0 / 0
Одна сумма на несколько записей
    #39894061
Oleg_Ang
наваял рабочую часть. может есть какие замечания или советы?
Будут...
1. Если ваш Recordset отражает те же записи, что и форма, то необходимости в его открытии нет. Те же действия можно выполнить со св-вом формы RecordsetClone (о чем я и писал).
Если даже вы не фильтруете форму для одного клиента, нужные записи можно найти методами Find или проходом по записям с игнорированием ненужных.
2. Тип Single - не лучший выбор. Замените на Currency.
3. Если вы делаете Set dbs = CurrentDb(), то чего хотите от dbs.Close? Закрыть текущую БД?
4. DoCmd.CancelEvent никогда не пользовался. Здесь достаточно Exit Sub.
5. Копируйте текст при включенной RUS раскладке клавиатуры.
...
Рейтинг: 0 / 0
Одна сумма на несколько записей
    #39894275
Oleg_Ang
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Кривцов Анатолий, Спасибо, а можно примерчик с RecordsetClone, если не трудно. Буду очень признателен
...
Рейтинг: 0 / 0
Одна сумма на несколько записей
    #39895423
Oleg_Ang
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Кривцов Анатолий, Спасибо, а можно примерчик с RecordsetClone, если не трудно. Буду очень признателен
...
Рейтинг: 0 / 0
Одна сумма на несколько записей
    #39895462
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Oleg_Ang
примерчик с RecordsetClone, если не трудно. Буду очень признателен

для тех кого забанили в гугле и прочих поисковиках
Свойство Form.RecordsetClone (Access)

На форуме - RecordsetClone
...
Рейтинг: 0 / 0
Одна сумма на несколько записей
    #39895587
Oleg_Ang
а можно примерчик с RecordsetClone, если не трудно.

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
 ...
If MsgBox(...) <> vbOK Then
    Exit Sub
Else
    Set rs = Me.RecordsetClone
 If rs.RecordCount = 0 Then
    MsgBox ...
    Exit Sub
 End If
    rs.MoveFirst
    Do Until rs.EOF
        Sum1 = Sum1 + rs.Fields(1)
        rs.MoveNext
    Loop

    rs.MoveFirst
    Sum2 = Round(Sum / Sum1, 3)
    Do Until rs.EOF
        rs.Edit
        rs.Fields(2) = rs.Fields(1) * Sum2
        rs.Fields(3) = Me.val                     ' текст валюты
        rs.Update
        rs.MoveNext
    Loop
End If
...
Рейтинг: 0 / 0
Одна сумма на несколько записей
    #39895887
ИВП
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кривцов Анатолий
Код: vbnet
1.
Sum1 = Sum1 + rs.Fields(1)


а Sum1 чему равен?
...
Рейтинг: 0 / 0
Одна сумма на несколько записей
    #39896111
ИВП
Кривцов Анатолий
Код: vbnet
1.
Sum1 = Sum1 + rs.Fields(1)


а Sum1 чему равен?
Sum = Me.pSum - это в начале кода от ТС, там, где у меня многоточие.
...
Рейтинг: 0 / 0
Одна сумма на несколько записей
    #39896228
ИВП
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИВП,это Sum, а Sum 1 ?
...
Рейтинг: 0 / 0
Одна сумма на несколько записей
    #39896239
Фотография vmag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИВП
а Sum 1 ?


Щас так модно... при инициализации по умолчанию = 0,
а потом нарастающий итог...
...
Рейтинг: 0 / 0
30 сообщений из 30, показаны все 2 страниц
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Одна сумма на несколько записей
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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