powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Undo в подчиненной форме
25 сообщений из 41, страница 1 из 2
Undo в подчиненной форме
    #32319438
Фотография Vsevolod V
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Случайно наткнулся на жестокий баг в своей программе :(
На форме кнопка "Отмена" (Me.Undo) не отменяет изменения в подчиненной форме.
Пробовал добавить Me!SubForm.Form.Undo результат тот же :(
...
Рейтинг: 0 / 0
Undo в подчиненной форме
    #32319443
igor603
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно попробовать Forms!Customers!AmountPaid.OldValue
...
Рейтинг: 0 / 0
Undo в подчиненной форме
    #32319444
Фотография Vsevolod V
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тобишь цикл по всем контролам?!
Я надеюсь есть более простые пути :)
...
Рейтинг: 0 / 0
Undo в подчиненной форме
    #32319452
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Когда входишь в подчиненную форму - автоматом сохраняется (если она есть) запись главной. Когда выходишь из подчиненной формы в главную - сохраняется (опять же, если есть) запись подчиненной. А унду работает только до сохранения.
...
Рейтинг: 0 / 0
Undo в подчиненной форме
    #32319453
Фотография Vsevolod V
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
То есть заморачиваться с oldvalue?
...
Рейтинг: 0 / 0
Undo в подчиненной форме
    #32319517
igor603
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Еще есть пример у Гетца в 1 томе через транзакции.
...
Рейтинг: 0 / 0
Undo в подчиненной форме
    #32320633
Фотография Vsevolod V
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попробовал сделать так:
Код: plaintext
1.
2.
3.
4.
5.
6.
Dim c As Control
    
    For Each c In Me.Controls
        If c.ControlType = acTextBox Or c.ControlType = acComboBox Then
            c.Value = c.OldValue
        End If
    Next


Ошибка: "Операция не поддерживается для объектов этого типа"
...
Рейтинг: 0 / 0
Undo в подчиненной форме
    #32320638
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Всеволод, на чем кричит-то?
...
Рейтинг: 0 / 0
Undo в подчиненной форме
    #32320851
Фотография Vsevolod V
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ошибка: "Операция не поддерживается для объектов этого типа"
На форме было поле, в котором было включено свойство "Блокировка".

======
OldValue тоже не помогает - оно работает также как и Undo :(
...
Рейтинг: 0 / 0
Undo в подчиненной форме
    #32320857
Фотография Vsevolod V
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В этом случае можно создавать массив старых и новых значений, но что-то это меня сильно пугает :) Должны же быть более простые выходы! Или никто с этим не сталкивался? :)
...
Рейтинг: 0 / 0
Undo в подчиненной форме
    #32320986
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Самый простой способ и об нем уже писали - транзакции. Все остальное - от лукавого (особенно массив - попробуй без ошибок отследить удаленные, добавленные записи. Да если даже и отследишь - окажется придумал собственную реализацию тразакций - а нифига, если они уже есть и ими просто пользоваться?)
...
Рейтинг: 0 / 0
Undo в подчиненной форме
    #32321106
incold
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Насколько мне известно способов реализации такой проблемы несколько и они уже обсуждались, только немного с другой стороны.\r
Это называется многострочный документ, т.е. есть заголовок документа и по нему строки, сохранять или отменять нужно весь документ целиком.\r
\r
Решения (в зависимости от постановки задачи и условий у каждого свои "+" и "-"):\r
- главная и подчиненная форма открываются в одной транзакции (уже сказали - пример у Гетца)\r
- использование временных таблиц для записей подчиненной формы\r
- использование флага в документе (ввод закончен или нет) - во всех отчетах и выборках используются только завершенные документы, отдельный журнал по незавершенным.\r
\r
Обсуждалось здесь
...
Рейтинг: 0 / 0
Undo в подчиненной форме
    #32321942
Фотография Vsevolod V
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
пример у Гетца
Нету его у меня :(
...
Рейтинг: 0 / 0
Undo в подчиненной форме
    #32321970
incold
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
пример у Гетца


Хоть он (Гетц) есть у многих, но я не помню, чтобы на этом форуме кто-нибудь сказал, что сделал эту штуку и сказал, что она у него реально работает.

Лучше спросить/попросить не пример из Гетца, а пример (если такой есть) из рабочей программы. У меня такого нет.
...
Рейтинг: 0 / 0
Undo в подчиненной форме
    #32321974
Фотография Vsevolod V
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
incold
ОК :)
--------

ДАЙТЕ, ПОЖАЛУЙСТА, ПРИМЕР ИЗ РАБОЧЕЙ ПРОГРАММЫ :)
...
Рейтинг: 0 / 0
Undo в подчиненной форме
    #32321986
Фотография Vsevolod V
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Товарищи гиганты мысли, неужели никто не делает кнопочку "Отмена" на своих формах???
...
Рейтинг: 0 / 0
Undo в подчиненной форме
    #32322003
zz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну я делаю... Но я предварительно копирую запись в резерв, а если жмется отмена - то достаю из резерва... Вот так вот по рабоче-крестьянски...
...
Рейтинг: 0 / 0
Undo в подчиненной форме
    #32322012
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 zz
У тебя что, база однопользовательская? Или как?
Пользователь начал править строки документа (в общих данных), а другой пользователь преспокойненько видит все незавершенные изменения, сам что-нибудь может подправить... Причем первый пользователь жмет отмену и все изменения второго идут лесом...
...
Рейтинг: 0 / 0
Undo в подчиненной форме
    #32322013
zz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У меня - однопользовательская :))
...
Рейтинг: 0 / 0
Undo в подчиненной форме
    #32322029
Фотография Vsevolod V
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Лох Позорный
предложи что-нибудь, пожалуйста
...
Рейтинг: 0 / 0
Undo в подчиненной форме
    #32322213
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
так тут же уже предлогалось про транзакции....
поищи, не ленись
довольно подробно описывалось..
...
Рейтинг: 0 / 0
Undo в подчиненной форме
    #32323794
Фотография Vsevolod V
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попытался разобраться в транзакциях. Вот что получилось :)

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
Dim W As DAO.Workspace
    Dim R As DAO.Recordset
    Dim R2 As DAO.Recordset


Private Sub Form_Dirty(Cancel As Integer)
On Error Resume Next
Set W = DBEngine.Workspaces( 0 )
    Set R = CurrentDb.OpenRecordset( "select * from calc" )
    Set R2 = CurrentDb.OpenRecordset( "select * from cash" )
    
    Set Me.Recordset = R
    Set Me!f2.Form.Recordset = R2
    
    W.BeginTrans

End Sub

Private Sub Btn1_Click()
    W.Rollback
End Sub

Что здесь неправильно?
...
Рейтинг: 0 / 0
Undo в подчиненной форме
    #32323798
Фотография Axeleron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А откомпилировалось это? И нормально?
...
Рейтинг: 0 / 0
Undo в подчиненной форме
    #32324630
Фотография Vsevolod V
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А откомпилировалось это? И нормально?
То есть код составлен правильно?
-----

Работает мягко говоря через жопу. :(
Например, начинаю редактировать какое-либо из полей главной формы и сразу же это поле отчищается, т.е. мне нужно изменить строку, а в итоге я ввожу новую
...
Рейтинг: 0 / 0
Undo в подчиненной форме
    #32324639
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
да ни хрена не правильно
ты на открытии формы рекордсеты присваивай. а на Dirty только транзакцию начинай.
это раз.
...
Рейтинг: 0 / 0
25 сообщений из 41, страница 1 из 2
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Undo в подчиненной форме
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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