powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Отмена изменений
16 сообщений из 16, страница 1 из 1
Отмена изменений
    #32292074
Koenig
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот, поставили задачу: Есть список предприятий, по кнопке информация о предприятии открывается в отдельной форме. Там инфа правится, и форма закрывается по кнопке. Так вот, сказано сделать вторую кнопку - отмена изменений. Все бы ничего (Использовал Me.Undo), но на энтой форме около 15 связаных форм (и каждая привязана к своей таблице). На них это Undo не действует. Кто подскажет, как быть?
Форму делали без всеких Recordset, прямо перетаскивая поля и вставляя подчиненные формы, привязанные к таблицам.
Koenig
...
Рейтинг: 0 / 0
Отмена изменений
    #32292076
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
А что-нибудь такого типа?

Dim c As Control
For Each c In Me.Controls
If TypeOf c Is SubForm Then c.Form.Undo
Next
...
Рейтинг: 0 / 0
Отмена изменений
    #32292077
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вариант (пожалуй, самый простой)
Коль скоро информация о предприят ии (не придприятиях), можно перед редактированием делать копии записи из главной таблицы и записей из подчиненных в новые записи с каким-то специальным кодом/флагом. Правишь именно эти временные записи, а по нажатию кнопки либо затираешь ими старые данные, либо просто трешь их.
...
Рейтинг: 0 / 0
Отмена изменений
    #32292181
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гео, твой вариант не самый простой.
Копировать данные во временные таблицы (или в основные в каким-нибудь флагом) а потом в транзакции реплицировать изменения в основное хранилище - это конечно хорошо. Только надо предусмотреть возможность одновременной правки одних данных разными пользователями. Ничего сложного, но лишний гемор.

Koenig писал:Форму делали без всеких Recordset, прямо перетаскивая поля и вставляя подчиненные формы, привязанные к таблицам.
Вот лучше бы сделал со всякими Recordset. Тебе же проще будет.
Пример есть в Гетце.
...
Рейтинг: 0 / 0
Отмена изменений
    #32292187
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У него подформы, изменения в которых, насколько я понял, тоже надо откатывать. А подформы связаны с таблицами. Так что, если вопрос не поменяется, это не худший вариант.
...
Рейтинг: 0 / 0
Отмена изменений
    #32292190
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гео писал:Так что, если вопрос не поменяется, это не худший вариант.
Это ты про вариант с временным хранилищем или про вариант с Me.Recordset?
Хотя по фигу. Варианты-то равноценные
В случае с временным хранилищем нужно озаботится многопользовательским режимом, в случае с рекордсетами - вручную синхронизировать подчиненные формы с главной.
...
Рейтинг: 0 / 0
Отмена изменений
    #32292307
Koenig
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попробую с вариантом Владимира Саныча - поскольку переделывать всю чужую прогу нет ни сил, ни желания. О результатах доложу :)
...
Рейтинг: 0 / 0
Отмена изменений
    #32292320
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можешь даже не пробовать. Не получится.
В подчиненной форме все уже давным давно обновилось и в базу записалось - как только ты куда-нибудь в главной/другой подчиненной кликнул.
...
Рейтинг: 0 / 0
Отмена изменений
    #32292326
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>Попробую с вариантом Владимира Саныча

Вариант Саныча, отменит еще не сохраненые изменения. Т.е. откатит только последнюю измененую строку некой форму (субформы) ибо при потери фокуса (выхода из формы) запись сохраниться автоматом и никакой UNDO не поможет. Вариант Лоха-Гетца :) позволит отменить все, что произошло с момента начала правки/вставки/удаления за счет использования транзакций. Только и здесь могу быть грабли: не знаю потянет ли ядро Jet транзакции по 15 связанным + 1 главная формам - ибо "You can nest transactions up to five levels deep"
...
Рейтинг: 0 / 0
Отмена изменений
    #32292329
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
АпАздАл
...
Рейтинг: 0 / 0
Отмена изменений
    #32292347
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Сенин Виктор
Мало ли что 15 подчиненных форм. Ну будет у тебя 15 рекордсетов, открытых в одном Connection/Workspace, и изменяющихся в одной транзакции (а не в 15-и)
...
Рейтинг: 0 / 0
Отмена изменений
    #32292352
Koenig
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>Dim c As Control
>For Each c In Me.Controls
>If TypeOf c Is SubForm Then c.Form.Undo
>Next
- не помогло... к сожалению. Ошибок нет, но и все изменения остались. Забыл сказать, что в эти подчиненные формы для каждого предприятия вносится несколько записей. Грустно. Придется, видимо, переделывать всю прогу.
...
Рейтинг: 0 / 0
Отмена изменений
    #32292363
Koenig
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так, ладно. Дайте, плиз, ссылочку на то, как с помощью Recordset'ов это дело провернуть (примерчик или описание). С Акцессом так плотно столкнулся первый раз, думал кавалерийским наскоком решить... Тут упоминался некий Гетц - есть ли в Инете эта книга? Заранее благодарен
Koenig
...
Рейтинг: 0 / 0
Отмена изменений
    #32292388
АлексейЕ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
http://am.rusimport.ru/MSAccess/f2.aspx?type=1&id=4602
Но если MSA 97, то в нем это не возможно.
...
Рейтинг: 0 / 0
Отмена изменений
    #32292395
Koenig
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Большое спасибо за ссылочку, щас попробуем.
...
Рейтинг: 0 / 0
Отмена изменений
    #32292425
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2ЛП
>Ну будет у тебя 15 рекордсетов, открытых в одном Connection/Workspace

Утешил. Никогда по такому кол-ву транзакций не делал. Правда как-то давным давно пытался сделать чудо-обновление - обломался на этой ошибке. Вот и в спомнилось. Хорошо есть кому поправить :)
...
Рейтинг: 0 / 0
16 сообщений из 16, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Отмена изменений
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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