-Поиск по дневнику

Поиск сообщений в rss_sql_ru_access_programming

 -Подписка по e-mail

 

 -Постоянные читатели

 -Статистика

Статистика LiveInternet.ru: показано количество хитов и посетителей
Создан: 16.03.2006
Записей:
Комментариев:
Написано: 4


отвязаный рекордсет

Четверг, 27 Февраля 2014 г. 18:27 + в цитатник
Приветствую, уважаемые форумчане!

Начитавшись об "отвязаном рекордсете" склепал форму. На форму положил подчиненную. На загрузку главной ставлю процедуру:

Private Sub Form_Load()
Dim S As String
Dim Sf As String
Sf = "KodDv= " & Forms!frm_Glavnaya!ID & " And ID <= " & CStr(ID)
    S = "SELECT DCount(""ID"",""tb_DannyhSub"", """ & Sf & """) AS npp, tb_DannyhSub.ID, tb_DannyhSub.KodDv, "
    S = S & "tb_DannyhSub.KodMater, tb_DannyhSub.Kolvo, tb_DannyhSub.Cena, tb_DannyhSub.Summa, tb_DannyhSub.RecAdd, tb_DannyhSub.OprAdd, "
    S = S & "tb_DannyhSub.RecEdit, tb_DannyhSub.OprEdit FROM tb_DannyhSub "
    S = S & "WHERE tb_DannyhSub.KodDv = " & [Forms]![frm_Glavnaya]![ID]
    S = S & " ORDER BY tb_DannyhSub.ID;"

    Set mrst = CreateObject("ADODB.Recordset")
    mrst.CursorLocation = adUseClient '3
    mrst.Open S, CurrentProject.AccessConnection, 3, adLockBatchOptimistic ', 4
    mrst.ActiveConnection = Nothing
    Set Forms("frm_Glavnaya")("frm_GlavnayaSub").Form.Recordset = mrst
End Sub


Форма отрабатывает нормально: запускается, отображает данные, возможно редактирование данных в форме.
Для выхода из формы без сохранения код:

Private Sub bnCancel_Click()
    mrst.Close
    Set mrst = Nothing
    DoCmd.Close
End Sub


Команда отрабатывает без проблем.
Для выхода из формы с сохранением код:

Private Sub bnSave_Click()
On Error GoTo Err_bnSave_Click
Set mrst.ActiveConnection = CurrentProject.AccessConnection 
mrst.UpdateBatch
mrst.Close
Set mrst = Nothing
Exit_bnSave_Click:
DoCmd.Close
    Exit Sub
Err_bnSave_Click:
    MsgBox Err.Description
    Resume Exit_bnSave_Click
End Sub

И вот тут варианты:
1) если в подчиненную форму никаких изменений не вносилось, то код отрабатывает нормально.
2) если в подчиненную форму внесены изменения, то получаю ошибку "Не удается найти строку для обновления. Некоторые значения могли быть изменены со времени ее последнего чтения".

Что делать ума не приложу. Помогите пожалуйста.

http://www.sql.ru/forum/1079897/otvyazanyy-rekordset


 

Добавить комментарий:
Текст комментария: смайлики

Проверка орфографии: (найти ошибки)

Прикрепить картинку:

 Переводить URL в ссылку
 Подписаться на комментарии
 Подписать картинку