powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Позиционирование формы на записи (A2000+MSSQL7)
27 сообщений из 27, показаны все 2 страниц
Позиционирование формы на записи (A2000+MSSQL7)
    #32062622
Вижу три варианта, первый не нравится, второй не пробовал, третий не работает, хотя должен. Кто из умных подскажет?
1. set rst=Me.RecordsetClone
rst.MoveFirst
rst.Find ...
Me.Recordset.Bookmark=rst.Bookmark
не нравится необходимость использования нового объекта Recordset, и сканирования его Find'ом

2. Me.Filter="..."
Me.FilterOn=true
Не совсем то, хотя и похоже.

3. Использование seek и index. Круто на MDB, но на подсоединённом к SQL-таблице Recordsete не катит. Хотя где-то было написано, что может катить.

Побросайте плиз гнилых помидорчиков, кому не лень, т.к. тема избитая наверное :-)
...
Рейтинг: 0 / 0
Позиционирование формы на записи (A2000+MSSQL7)
    #32062624
Забыл сказать:
дано ID записи (значение ключа).
...
Рейтинг: 0 / 0
Позиционирование формы на записи (A2000+MSSQL7)
    #32062649
klmnop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
упрощая первый вариант: Me.Recordset.Find "ID = strID", где strID переменная со значением искомого ИД.
...
Рейтинг: 0 / 0
Позиционирование формы на записи (A2000+MSSQL7)
    #32062661
Упрощение не катит, т.к. при этом на форме промаргиваются все записи, которые проходит Find. Т.е. использование Me.Recordset - это всё равно, что Tab'ом скакать по полям.
...
Рейтинг: 0 / 0
Позиционирование формы на записи (A2000+MSSQL7)
    #32062690
sFx_2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Но можно же использовать Application.Echo True/False. а вообще Сергей Вакшуль в похожей теме дал отличный ответ(ссылку)
...
Рейтинг: 0 / 0
Позиционирование формы на записи (A2000+MSSQL7)
    #32062693
klmnop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
усложняя упрощеный вариант:
Me.Painting = False
Me.Recordset.Find "ID = strID"
Me.Painting = True
...
Рейтинг: 0 / 0
Позиционирование формы на записи (A2000+MSSQL7)
    #32062713
Application.Echo и Me.Painting - это априори или из опыта?
>>вообще Сергей Вакшуль в похожей теме дал отличный ответ(ссылку)
искал полдня прежде чем задать вопрос, мало что нашел. А не могли бы указать этот топик (хоть примерно :-)
...
Рейтинг: 0 / 0
Позиционирование формы на записи (A2000+MSSQL7)
    #32062992
sFx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это конечно не совсем то, но тема близкая\r
/topic/11135
...
Рейтинг: 0 / 0
Позиционирование формы на записи (A2000+MSSQL7)
    #32063090
Спасибо за участие, но проблема вот какая вырисовалась окончательно (прежние вопросы были по ходу дела, сорри).
A2000 (ADO), MSSQL7
Форме даю ID - значение ключевого поля, и говорю - встань на него.
Варианты:
Код:
1.
2.
3.
4.
5.
   set rst=Me.RecordsetClone
   rst.MoveFirst
   rst.Find ...
   Me.Recordset.Bookmark=rst.Bookmark
   set rst=Nothing

Код:
1.
2.
3.
4.
   Me.Painting=false
   Me.Recordset.MoveFirst
   Me.Recordset.Find ...
   Me.Painting=true


Проблемы начинаются тогда, когда из другой формы происходит добавление данных, а этой форме говорю - перечитай данные, либо так: Me.Requery, либо так: RunCommand acCmdRefresh, либо даже так: Me.Recordset.Close: Me.Recordset.Open
После этого проблемы при позиционировании такие: на первом листинге на строчке set rst=Me.RecordsetClone Access вылетает с недопустимой операцией, на втором листинге форма становится не на ту запись, которую даю в ID - вообще непонятно почему.

