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

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

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

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

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
17.02.2004, 11:01
    #32411478
Vitaly223
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Откат (отмена) в MDB проекте
2 Geo

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

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

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

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


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