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

Совет:
Старарайтесь в ADP отходить от использования Recordset применительно к формам. Просто работать с Recordset - пожалуйста. А вот с формами лучше работать напрямую (т.е. обращаясь к свойствам и методам объекта FORM).
Ну, например если требуется искать/фильтровать программно данные подформы по полям главной формы, то изменять лучше свойство RecordSource.
Что касается перехода на нужную запись - почитайте справку по методу Docmd.FindRecord - я использую этот метод.
...
Рейтинг: 0 / 0
17.05.2003, 15:09
    #32162308
wara
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
RecordsetClone в ADP
Если форма ленточная или табличная, лучше всего использовать свойство 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
17.05.2003, 15:24
    #32162314
Лох Позорный
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
RecordsetClone в ADP
2 Вадя
Для твоей задачи как раз рекомендуется использовать Recordset, а не RecordsetClone. По крайней мере умный дяди в умных книжках так пишут.
А уж если у тебя на LostFocus меняются данные - ну это как-то неправильно (имхо). Ты бы еще на MouseMove рекордсеты на ходу менял...
...
Рейтинг: 0 / 0
17.05.2003, 21:09
    #32162378
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
RecordsetClone в ADP
2wara
в ADP RecordsetClone не работаяет так как в MDB!!!!!!!!!!!!!!!!!

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

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

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

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

Насколько я, понял ID - это или первичный ключ либо индексированое поле, тогда лучше (быстрее) искать через Seek
...
Рейтинг: 0 / 0
20.05.2003, 20:52
    #32164474
wara
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
RecordsetClone в ADP
Seek не работает с линкованными таблицами
...
Рейтинг: 0 / 0
20.05.2003, 22:29
    #32164497
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
RecordsetClone в ADP
проблема решена\r
\r
/topic/32375
...
Рейтинг: 0 / 0
21.05.2003, 09:06
    #32164581
Michael Vasilev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
RecordsetClone в ADP
To вадя:
Прочитал описание задачи и есть одно замечание. Если требуется повесить событие на перемещение по записям формы, то удобнее использовать событие "Текущая запись" (Form_Current), а не потеря фокуса-получение фокуса.
...
Рейтинг: 0 / 0
21.05.2003, 09:53
    #32164643
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
RecordsetClone в ADP
2Michael Vasilev
согласент , но только это часть задачи . в общем при выходе из записи нужно изменить запись и при вхождении в запись тоже изменить запись. поэтому работа с фокусом
...
Рейтинг: 0 / 0
21.05.2003, 10:14
    #32164680
Лох Позорный
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
RecordsetClone в ADP
Слушай, я тоже прочитал описание, и у меня вопрос возник. Для чего тебе на входе в запись ее изменять? Уж не для выделения цветом? Если да - может условное форматирование проще будет?
...
Рейтинг: 0 / 0
21.05.2003, 10:37
    #32164714
Senin Viktor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
RecordsetClone в ADP
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
21.05.2003, 19:44
    #32165548
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
RecordsetClone в ADP
2Лох П.\r
ты обсолютно прав для выделения цветом\r
\r
\r
И Я СДЕЛАЛ ЭТО!!!!!!\r
\r
/topic/32375\r
\r
\r
/topic/31407\r
\r
в этих топиках работающие вариант. \r
\r
а цель одна.
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / RecordsetClone в ADP / 15 сообщений из 15, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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