LEADERSOFT.ru
Разработка на заказ программ и сайтов
Разработка
Заказ программы
Прайс-лист
Техническое задание
Проектная документация
Наши клиенты
Реклама и продвижение
Магазин
Перейти в магазин
Новинки магазина
Бизнес программы
Финансовый учет
Документооборот
Исходные коды
Интернет решения
Обучение
Перейти в раздел
Форумы по разработке
Примеры на Access
Рассылка статей
Магазин IT литературы
Блог
Все статьи
Microsoft Access (VBA)
Microsoft Access (Проекты)
Microsoft ASP.NET
Сервисы Google
Технические задания
Новости IT технологий
Сервисы
Форумы разработчика
Контакты
О компании
Регистрация на сайте
Подписка на новости по Email
Сообщество Google+
Подписка subscribe.ru
Новости в формате Атом
Загрузить
Загрузить каталог программ
Форумы по информационным технологиям
Начало
Forums
Регистрация
|
Вход
Forums
Обновлено ::
06 февраля 2005
Форумы
Поиск
Список форумов
Программирование
Microsoft Access. Файлы mdb и accdb
Тема: Как после...
Тема: Как после редактирования вернуться к исходному?
15.06.2007 21:09:19
OIaf
21 сообщения
Тема: Как после редактирования вернуться к исходному?
MS SQL Server + MS Access.
Есть форма ввода данных. По нажатию ОК формируются записи в таблицах. Все это оформлено транзакцией с откатом в случае ошибок.
В этой же форме есть табличная форма, содержащая "шаблоны" создаваемых строк (получена запросом из таблицы Шаблонов).
Хочется, чтобы шаблоны были доступны для редактирования, но можно было отказаться от их обновления в таблице Шаблоны.
Например так: создаем рекордсет табличной формы, как-то отсоединяем его от источника, используем, при необходимости проводим синхронизацию с источником.
Есть ли такие механизмы?
P.S. Общий раздел по формам
Автор:
Olaf
от 16.04.2005 15:11:05
Источник ...
15.06.2007 21:09:20
All
4316 сообщения
RE: Как после редактирования вернуться к исходному?
Написал такое:
Dim cnnP As ADODB.Connection
Dim rstP As ADODB.Recordset
Private Sub Form_Open(Cancel As Integer)
Set cnnP = New ADODB.Connection
Set rstP = New ADODB.Recordset
Set cnnP = CurrentProject.Connection
cnnP.CursorLocation = adUseClient
rstP.Open "dbo.Тарифы", cnnP, adOpenStatic, adLockBatchOptimistic
Set rstP.ActiveConnection = Nothing
Set Me.Recordset = rstP
End Sub
Все вроде бы отлично, но изменения в табличной форме не передаются в рекордсет:(
Если после редактирования данных в табличной форме запустить:
Private Sub Form_Close()
'Set rstP = Me.RecordsetClone - ни на что не влияет
Set rstP.ActiveConnection = cnnP
rstP.UpdateBatch
End Sub
данные в таблице-истоячнике не обновляются.
Т.е. получается, что нужно писать обработчик на изменение каждого поля табличной формы?
P.S. Общий раздел по формам
Автор:
Olaf
от 0:00:00
Источник ...
15.06.2007 21:09:20
All
4316 сообщения
RE: Как после редактирования вернуться к исходному?
Вот этот код с тракзакциями работает. Проверено на Northind. Надо только таблицу Customers переименовать в tblCustomer. (Источник 2 том Access 2000, 7 глава, Литвин,Гетц,Гилберг)
Private mfDirty As Boolean
Private mfPendingChanges As Boolean
Private mcnnMain As New ADODB.Connection
Private mrstCustomers As New ADODB.Recordset
Private Sub Form_AfterDelConfirm(Status As Integer)
If Not mfPendingChanges Then
mfPendingChanges = (Status = acDeleteOK)
End If
End Sub
Private Sub Form_AfterUpdate()
mfPendingChanges = True
End Sub
Private Sub Form_Delete(Cancel As Integer)
If Not mfDirty Then
mcnnMain.BeginTrans
mfDirty = True
End If
End Sub
Private Sub Form_Dirty(Cancel As Integer)
If Not mfDirty Then
mcnnMain.BeginTrans
mfDirty = True
End If
End Sub
Private Sub Form_Open(Cancel As Integer)
mcnnMain.ConnectionString = CurrentProject.Connection
mcnnMain.Open
mrstCustomers.Open "SELECT * FROM tblCustomer", mcnnMain, adOpenKeyset, adLockOptimistic
Set Me.Recordset = mrstCustomers
End Sub
Private Sub Form_Unload(Cancel As Integer)
Dim intRet As Integer
If mfPendingChanges Then
intRet = MsgBox("Commit all changes?", vbYesNoCancel)
If intRet = vbYes Then
mcnnMain.CommitTrans
ElseIf intRet = vbNo Then
mcnnMain.RollbackTrans
Else
Cancel = True
End If
Else
If mfDirty Then
mcnnMain.RollbackTrans
End If
End If
Set mrstCustomers = Nothing
Set mcnnMain = Nothing
End Sub
P.S. Общий раздел по формам
Автор:
Admin
от 0:00:00
Источник ...
Страница 1 из 1
Программирование
Microsoft Access. Файлы mdb и accdb
Тема: Как после...
Одноуровневый вид
Древовидная структура
Самый старый из новых
Новейший из старых
Поиск
Список форумов
Начало
|
Forums
Copyright 2002-2016 Leadersoft.ru
::
Leadersoft
::
Соглашение о безопасности
::
Условия использования