Rambler's Top100
Форум: MS ACCESSVBVBA MS OfficeMS SQL server
Новые сообщения: 0000

Форум: MS ACCESS

Вопросы связанные с MS ACCESS

Обновить визитку
Участники «Online»
Все участники

 
 

Доброго времени суток, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: access 2003, как завершить редактирование записи в VB?
 
 автор: Kislov-EA   (26.11.2008 в 12:32)   личное сообщение
 
 

Заранее благодарю ответивших!
Собственно проблема следующая:
есть ленточная форма на таблицу T1, в форме одно из полей расчетное (в таблице)
при событии lostfocus любого поля в текущей записи (кроме расчетного), происходит вычисление типа
me.field1= me.field2+me.field3*me.field4 бла-бла-бла и т.д.
расчет меня устраивает, меня не устраивает что событие lostfocus, подразумевает что редактирование данного поля (например field3) уже закончилось, а так как у меня в дальнейшем идет присвоение в поле Field1 то запись остается в режиме редактирования, из за этого на интефейсе (при работе с формой) не происходит переход курсора на следующее поле или запись.
есть какой то оператор который завершает редактирование, я не знаю какой (вернее не помню)
подскажите?
я пробовал me.requery, срабатывает, но курсор убегает на начало первой записи...

  Ответить  
 
 автор: Кабан   (26.11.2008 в 12:42)   личное сообщение
 
 

DoCmd.RunCommand acCmdSaveRecord
или через
me.dirty

з.ы. http://www.realcoding.net/article/view/2187
Событие Внесены изменения (Dirty), так же как и Изменение (Change), возникает в следующих ситуациях:

при изменении содержимого текстового поля или поля со списком, при этом изменением может быть любой непосредственно введенный или удаляемый символ;

при изменении значения свойства Текст (Text) элемента управления с помощью макроса или процедуры VBA;

в элементе управления Набор вкладок (Tab Control) при переходе с одной вкладки на другую.

Но в отличие от события Изменение (Change) оно относится к форме. Процедура имеет один параметр: Cancel. Если установить его значение равным True, то событие будет отменено. Отмена события будет вызывать откат всех изменений в записи, что эквивалентно нажатию клавиши <Esc>. Это событие удобно использовать для проверки, были ли изменения в записи.

  Ответить  
 
 автор: Kislov-EA   (26.11.2008 в 13:13)   личное сообщение
 
 

можно подробнее про dirty, я пробовал но видимо синтаксиса не знаю...
у меня не получилось...
dirty это функция которая возвращает результат об окончании редактирования, я правильно понимаю?
как с ее помощью принудительно можно завершить редактирование?
может так:
me.dirty = true

или так нельзя?

не знаю почему но DoCMD не хочу использовать если есть другие варианты.

  Ответить  
 
 автор: osmor   (26.11.2008 в 13:20)   личное сообщение
 
 

If Me.Dirty Then Me.Dirty = false

  Ответить  
HiProg.com - Технологии программирования
Rambler's Top100 TopList