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

Форум: MS ACCESS

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

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

 
 

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

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

тема: сохранение на ленточной форме
 
 автор: joka   (27.05.2009 в 10:43)   личное сообщение
 
 

Скажите пожалуйста, у меня возник вопрос, можно ли при использовании ленточной формы, сделать так чтобы запись сохранялась в таблице только после нажатия стандартной кнопки работы с записями "Сохранить запись"??? Если да, то как правильно это сделать? Хочется чтобы сохранение в таблицы происходило только по команде оператора.

п.с. форма может быть и одиночная. я просто тему неправильно назвал, правильно было бы написать "сохранение на связной форме".

  Ответить  
 
 автор: Гамлет   (27.05.2009 в 11:35)   личное сообщение
 
 

Как вариант
Создать форму без источника данных.
На нее положить свободные поля из которых данные будут заноситься в таблицу.
Данные из этих полей запросом на добавление добавлять в таблицу

  Ответить  
 
 автор: joka   (27.05.2009 в 12:05)   личное сообщение
 
 

этот вариант понятен :) INSERT СПАСЕТ:)
Но вопрос именно можно ли как то запретить автосохранение на связной форме?

  Ответить  
 
 автор: joka   (27.05.2009 в 14:55)   личное сообщение
 
 

Так что никто ничего не придумал? Просто выставить Cancel=True на событие Before_update не позволить отработать кнопки сохранения DoCmd...

  Ответить  
 
 автор: osmor   (27.05.2009 в 15:14)   личное сообщение
 
 

дело в том что сохранение записи происходит в момент "ухода" с этой записи, т.е. как только в ленточной форме вы переместились на другую запись, та которую редактировали уже сохранилась.

Добавлено:
Сори, ляпнул не в тему, плохо понял что было нужно

  Ответить  
 
 автор: Анатолий (Киев)   (27.05.2009 в 15:17)   личное сообщение
 
 

Ну так создайте переменную в заголовке модуля.
На Click кнопки: Fl = Me.Dirty
На Before_update: Cancel = Not Fl
На After_update: Fl = False

  Ответить  
 
 автор: joka   (27.05.2009 в 15:40)   личное сообщение
 
 

спасибо что то подобное крутилось в голове но что то не получилось до конца, попробу такой вариант.

п.с. Fl = Me.Dirty я выставляю в событии нажатия кнопки сохранения, до выполнения команды сохранения DoCmd...
я правильно понял?

  Ответить  
 
 автор: joka   (27.05.2009 в 15:57)   личное сообщение
 
 

спасибо еще раз! все гениальное просто:) этот алгоритм работает!
только еще надо отлов ошибки поставить на Form_Error, чтобы не выскакивало акцесовское предупреждение об ошибке при попытке сохранить (а оно возникает если в бефор_апдайте cancel=true).

что то типа
Private Sub Form_Error(DataErr As Integer, Response As Integer)
Select Case DataErr
Case 2169 'игнорирование ошибки о невозможноси сохранить объект и закрытие базы
Response = acDataErrContinue
End Select
End Sub

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