powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Сумма по столбцу в лент. форме
20 сообщений из 20, страница 1 из 1
Сумма по столбцу в лент. форме
    #32133611
SergeyParfenov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Дамы и господа, прошу помощи.

Есть ленточная форма на основе запроса.
В примечание есть поле, которое суммирует значение опр. столбца

SUM([имя столбца])

Все хорошо, пока пользователь в форме не исправит цифру в столбце.
Сумма пересчитывается только если перейдти на др. запись.

Необходимо пересчитываться сразу.

Пробывал множество вариантов.
Есть пример с 3-мя полями. когда, при изменении значений 1 или 2-го пересчитывается сумма 3-го. но применить к "ленте" не получается.

Есть ли какие-то варианты.

Заранее спасибо.
...
Рейтинг: 0 / 0
Сумма по столбцу в лент. форме
    #32133619
assa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сохрани запись при выходе (из поля), мне кажется.
...
Рейтинг: 0 / 0
Сумма по столбцу в лент. форме
    #32133648
SergeyParfenov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Дело в том, что выходить из поля не обязательно. Ввел число, а сумма пересчитывается.

А каким образом сохранить запись в поле. Если это повесить на событие "изменение", то может и сработает.
...
Рейтинг: 0 / 0
Сумма по столбцу в лент. форме
    #32133676
Bor-L
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Выходить из поля в самом деле не обязательно. Однако, если не сохранять запись, то как узнать, что изменение числа закончено ?
...
Рейтинг: 0 / 0
Сумма по столбцу в лент. форме
    #32133682
SergeyParfenov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Не обязательно узнавать, что число закончено.
Предположим, на посчитать 23+34
23 уже есть, а вместо 34 стоит 45.

В поле с 45 вводим 3 сумма считается как 23+3 , затем вводим 4, сумма считается как 23+34.
...
Рейтинг: 0 / 0
Сумма по столбцу в лент. форме
    #32133695
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И если в форме 10000 записей, то число ты будешь о-о-очень медленно вводить.
А ведь еще можно и ошибиться при вводе, на каждом backspace'е тоже пересчитывать...
И вместо цифры можно слово "х.й" нечаяно написать, пока из поля не уйдешь - проверки типа не будет, как это суммировать будем?
На болтайте ерудндой (с) фаменка
...
Рейтинг: 0 / 0
Сумма по столбцу в лент. форме
    #32133702
SergeyParfenov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Данная задача узко специализированна. На форме много записей не будет. Порядок чисел не более 2 знаков. Учитываются дробные числа.

А на будующее, если не можешь нормальными словами что-то сказать лучше клавиши в пустую не жать.
...
Рейтинг: 0 / 0
Сумма по столбцу в лент. форме
    #32133728
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну если уж совсем узкоспециализировано, то
ловишь событие Change у контрола и вручную пересчитываешь сумму.
...
Рейтинг: 0 / 0
Сумма по столбцу в лент. форме
    #32133745
SergeyParfenov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот здесь и кроется подвох.
В свойстве данные для поля, в котором отобр. сумма я писал SUM(...).
Когда попробывал перехвотить "изменение" и в VBA написал тоже самое, VBA выругался, что такой команды не существует. Ему надо ...+...+..., тогда работает, а так не полусится.

Что делать? Как по изменению поля в другое записать сумму одноименных лентосных полей?
...
Рейтинг: 0 / 0
Сумма по столбцу в лент. форме
    #32133757
Sfagnum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Отвлечённые размышления:
Создать Recordset на основе RecordsetClone
и сложиить в цикле всё это

геморойно но думаю работать будет
...
Рейтинг: 0 / 0
Сумма по столбцу в лент. форме
    #32133763
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Делай несвязанный (свободный) контрол и в него записывай подсчитанное вручную значение (по записям пробежать, просуммировать все кроме изменяемого, добавить текущее значение в изменяемом поле).
Иначе никак. Пока с поля не уйдешь - изменения аксес не воспримет.
...
Рейтинг: 0 / 0
Сумма по столбцу в лент. форме
    #32133791
Bor-L
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
По событию Изменение все-таки придется сохранять то, что уже введено. А потом ставить курсор туда, где был до сохранения записи. См. недавнюю дискуссию: Как сохранить фокус в поле ввода (за точность вопроса не ручаюсь). Удачи
...
Рейтинг: 0 / 0
Сумма по столбцу в лент. форме
    #32133808
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не придется сохранять.
Контрол с суммой выносишь в примечание формы и в него пишешь что угодно.
Значение текущего (редактируемого) контрола - Me![ControlName].Text
Все должно работать.
...
Рейтинг: 0 / 0
Сумма по столбцу в лент. форме
    #32133846
Bor-L
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Кстати. Возможно будет достаточно знать сумму всех чисел, КРОМЕ текущего (редактируемого). Если Да, то для Поля в примечании формы
=DSum("[СуммЧисла]";"Таблица";"[Ключ]<>" & CStr([ПолеКлюч]))
Проверил, работает. (Л-п: а вот с .Text почему-то не работает)
...
Рейтинг: 0 / 0
Сумма по столбцу в лент. форме
    #32133865
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У меня вот так работает

Private Sub num_Change()
Me![txtSum] = Nz(DSum("num", "TableName"), 0) + Val(Me![num].text)- Me![num].value
End Sub

Только один хрен работает плохо - отмену (ESC) не обрабатывает. Тоже решаемо, но как то оно все противно....
...
Рейтинг: 0 / 0
Сумма по столбцу в лент. форме
    #32133884
SergeyParfenov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Нормально.
Единственное, когда дробное вводишь через запятую 12,3 не считает, когда через точку 12.3 считает но пр выходе из поля ругается на формат.

Это поле привязано к колонке запроса с типом "Число".

Какой выход?
...
Рейтинг: 0 / 0
Сумма по столбцу в лент. форме
    #32133887
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RTFM однако
Примечание. Функция Val распознает в качестве разделителя целой и дробной части только точку (.). Если существует возможность использовать другие разделители целой и дробной частей (например в национальных версиях приложений), следует применять для преобразования строки в число функцию CDbl.

Так работает и с точкой, и с запятой. Но обламывается на буквах ("Несоответствие типа")
...
Рейтинг: 0 / 0
Сумма по столбцу в лент. форме
    #32133926
SergeyParfenov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
C CDbl лучше но обламывается на пустом значени.
Можно обойти?
...
Рейтинг: 0 / 0
Сумма по столбцу в лент. форме
    #32134077
Фотография 4d_monster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
=Cdbl(Nz([поле]))
...
Рейтинг: 0 / 0
Сумма по столбцу в лент. форме
    #32134295
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
для того чтобы произошло вычисление необходимо выйти из записи на последующую или предыдущую (пока записсь редактируется никаких расчетов (сумма по столбцу) быть неможет) индикатор редактируемости записи - карандашик в поле "область выделения" . но можно не выходить а просто нажать Shift + Enter - произойдет фиксация записи и сумма должна просчитаться
...
Рейтинг: 0 / 0
20 сообщений из 20, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Сумма по столбцу в лент. форме
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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