Не подскажете кто умный, где грабли искать?
...
Рейтинг: 0 / 0
Позиционирование формы на записи (A2000+MSSQL7)
    #32063119
klmnop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
загляни
...
Рейтинг: 0 / 0
Позиционирование формы на записи (A2000+MSSQL7)
    #32063123
sFx_2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
а попробуйте Me.recordsource=Me.recordsource для обновления.

А вот и ссылку по Вашей теме нашел от того же Сергея Вакшуля :)
...
Рейтинг: 0 / 0
Позиционирование формы на записи (A2000+MSSQL7)
    #32063143
Где ссылка-то?
Если та, что дал klmnop, то я её уж смотрел, утром ещё.
...
Рейтинг: 0 / 0
Позиционирование формы на записи (A2000+MSSQL7)
    #32063152
Всё получилось вроде. Что закомментировано, то не работает, что откомментировано, то и работает.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
Me.Painting = False

Me.RecordSource = Me.RecordSource
'Me.Recordset.Close
'Me.Recordset.Open
   'Me.Requery
'RunCommand acCmdRefresh
   
   RunCommand acCmdRecordsGoToLast
   'DoCmd.GoToRecord , , acLast

Me.Recordset.MoveFirst
Me.Recordset.Find "ID=" & DBTV.CurrentID
    
'    Set rst = Me.RecordsetClone
'    rst.MoveFirst
'    rst.Find  "ID="  & DBTV.CurrentID
'    Me.Recordset.Bookmark = rst.Bookmark
'    Set rst = Nothing

Me.Painting = True


т.е. по подсказке sFx_2, уже ни во что не веря, попробовал Me.RecordSource = Me.RecordSource, и это единственное, как работает. DoCmd тоже работает, но мне RunCommand больше нравится. Через rst.Find тоже работает, но, по советам умных, решил Me.Recordset.Find использовать совместно с Me.Painting. Спасибо за совет!
Кстати, нигде ранее не упоминалось про MoveFirst перед Find - это обязательно, т.к. Find ищет начиная с текущей позиции, а после RunCommand acCmdRecordsGoToLast она на последней записи.

Чем всё же внутренне отличаются:
Me.Requery
Me.Recordset.Close/Open
RunCommand acCmdRefresh
Me.RecordSource = Me.RecordSource
???

Большое спасибо за помощь!
...
Рейтинг: 0 / 0
Позиционирование формы на записи (A2000+MSSQL7)
    #32063153
ну вот, а пишет форматирование сохраняется в листинге!
короче, комментированные строки - где штрих вначале, а не только те, которые зелёные!!!
...
Рейтинг: 0 / 0
Позиционирование формы на записи (A2000+MSSQL7)
    #32063155
Вот так, короче:

Me.Painting = False
Me.RecordSource = Me.RecordSource
RunCommand acCmdRecordsGoToLast
Me.Recordset.MoveFirst
Me.Recordset.Find "ID=" & DBTV.CurrentID
Me.Painting = True
...
Рейтинг: 0 / 0
Позиционирование формы на записи (A2000+MSSQL7)
    #32063177
sFx_2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Пардон, вот ссылка http://am.rusimport.ru/MsAccess/topic.asp?id=24
...
Рейтинг: 0 / 0
Позиционирование формы на записи (A2000+MSSQL7)
    #32063388
Спасибо, но там не о том речь.
Кстати, sFx и sFx_2 - это одно и то же?
...
Рейтинг: 0 / 0
Позиционирование формы на записи (A2000+MSSQL7)
    #32063440
ДиД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Почему не о том? Все о том.
...
Рейтинг: 0 / 0
Позиционирование формы на записи (A2000+MSSQL7)
    #32063484
Hora
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Что делать, если у меня не распознается команда Find. Т.е. me.recordset. и ничего не выпадает. При запуске, говорит, что не распознается свойство или метод.
Подскажите, плиз, что делать, может рекордсет как-то определить надо?
...
Рейтинг: 0 / 0
Позиционирование формы на записи (A2000+MSSQL7)
    #32063491
