Гость
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Переход по записям ADO / 11 сообщений из 11, страница 1 из 1
26.06.2018, 09:12
    #39665698
tzarluk
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Переход по записям ADO
Дорого времени суток коллеги!
При переходе с DAO на ADO не могу настроить переход к нужной записи на разделённой форме после вставки новой строки в таблицу. Источник записей вьюшка на сервере, одним из источников которой является таблица в которую добавили запись.
Пытаюсь реализовать в следующем виде:
Код: vbnet
1.
2.
3.
4.
5.
6.
Forms!glform2.RecordSource = Forms!glform2.RecordSource
  Forms!glform2.Recordset.Requery
  Forms!glform2.OrderBy = "[№ п/п]"
  Forms!glform2.OrderByOn = True
  Forms!glform2.Recordset.MoveLast
  Forms!glform2.Recordset.Find "[ЛС_абонента] = '" & Me.ls_ab & "'", , adSearchBackward



Forms!glform2.Recordset.MoveLast перемещает курсор не на последнюю запись

Не могу понять в чём дело
...
Рейтинг: 0 / 0
26.06.2018, 09:22
    #39665704
tzarluk
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Переход по записям ADO
Пробывал на кнопку повесить DoCmd.GoToRecord , , aсLast фокус смещается на одну запись выше каждый раз при нажатии
...
Рейтинг: 0 / 0
26.06.2018, 09:23
    #39665706
tzarluk
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Переход по записям ADO
в DAO
Код: vbnet
1.
2.
Forms!glForm2.Requery
  Forms!glForm2.Recordset.FindLast "[ЛС_абонента] = '" & Me.ls_ab & "'"

работало идеально
...
Рейтинг: 0 / 0
26.06.2018, 09:43
    #39665717
Панург
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Переход по записям ADO
tzarlukс DAO на ADOнипонял, а где и как совершён этот переход?
Насколько я помню, разделённые формы только в новом формате базы, но новый формат базы никоим образом не поддерживает форматы проектов. В форматах проектов источник формы набор записей ADO, а источник данных разделённой формы набор DAO. Можно конечно и ADO засунуть в форму, но не таким образом
tzarluk
Код: vbnet
1.
Forms!glform2.RecordSource = Forms!glform2.RecordSource



Я где-то чего-то упустил?
...
Рейтинг: 0 / 0
26.06.2018, 10:14
    #39665754
Переход по записям ADO
Метод Find в ADO имеет еще один аргумент - включать текущую запись в поиск или нет. Вы не включаете.
tzarluk
Код: vbnet
1.
2.
Forms!glform2.RecordSource = Forms!glform2.RecordSource
Forms!glform2.Recordset.Requery

Каждая из этих строчек приводит к перезапросу, поэтому одна из них - лишняя.
...
Рейтинг: 0 / 0
26.06.2018, 10:41
    #39665791
Joss
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Переход по записям ADO
Особенности.
Формы в базах Access основаны на DAO. А вот в проектах, на ADO. Как-то можно узнать, на каком способе основана форма: DAO или ADO. Где-то тут на форуме было. Сейчас не вспомню.
Что-то у Вас не так. Что Вам вообще-то надо? Перейти на последнюю запись? Или найти определённую?
...
Рейтинг: 0 / 0
26.06.2018, 10:50
    #39665806
Joss
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Переход по записям ADO
Нашел, как определить тип рекордсета
Код: sql
1.
2.
3.
4.
5.
If TypeOf rst Is DAO.Recordset Then
    MsgBox "DAO Recordset"
ElseIf TypeOf rst Is ADODB.Recordset Then
    MsgBox "ADO Recordset"
End If



Предлагаю посмотреть вот это Ленточная форма и закладки Тут есть о перемещении по записям и о добавлении и удалении записей в ленточной форме.
...
Рейтинг: 0 / 0
29.06.2018, 18:21
    #39667720
medium
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Переход по записям ADO
Упорно продвигаю решение
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
Public Sub MyGotoRecord(TmpForm As Form, FindCriteria As String)
Dim TmpBookmark As Variant
On Error Resume Next
On Error GoTo Err_Handler
TmpForm.Recordset.Filter = FindCriteria
Err.Clear
If TmpForm.Recordset.EOF Then
    TmpForm.Recordset.Filter = ""
    Exit Sub
End If
TmpBookmark = TmpForm.Recordset.Bookmark
TmpForm.Recordset.Filter = ""  
TmpForm.Recordset.Move 0, TmpBookmark
Exit_Handler:
    Exit Sub
Err_Handler:
    MsgBox "MyGotoRecord:" & Err.Description
    Resume Exit_Handler
End Sub



А вызов такой:
Код: vbnet
1.
Call MyGotoRecord(Me, "ID=" & NewId)




Если не в тему, или криво, прошу извинить.
...
Рейтинг: 0 / 0
29.06.2018, 19:08
    #39667723
Панург
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Переход по записям ADO
medium, как утверждают авторитетные источники (Гетц и Со) применение фильтров к набору ADO не продуктивно и эффективней переоткрыть набор с фильтрацией в запросе.
...
Рейтинг: 0 / 0
29.06.2018, 19:31
    #39667726
medium
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Переход по записям ADO
Это достаточно часто встречающийся ход обсуждения: участник спрашивает - как перейти к записи. Ему отвечают: переходить к записи не надо, а надо отфильтровать и получить новый набор....
Я не берусь судить: что нужно инициатору, а даю по мере разумения предложения по решению первоначального вопроса.
...
Рейтинг: 0 / 0
29.06.2018, 19:37
    #39667727
Панург
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Переход по записям ADO
medium, гм... первый раз слышу.
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Переход по записям ADO / 11 сообщений из 11, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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