Rambler's Top100
Форум: MS ACCESSVBVBA MS OfficeMS SQL server
Новые сообщения: 0000

Форум: MS ACCESS

Вопросы связанные с MS ACCESS

Обновить визитку
Участники «Online»
Все участники

 
 

Доброго времени суток, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: почему не происходит обновление в recordset
 
 автор: helena   (05.05.2011 в 12:06)   личное сообщение
 
 

2 базы. в одной свободная форма, в которую из другой базы закачиваются данные
Закачать данные в форму получается, а вот
из формы в recordset -нет Почему?

Private Sub сохранитьДанныеВФорму()
Dim Рекордсет As ADODB.Recordset
Set cnn = New ADODB.Connection
Dim fld As ADODB.Field
Dim i As Integer
Dim ctl As Control
Dim frmCurr As Form_ФормаБаза

CurrentProject.Path & "\Проба120411.mdb"
cnn.Open "file Name=" & CurrentProject.Path & "\соединениеБазаДляСвязи.udl"
Set Рекордсет = New ADODB.Recordset
Рекордсет.CursorLocation = adUseClient
Рекордсет.Open "select * from ФИО", cnn, adOpenKeyset, adLockBatchOptimistic
MsgBox Рекордсет.Fields(0)

Set frmCurr = Form_ФормаБаза
Рекордсет.AddNew

Рекордсет!имя = "новоеИмя"
Рекордсет.Update

  Ответить  
 
 автор: osmor   (05.05.2011 в 14:29)   личное сообщение
 
 

непонятно!
Не вижу где в данном коде есть попытка записать данные из формы в рекордсет.
строка "CurrentProject.Path & "\Проба120411.mdb" - должна вызывать ошибку

  Ответить  
 
 автор: helena   (05.05.2011 в 15:04)   личное сообщение
 
 

Private Sub загрузитьДанныеВФорму()
Dim Рекордсет As ADODB.Recordset
Set cnn = New ADODB.Connection
Dim fld As ADODB.Field
Dim i As Integer
Dim ctl As Control
Dim frmCurr As Form_ФормаБаза

cnn.Open "file Name=" & CurrentProject.Path & "\соединениеБазаДляСвязи.udl"
Set Рекордсет = New ADODB.Recordset

Рекордсет.Open "select * from ФИО", cnn, adOpenKeyset, adLockBatchOptimistic

Set frmCurr = Form_ФормаБаза

frmCurr.SetFocus

If Рекордсет.RecordCount > 0 Then

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
End If
Set cnn = Nothing
End Sub

Private Sub сохранитьДанныеВИзФормыВРекордсет()
Dim Рекордсет As ADODB.Recordset
Dim Рекордсет1 As ADODB.Recordset
Set cnn = New ADODB.Connection
Dim fld As ADODB.Field
Dim i As Integer
Dim ctl As Control
Dim frmCurr As Form_ФормаБаза
Rem On Error Resume Next

cnn.Open "file Name=" & CurrentProject.Path & "\соединениеБазаДляСвязи.udl"
Set Рекордсет = New ADODB.Recordset
Рекордсет.CursorLocation = adUseClient
Рекордсет.Open "select * from ФИО", cnn, adOpenKeyset, adLockBatchOptimistic
MsgBox Рекордсет.Fields(0)

Set frmCurr = Form_ФормаБаза

MsgBox Рекордсет.Supports(adAddNew)
MsgBox Рекордсет.Supports(adUpdate)

frmCurr.SetFocus

If Рекордсет.RecordCount > 0 Then
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
rem Рекордсет!имя = "новоеИмя"
Рекордсет.Update
End If
Next ctl
Next fld
End If
End Sub

  Ответить  
 
 автор: Анатолий (Киев)   (05.05.2011 в 16:21)   личное сообщение
 
 

Ва по шагам проверяли, заполнение новой записи данными из полей формы?
ИМХО, adLockBatchOptimistic преполагает UpdateBath вместо Update.

ЗЫ. Set frmCurr = Form_ФормаБаза - это не советую. Лучше Forms("ФормаБаза").

  Ответить  
 
 автор: helena   (05.05.2011 в 17:14)   личное сообщение
 
 

большое спасибочки, все заработало!

  Ответить  
HiProg.com - Технологии программирования
Rambler's Top100 TopList