ник: helena_
Dim fld As ADODB.Field
Dim i As Integer
Dim ctl As Control
Dim frmCurr As Form
Dim cmd As ADODB.Command
Set cmd = New ADODB.Command
Dim prm As ADODB.Parameter
Set cnn = New ADODB.Connection
cnn.Open "file Name=" & CurrentProject.Path & "\соединение.udl"
Set рекодсет = New ADODB.Recordset
рекодсет.CursorLocation = adUseClient
рекодсет.LockType = adLockOptimistic
Rem рекодсет.Open "ХанимаяПроцедура", cnn, adOpenKeyset, adLockBatchOptimistic
Set cmd.ActiveConnection = cnn
cmd.CommandText = "ХанимаяПроцедура"
cmd.CommandType = adCmdStoredProc
Set рекодсет = cmd.Execute
из рекодсет (данные хран проц) заношу значен полей в свободную форму
Set frmCurr = Form_Свободная
For Each fld In рекодсет.Fields
For Each ctl In frmCurr
If ctl.Name = fld.Name Then
frmCurr(ctl.Name).Value = fld.Value
End If
Next ctl
Next fld
далее изменяю знач полей свободной формы и пытаюсь записать измененные данные в рекордсет
For Each fld In рекодсет.Fields
For Each ctl In frmCurr
If ctl.Name = fld.Name And ctl.Name <> "код" Then
рекодсет(ctl.Name).Value = frmCurr(ctl.Name).Value
рекодсет.UpdateBatch
End If
Next ctl
Next fld
Подскажите, почему если использовать
рекодсет.Open "ХанимаяПроцедура", cnn, adOpenKeyset, adLockBatchOptimistic
далее обновление рекодсет происходит нормально,
а если Set рекодсет = cmd.Execute, то выдается сообщение текущий объект не поддерживает обновление. Это связано с ограничением поставщика или с выбранным типом блокировки