Гость
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Вопрос по ADO рекордсету (задержка обновления данных) / 6 сообщений из 6, страница 1 из 1
07.09.2017, 10:25
    #39517060
Mant1s0
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по ADO рекордсету (задержка обновления данных)
Всем добрый день.

Возникла необходимость перехода от DAO рекордсетов к ADO, столкнулся со следующей проблемой - если я вношу изменения в RS, и сразу после этого обновляю форму, в которой присутствуют измененные записи, я не вижу изменений.
Решается это с помощью задержки в коде - но это сильно понижает быстродействие. Можно как-то это решить по-другому? В ADO таких проблем нет.
...
Рейтинг: 0 / 0
07.09.2017, 11:15
    #39517155
`
`
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по ADO рекордсету (задержка обновления данных)
Mant1s0,

Это решает проблему
(Оставляя за скобками всю нерациональность подхода)

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
Private Sub Кнопка1_Click()
    Dim ADOConn As New ADODB.Connection
    Dim ADORec As New ADODB.Recordset
    Dim ADORec2 As New ADODB.Recordset
  
    ADOConn.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0; Data Source= " & CurrentDb.Name & ";"
    ADOConn.Open
    Set ADORec.ActiveConnection = CurrentProject.Connection 'ADOConn
    ADORec.LockType = adLockOptimistic
    ADORec.CursorType = adOpenKeyset
    ADORec.Source = "tbl_Groups"
    ADORec.Open
      
    ADORec.AddNew
    NewGroupID = ADORec.Fields("GroupID").Value
    ADORec.Update
    
    ADORec.Close
    Set ADORec = Nothing
    
    Set ADORec2.ActiveConnection = CurrentProject.Connection 'ADOConn
    ADORec2.LockType = adLockOptimistic
    ADORec2.CursorType = adOpenKeyset
    strSQL = "SELECT * FROM tbl_Products WHERE CB = TRUE"
    ADORec2.Source = strSQL
    ADORec2.Open
    
    ADORec2.MoveLast
    ADORec2.MoveFirst
    
    rsCount = ADORec2.RecordCount
    
    For i = 1 To rsCount
        ADORec2.Fields("GroupID") = NewGroupID
        ADORec2.Fields("CB") = False
        ADORec2.Update
        ADORec2.MoveNext
    Next
    ADORec2.Close
    Set ADORec2 = Nothing
    
    
    
    'пауза
    
    Me.Requery
    DoCmd.OpenForm "frm_GroupCard", acNormal, , "GroupID = " & NewGroupID
End Sub
...
Рейтинг: 0 / 0
07.09.2017, 11:33
    #39517188
Mant1s0
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по ADO рекордсету (задержка обновления данных)
`,

Все работает, спасибо.
Правильно ли я понимаю, что после переноса таблиц на MS SQL проблема вернется?
...
Рейтинг: 0 / 0
07.09.2017, 12:27
    #39517253
`
`
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по ADO рекордсету (задержка обновления данных)
Mant1s0,

На сервере, оформь все эти "приседания" по созданию групы и переносу элементов в одну ХП, и никаких проблем не будет
...
Рейтинг: 0 / 0
07.09.2017, 12:59
    #39517288
Mant1s0
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по ADO рекордсету (задержка обновления данных)
`,

Ок. Спасибо.
А в чем суть описанной выше проблемы?
...
Рейтинг: 0 / 0
07.09.2017, 13:14
    #39517311
`
`
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по ADO рекордсету (задержка обновления данных)
Mant1s0А в чем суть описанной выше проблемы?Коротко - разные коннекшионы, в которых открыты твои рекордсеты в ВБА и рекордсет формы
Тут, подробней - Почти FAQ. Не работает, начинаем отлаживать - работает
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Вопрос по ADO рекордсету (задержка обновления данных) / 6 сообщений из 6, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]