|
|
|
| Заранее благодарю ответивших!
Собственно проблема следующая:
есть ленточная форма на таблицу T1, в форме одно из полей расчетное (в таблице)
при событии lostfocus любого поля в текущей записи (кроме расчетного), происходит вычисление типа
me.field1= me.field2+me.field3*me.field4 бла-бла-бла и т.д.
расчет меня устраивает, меня не устраивает что событие lostfocus, подразумевает что редактирование данного поля (например field3) уже закончилось, а так как у меня в дальнейшем идет присвоение в поле Field1 то запись остается в режиме редактирования, из за этого на интефейсе (при работе с формой) не происходит переход курсора на следующее поле или запись.
есть какой то оператор который завершает редактирование, я не знаю какой (вернее не помню)
подскажите?
я пробовал me.requery, срабатывает, но курсор убегает на начало первой записи...
| |
|
| |
|
|
|
| DoCmd.RunCommand acCmdSaveRecord
или через
me.dirty
з.ы. http://www.realcoding.net/article/view/2187
Событие Внесены изменения (Dirty), так же как и Изменение (Change), возникает в следующих ситуациях:
при изменении содержимого текстового поля или поля со списком, при этом изменением может быть любой непосредственно введенный или удаляемый символ;
при изменении значения свойства Текст (Text) элемента управления с помощью макроса или процедуры VBA;
в элементе управления Набор вкладок (Tab Control) при переходе с одной вкладки на другую.
Но в отличие от события Изменение (Change) оно относится к форме. Процедура имеет один параметр: Cancel. Если установить его значение равным True, то событие будет отменено. Отмена события будет вызывать откат всех изменений в записи, что эквивалентно нажатию клавиши <Esc>. Это событие удобно использовать для проверки, были ли изменения в записи. | |
|
| |
|
|
|
| можно подробнее про dirty, я пробовал но видимо синтаксиса не знаю...
у меня не получилось...
dirty это функция которая возвращает результат об окончании редактирования, я правильно понимаю?
как с ее помощью принудительно можно завершить редактирование?
может так:
me.dirty = true
или так нельзя?
не знаю почему но DoCMD не хочу использовать если есть другие варианты. | |
|
| |
|
|
|
| If Me.Dirty Then Me.Dirty = false | |
|
| |