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

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

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

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

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


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