powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / RecordsetClone в ADP
15 сообщений из 15, страница 1 из 1
RecordsetClone в ADP
    #32162200
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
как в подчиненной форме перейти на нужную запись????
поиск с использованием FindFirst медтода Recordset не подходит, т.к. при перемещении по Recordset происходит автоматическое перемещение по самим данным( потеря фокуса-получение фокуса), а у меня при событиях с фокусом данные меняются , т.е. меняется Recordset и связанные далее проблемы..
по аналогии с mdb подходит RecordsetClone, но в ADP у него какой-то глюк(?).
после применения основные данные ведут себя не адекватно - происходит их обновление многократное с мельканием на экране. пока не нажмешь SHIFT+ F9.
...
Рейтинг: 0 / 0
RecordsetClone в ADP
    #32162223
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Заводится логическая переменная: Dim НизяРеагироватьНаСобытия As Boolean
Перед FindFirst пишем НизяРеагироватьНаСобытия = True
После FindFirst пишем НизяРеагироватьНаСобытия = False
А в каждом событии пишем If НизяРеагироватьНаСобытия Then Exit Sub
...
Рейтинг: 0 / 0
RecordsetClone в ADP
    #32162235
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я бы сказал "некрасивое решение"
но похоже единственное....
буду пробовать.
спасибо..
а как-то исправить RecordsetClone?
...
Рейтинг: 0 / 0
RecordsetClone в ADP
    #32162268
incold
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В ADP, в отличие от MDB есть такое понятие как максимальное число записей на форме. Т.е. в определенных случаях кол-во записей в Recordset и на самой форме отличается.
Например:
источник формы = select * from MyTable (кол-во записей в таблице=1000)
на форме свойство MaxRecords=10
В форме требуется перейти на нужную запись?
На какую нужную?
А если она не отображена на форме, тогда куда переходить?

Совет:
Старарайтесь в ADP отходить от использования Recordset применительно к формам. Просто работать с Recordset - пожалуйста. А вот с формами лучше работать напрямую (т.е. обращаясь к свойствам и методам объекта FORM).
Ну, например если требуется искать/фильтровать программно данные подформы по полям главной формы, то изменять лучше свойство RecordSource.
Что касается перехода на нужную запись - почитайте справку по методу Docmd.FindRecord - я использую этот метод.
...
Рейтинг: 0 / 0
RecordsetClone в ADP
    #32162308
Фотография wara
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если форма ленточная или табличная, лучше всего использовать свойство recordsetClone
К примеру, надо перейти на запись с Id=325
1. Выбираем значение из ComboBox
2. Открывем RecordsetClone
dim frmSub as form
dim rstClone as recordset
set frmSub=...
set rstclone=frmSub.recordsetClone

и ищем в нем запись c ID=325, лучше всего методом findFirst

3.Если запись нашлась, присваииваем закладку реальной форме:
frmSub.bookmark=rstClone.bookmark

После этого указатель встанет на нужную запись.

Другого способа найти запись по ключевому полю мне неизвестен.

В синтаксисе могу ошибиться.
...
Рейтинг: 0 / 0
RecordsetClone в ADP
    #32162314
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Вадя
Для твоей задачи как раз рекомендуется использовать Recordset, а не RecordsetClone. По крайней мере умный дяди в умных книжках так пишут.
А уж если у тебя на LostFocus меняются данные - ну это как-то неправильно (имхо). Ты бы еще на MouseMove рекордсеты на ходу менял...
...
Рейтинг: 0 / 0
RecordsetClone в ADP
    #32162378
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2wara
в ADP RecordsetClone не работаяет так как в MDB!!!!!!!!!!!!!!!!!

2incold
MaxRecords=1000 ; кол-во записей в таблице<300 = для меня заведомо

Docmd.FindRecord - еще почемуто не пробовал.

2Лох Позорный
бывают всякие извращения - это одно из них
(главная форма, в ней 2 подформы, 1 основная с выделеним строк цветом, припереходе по записям текущая запись выделяется тоже цветом. 2 вспомогательная (тоже с выделением цветом) - только выбранные записи из первой. при преходе по второй необходимо в первой ставить указатель на идентичную запись) для работы очень удобно, операторы оформляют заказ принимая его от заказчика по телефону, многократно меняя количество и наименование. к концу разговора готов счет. когда в конце разговора (принятия заказа) просят "стартовать" для ринятия счета по факсу с клиентами происходит замешательство - они не могут понять когда? наши операторши просто тащатся от такого.
а мне приходится извращаться, я однажды так принял заказ - ради тагкого эффекта стоит это затевать...
...
Рейтинг: 0 / 0
RecordsetClone в ADP
    #32162636
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не по теме:

2wara
>и ищем в нем запись c ID=325, лучше всего методом findFirst
>Другого способа найти запись по ключевому полю мне неизвестен.

Насколько я, понял ID - это или первичный ключ либо индексированое поле, тогда лучше (быстрее) искать через Seek
...
Рейтинг: 0 / 0
RecordsetClone в ADP
    #32164474
Фотография wara
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Seek не работает с линкованными таблицами
...
Рейтинг: 0 / 0
RecordsetClone в ADP
    #32164497
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
проблема решена\r
\r
/topic/32375
...
Рейтинг: 0 / 0
RecordsetClone в ADP
    #32164581
Michael Vasilev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
To вадя:
Прочитал описание задачи и есть одно замечание. Если требуется повесить событие на перемещение по записям формы, то удобнее использовать событие "Текущая запись" (Form_Current), а не потеря фокуса-получение фокуса.
...
Рейтинг: 0 / 0
RecordsetClone в ADP
    #32164643
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2Michael Vasilev
согласент , но только это часть задачи . в общем при выходе из записи нужно изменить запись и при вхождении в запись тоже изменить запись. поэтому работа с фокусом
...
Рейтинг: 0 / 0
RecordsetClone в ADP
    #32164680
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Слушай, я тоже прочитал описание, и у меня вопрос возник. Для чего тебе на входе в запись ее изменять? Уж не для выделения цветом? Если да - может условное форматирование проще будет?
...
Рейтинг: 0 / 0
RecordsetClone в ADP
    #32164714
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2wara
>Seek не работает с линкованными таблицами

Не работает -это точно, но кто мешает использовать прямое подключение к базе с данными?

Код: plaintext
1.
2.
Open a separate ADO connection to the back-end database, and then open the 
table directly instead of using the linked table. 


Теперь остается оценить накладные расходы при использовании Find и Seek.
...
Рейтинг: 0 / 0
RecordsetClone в ADP
    #32165548
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2Лох П.\r
ты обсолютно прав для выделения цветом\r
\r
\r
И Я СДЕЛАЛ ЭТО!!!!!!\r
\r
/topic/32375\r
\r
\r
/topic/31407\r
\r
в этих топиках работающие вариант. \r
\r
а цель одна.
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / RecordsetClone в ADP
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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