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

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

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

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


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

Он уже предложил черезжопный, но работающий вариант.
...
Рейтинг: 0 / 0
22.11.2019, 15:56
    #39893023
Одна сумма на несколько записей
Oleg_Ang
это число вводится. а форма нужна именно для вычисления поля СУММА для каждой записи (строки)
В таком случае вам нужно поменять стратегию - для редактирования показывать записи только для конкретного контрагента. Для этого в заголовке формы разместить выпадающий список, а также поле для ввода общей суммы и кнопка для вызова процедуры расчета. В самой процедуре два прохода по записям в RecordsetClone. 1-й подсчет количества, 2-й - внесение сумм. Можно обойтись и без первого прохода, если добавить в заголовок поле с =Sum([Кол]), но я не советую.
После добавления/удаления записи все поля - новый расчет.
Для удобства можно предусмотреть два режима - "Просмотр" (все контрагенты с запретом изменений) и "Редактирование".
...
Рейтинг: 0 / 0
22.11.2019, 16:24
    #39893042
Oleg_Ang
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Одна сумма на несколько записей
Кривцов Анатолий, Спасибо, попробую такой вариант.
...
Рейтинг: 0 / 0
22.11.2019, 16:37
    #39893053
sdku
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Одна сумма на несколько записей
Oleg_Ang
sdku, нет. это просто число которое дает перевозчик за услуги транспорта.
А с каких пор перевозчик,которому и принадлежит транспорт,еще и даёт деньги за высокое право перевезти Ваш груз.
Я то, наивный, думал что перевозчику надо платить
Посмотрите это-здесь имеются все данные чтоб рассчитаться с перевозчиком (если расчет зависит от суммы заказа. Если от маршрута то надо добавить справочник-тбл."Маршрут",а если от веса или объема нужно добавлять соответствующие поля в справочник-тбл."товар"
...
Рейтинг: 0 / 0
22.11.2019, 16:48
    #39893064
sdku
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Одна сумма на несколько записей
Прошу прощения-не правильно понял Ваше сообщение.
Если перевозчик сам выдает эту цифру,то почему с ней производятся какие-то действия
(или по принципу: любую константу надо воспринимать как переменную)
В предложенном Вам есть все данные(если надо допилить!)предоставляемые перевозчику,что получить стоимость перевозки.... фсе
...
Рейтинг: 0 / 0
25.11.2019, 12:22
    #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
25.11.2019, 16:10
    #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
26.11.2019, 09:50
    #39894275
Oleg_Ang
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Одна сумма на несколько записей
Кривцов Анатолий, Спасибо, а можно примерчик с RecordsetClone, если не трудно. Буду очень признателен
...
Рейтинг: 0 / 0
28.11.2019, 10:48
    #39895423
Oleg_Ang
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Одна сумма на несколько записей
Кривцов Анатолий, Спасибо, а можно примерчик с RecordsetClone, если не трудно. Буду очень признателен
...
Рейтинг: 0 / 0
28.11.2019, 11:36
    #39895462
Панург
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Одна сумма на несколько записей
Oleg_Ang
примерчик с RecordsetClone, если не трудно. Буду очень признателен

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

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


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