Форумы HiProg.com - MS ACCESS, VBA, VB

 

Ответить на сообщение

Вернуться к теме

Вы отвечаете на сообщение:

ник: Дядя Федор
Вопрос в том, что отменять и сколько.
1.Отменить изменения
2.Отменить удаления записей
3.Отменить добавленные записи.
Если полей и изменений немного можно использовать свои методы необязательно с таблицами.

Если много - транзакции.Но.
Транзакции, если я не ошибаюсь, не отменяют удаление, а также не позволяют обновлять форму при добавлении, если только она не табличная. Нет?

Пример без транзакций.
На форме поля DataPr, KolOtgr (Дата и Количество)


Dim idnew As String, idnewizm As String
Private Sub DataPr_AfterUpdate()
idnewizm = idnewizm & ";" & Me.IdPred & ";" & Me.DataPr & ";" & Me.KolOtgr & ";" 
'Me.IdPred - Id 
 Me.Requery
End Sub
Private Sub KolOtgr_AfterUpdate()
idnewizm = idnewizm & ";" & Me.IdPred & ";" & Me.DataPr & ";" & Me.KolOtgr & ";"
Me.Requery
End Sub
....
На добавление записи
...
idnew = idnew & Me.IdPred & ";"
....
На кнопку "Отменить" вызов проц. OTKAT:
Public Sub OTKAT()
Dim rst As DAO.Recordset, j As Integer, vmasdel As Variant, jj As Integer
Me.RecordSource = Me.RecordSource 'это для подч формы можно не применять
On Error GoTo errortkat
'Отменяем добавленные записи
If idnew <> "" Then
vmasdel = Split(idnew, ";")
Set rst = Me.RecordsetClone
 With rst
 If .RecordCount > 0 Then
 .MoveFirst
  For j = 0 To UBound(vmasdel) - 1
   .FindFirst "IdPred=" & vmasdel(j)
   .Delete
  Next j
 End If
 End With
End If
Me.Requery: Me.Refresh
Set rst = Nothing
idnew = ""
''Отменяем изменения в записях
If idnewizm <> "" Then
vmasdel = Split(idnewizm, ";")
Set rst = Me.RecordsetClone
 With rst
 .MoveFirst
   'IdPred
  For j = 1 To UBound(vmasdel) - 1 Step 3
   .FindFirst "IdPred=" & vmasdel(j)
   .Edit
   !DataPr = vmasdel(j + 1)
   !KolOtgr = vmasdel(j + 2)
   .Update
  Next j
 End With
 Set rst = Nothing
 idnewizm = ""
 End If

Me.Requery
On Error Resume Next
DoCmd.GoToRecord , , acLast
Exit Sub
errortkat:
MsgBox "Err" & "тартаата"
End Sub


Ваше имя:

Пароль:

Цитировать: [quote][/quote] Код: [code][/code]
Жирный: [b][/b] Наклонный: [i][/i]
URL: [url][/url] 

Сообщение:

 Размер файла не более 50 Кбт. Большие файлы можно размещать на www.slil.ru

Прикрепить:

 

Для вставки смайлов в текст щелкните по значку.