powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Откат (отмена) в MDB проекте
5 сообщений из 5, страница 1 из 1
Откат (отмена) в MDB проекте
    #32411272
Vitaly223
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На летночной форме в поле "Количество" выведен столбец чисел из таблицы.
Для поля "Количество" записана процедура

Private Sub Количество_AfterUpdate()
MySum = DSum("Количество", Me.RecordSource)
End Sub
где MySum - глобальная переменная, в которой хранится текущая сумма по столбцу.

Вопрос:
Пользователь нажал комбинацию клавиш Cntl-Z или выполнил команду "Отменить" в меню.
Что делать, если переменной MySum хранится неверное значение?
...
Рейтинг: 0 / 0
Откат (отмена) в MDB проекте
    #32411277
amel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Посмотри св-во поля OldValue.
...
Рейтинг: 0 / 0
Откат (отмена) в MDB проекте
    #32411286
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот мы и узнали, как Виталий считает суммы.

Чтобы заработал предыдущий вопрос (как видно из соответствующий ветки), надо писать:

Private Sub Количество_AfterUpdate()
docmd.runcommand accmdsaverecord
MySum = DSum("Количество", Me.RecordSource)
End Sub

Тогда проблемы отката не будет, т.к. не будет отката.
Здесь Dsum тоже не учитывает введенные, но не сохраненные изменения.
Так что вопрос не совсем корректен.

А вообще, есть события

Private Sub Form_Undo(Cancel As Integer)
End Sub

и

Private Sub Control_Undo(Cancel As Integer)
End Sub
...
Рейтинг: 0 / 0
Откат (отмена) в MDB проекте
    #32411478
Vitaly223
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Geo

Более корректно моя процедура выглядит так
Private Sub Количество_AfterUpdate()
Me.Recordset.Move 0 '(по-крестьянски)
MySum = DSum("Количество", Me.RecordSource)
End Sub

Я пробовал найти замену использования функции DSum.
Подключил интеллект всемирной сети.
Вроде бы неплохо смотрелся Recalc с использования контрола суммирования в примечании. Но я от него отказался, так при вызове метода Recalc сбиваются текущие записи в соседней форме. Наверно это из-за того что вбиваю количества в модальной форме.

Признателен за советы. Спасибо.
...
Рейтинг: 0 / 0
Откат (отмена) в MDB проекте
    #32412646
Vitaly223
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вводим новое значения в поле "Количество"
Срабатывает процедура
Private Sub Количество_AfterUpdate
Me.Recordset.Move 0
'Можно написать Me.Dirty=False или DoCmd.RunCommand accmdSaveRecord
End Sub
Нажимаю Ctrl-Z, происходит отмена последнего редактирования.
В данном случае мне это не нужно. Как отключить действия этих горячих клавиш?

Процедура Form_Undo(Cancel as Integer) не запускается при нажатии клавиш.
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Откат (отмена) в MDB проекте
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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