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

 

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

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

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

ник: ЛМВ
Исходные данные:
(версия: ACCESS - 2003 SP1)
Есть две формы: "фрм_Договор" (режим форма) и "фрм_Договора" (реж. табл.)
Переход по записям форм - происходит синхронно с пом. кода (приведу ниже)
При внесении изменений в форму "фрм_Договор" и переходе на след. запись в этой же форме - все работает.
При внесении изменений в форму "фрм_Договор" и переходе на след. запись с помощью второй формы, "фрм_Договора" - происходит сбой.
Выдается сообщение:
Run-time error '-2147352567 (80020009)': Upate или CancelUpdate без AddNew или Edit

Ошибка фиксируется в модуле формы "фрм_Договор", в событии Form_BeforeUpdate.

Идея была такая:
При выборе в "фрм_Договора" любой записи, происходит переход на ту же запись в "фрм_Договор". Если активная до этого запись была изменена, то предварительно в форме "фрм_Договор" происходит событие Form_BeforeUpdate, при котором кое-какие поля в "фрм_Договор" меняются (время сохранения записи, например). Но это изменение некоторых полей и приводит к возникновению указанной выше ошибки

Код синхронизации:

Sub procСинхронизация(ИмяФормы As String, _
ИскомыйКод As Long, _
ИмяПоляГдеИскатьКод As String)
Dim frm As Form
On Error Resume Next
Set frm = Forms(ИмяФормы)
If Err.Number = 0 Then
With frm.RecordsetClone
.FindFirst ИмяПоляГдеИскатьКод & "=" & ИскомыйКод
If .NoMatch = False Then
frm.Bookmark = .Bookmark
End If
End With
Else
' MsgBox "Ошибка №" & Err.Number & vbCrLf _
' & Err.Description
Err.Clear
End If
Set frm = Nothing
End Sub


Ваше имя:

Пароль:

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

Сообщение:

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

Прикрепить:

 

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