Вот что там:
....
'Обновим форму
frm.Requery
'Выберем все записи, перейдя на последнюю
DoCmd.GoToRecord acActiveDataObject, , acLast 'Нужно в adp
DoCmd.GoToRecord acActiveDataObject, , acFirst
'Выйдем на нужную запись
DoCmd.FindRecord strКлюч, acEntire, False, acSearchAll, False, acCurrent, True
'Прокрутим экран так, чтобы он занял тоже положение, что имел до обновления
....
Я frm.Requery пробовал, у меня не пошло даже вкупе с DoCmd.GoToRecord acActiveDataObject, , acLast (см. листинги выше)

А цимес там именно в: "...ДОБИТЬСЯ ТОГО, ЧТОБ ЭТА СТРОКА ЗАНЯЛА В ЭКРАНЕ ТОЖЕ ПОЛОЖЕНИЕ, ЧТО И ЗАНИМАЛА ДО ОБНОВЛЕНИЯ"
...
Рейтинг: 0 / 0
Позиционирование формы на записи (A2000+MSSQL7)
    #32063505
to Hora:
видимо, ты используешь DAO Recordset, у него метод поиска - FindFirst. Если твои таблицы в MDB (или прилинкованные) - используй FindFirst.
Напомню, что всё вышесказанное относится к связке Access2000+ADO+SQL Server.
...
Рейтинг: 0 / 0
Позиционирование формы на записи (A2000+MSSQL7)
    #32063514
Hora
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да, в данный момент я использую DAO. Но, ведь FindFirst найдет первую запись, или я не прав. Что делать если мне нужно отобразить какую-то определнную запись - например, ту которая была выбрана в предыдущей форме (обе формы построены на одной таблице). При этом нужен не фильтр, а именно пизиционирование с возможностью дальнейшего перехода по записям в этой второй форме.
Может нужно доустановить то, о чем вы говорите?
...
Рейтинг: 0 / 0
Позиционирование формы на записи (A2000+MSSQL7)
    #32063713
Hora
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Получилось. Могу поделиться.

Dim rst As Recordset
Dim strCriteria As String

strCriteria = "[Candidate_ID] Like '*" & Forms![Review]![Candidate_Id] & "*'"

Set rst = Me.RecordsetClone
rst.FindFirst strCriteria
Me.Bookmark = rst.Bookmark


Где "review" предыдущая форма. Отбор идет по полю "Candidate_ID"
...
Рейтинг: 0 / 0
Позиционирование формы на записи (A2000+MSSQL7)
    #32063883
Вы правы, FindFirst находит первую запись, соответствующую критерию запроса. Но если в критерии запроса используется ключ, то найденная запись будет и единственной.
Работайте со встроенной справкой - и у вас всё будет гораздо лучше и быстрее!
...
Рейтинг: 0 / 0
Позиционирование формы на записи (A2000+MSSQL7)
    #32064846
sFx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2Роман Ткачук: sFx_2 и sFx это одно и тоже лицо, просто лень иногда пароль набивать.
...
Рейтинг: 0 / 0
Позиционирование формы на записи (A2000+MSSQL7)
    #32064873
sFx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2Hora:если Вы когда-нибудь будете переходить на СКЛ-DAO-ACCESS, то FindFirst работать не будет, надо либо на ADO переходить , либо переписывать поиск.
...
Рейтинг: 0 / 0
Позиционирование формы на записи (A2000+MSSQL7)
    #32064888
Я:>> ... Напомню, что всё вышесказанное относится к связке Access2000+ADO+SQL Server.

Hora:>> ... При этом нужен не фильтр, а именно пизиционирование с возможностью дальнейшего перехода по записям в этой второй форме. Может нужно доустановить то, о чем вы говорите?

Точно, и тогда у вас сразу всё получится!
...
Рейтинг: 0 / 0
27 сообщений из 27, показаны все 2 страниц
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Позиционирование формы на записи (A2000+MSSQL7)
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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