Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / вопрос по dirty / 21 сообщений из 21, страница 1 из 1
09.04.2004, 15:38
    #32475759
faint
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вопрос по dirty
1. кто скажет почему при изменении данных в форме me.dirty =true, а вот при закрытии этой формы me.dirty = false ?
2. как в этом случае при закрытии формы проверять изменили ли данные ?
...
Рейтинг: 0 / 0
09.04.2004, 15:41
    #32475763
АлексейК
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вопрос по dirty
потому что после того как текущая запись сохранила изменения
дирти снова становится False
...
Рейтинг: 0 / 0
09.04.2004, 15:49
    #32475786
faint
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вопрос по dirty
мда, в данном случае сохранение записи при закрытии формы мне мешает :(
мне надо закрывать форму с проверкой изменений на ней, какое событие отлавливать?
...
Рейтинг: 0 / 0
09.04.2004, 15:52
    #32475794
Лох Позорный
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вопрос по dirty
ну и используй событие Dirty
...
Рейтинг: 0 / 0
09.04.2004, 15:57
    #32475804
faint
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вопрос по dirty
как, если закрытие формы всегда возвращает me.dirty=false ?
...
Рейтинг: 0 / 0
09.04.2004, 15:59
    #32475807
АлексейК
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вопрос по dirty
путаешь dirty и OnDirty
...
Рейтинг: 0 / 0
09.04.2004, 19:05
    #32476140
e_basil
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вопрос по dirty
Form_UnLoad
...
Рейтинг: 0 / 0
20.04.2004, 14:51
    #32487913
faint
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вопрос по dirty
возвращаюсь к вопросу...
как закрыть форму не сохраняя изменений в записи?
к e_basil :
при Unload можно отменить закрытие формы, но отмену сохранения записи нельзя.
каким-то хитрым образом access успевает сохранить запись
к АлексейК :
dirty и OnDirty по тем же причинам применять не получается.

или я опять чего путаю?
...
Рейтинг: 0 / 0
20.04.2004, 14:55
    #32487917
Hummer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вопрос по dirty
2 faint
Access хитрым образом сохранит запись если перешли в подчинённую форму из главной, к примеру или произвели ещё какие-либо действия, которые ПРИВЕЛИ к сохранению записи. Исходя из этого - внимательно смотришь, что делаешь со своей формой.
...
Рейтинг: 0 / 0
20.04.2004, 15:02
    #32487931
faint
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вопрос по dirty
почему сохраняется запись понятно, не понятно КОГДА, чтобы можно было перехватывать это сохранение. и возможно-ли его вообще перехватывать
...
Рейтинг: 0 / 0
20.04.2004, 15:04
    #32487934
Лох Позорный
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вопрос по dirty
когда, когда...

BeforeUpdate

F1
...
Рейтинг: 0 / 0
20.04.2004, 15:04
    #32487935
Hummer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вопрос по dirty
2 faint
Ты хочешь, чтобы я это понял не видя формы?:)
Я предложил способ решения - каждый в силах им воспользоваться.
По шагамтрудно операции пройти?:)
...
Рейтинг: 0 / 0
20.04.2004, 15:06
    #32487942
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вопрос по dirty
Если бы вопрос был не когда, а где, то Лох нашел бы другую рифму.
...
Рейтинг: 0 / 0
20.04.2004, 16:28
    #32488185
J_Q
J_Q
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вопрос по dirty
2 faint
Сам мучаюсь с такой же траблой.
Сделал Private переменную которай на Form_Dirty становиться False
То есть даннае в форме измененны.
Но дело в том что если юзерь тыкает на крест формы, то мы можем перехватить закрытие формы либо в Unload либо в CLose однако уже поздно
чтобы откатить сделанные изменения, так как для Me.Undo уже слишком поздно, форма сохраняет все изменения до Unload делая me.Dirty=False
И алес! Выход пока вижу один убирать кнопку закрытия с формы и делать свою. Однако юзверя привыкли к крестику на окне.
Что делать?
...
Рейтинг: 0 / 0
20.04.2004, 16:53
    #32488267
J_Q
J_Q
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вопрос по dirty
Поделитесь опытом, как реализовать откат.
К примеру у нас есть одиночная форма.
На форме несколько связанных с данными полей.
Делаем две кнопки на форме "Сохранить" и "Отмена"
И та и другая закрывает форму.
Только кнопка "Сохранить" перед закрытием делает
Me.Dirty=False
а кнопка "Отмена" Me.Undo
Вопрос как сделать чтобы крестик на форме закрывал форму не сохраняя записи, т.е. так же как кнопка "Отмена"
Спасибо.
2 faint сорри что в твоем топике однако вопросы у нас схожи.
...
Рейтинг: 0 / 0
20.04.2004, 17:08
    #32488333
Polev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вопрос по dirty
Убери крестик с формы... LOL
...
Рейтинг: 0 / 0
20.04.2004, 17:14
    #32488359
J_Q
J_Q
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вопрос по dirty
2 Polev
завали!!
Крест надо оставить!
...
Рейтинг: 0 / 0
20.04.2004, 17:17
    #32488373
faint
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вопрос по dirty
я сделал так:
сохранить
If IsNull(Me.Fld1) Then
MsgBox "не заполнено"
ElseIf IsNull(Me.Fld2) Then
MsgBox "не заполнено"
Else
DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70
End If
и форму я не закрываю

отмена
Me.Undo
DoCmd.Close

закрыть окно (крестик)
Private Sub Form_BeforeUpdate(Cancel As Integer)
(спасибо ЛП)
If Not IsNull(Me.Fld1) And _
Not IsNull(Me.Fld2) And Then
If MsgBox("сохранить изменения?", vbYesNo) = vbYes Then
Exit Sub
Else
Me.Undo
End If
End If
Me.Undo
End Sub
...
Рейтинг: 0 / 0
20.04.2004, 17:23
    #32488392
J_Q
J_Q
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вопрос по dirty
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
Private Sub Form_BeforeUpdate(Cancel As Integer) 
(спасибо ЛП) 
If Not IsNull(Me.Fld1) And _ 
Not IsNull(Me.Fld2) And Then 
If MsgBox( "сохранить изменения?" , vbYesNo) = vbYes Then 
Exit Sub 
Else 
Me.Undo 
''''''''''
'Не понял! У меня тоже самое однако Undo не срабатывает! Проверь плиз!
'Может несмотря на то что жмен NO изменения всеж сохранились?
''''''''''
End If 
End If 
Me.Undo 
End Sub
...
Рейтинг: 0 / 0
21.04.2004, 09:19
    #32488894
faint
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вопрос по dirty
а у тебя точно Form_BeforeUpdate ?
...
Рейтинг: 0 / 0
21.04.2004, 11:59
    #32489314
J_Q
J_Q
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вопрос по dirty
Блин! Я ступил сорри...
спасибо!
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / вопрос по dirty / 21 сообщений из 21, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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