powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / ADO рекордсет как источник формы: как сделать клон?
25 сообщений из 37, страница 1 из 2
ADO рекордсет как источник формы: как сделать клон?
    #32610656
Ольга_Т
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Проблема следующая: Есть формочка для персональных данных. В ней табличная субформа, в которой можно видеть суммирование по выделению. Есть процедура, которая делала клон рекордсета формы и по нему просчитывала сумму по выделенным ячейкам. Процедура правильно работала и при наложении на субформу фильтров. Я сделала открывание формы персональных данных как клон формы (по Гетцу), а субформе подвесила источник АДО рекордсет. Теперь я не могу использовать клон рекордсета этой субформы как источник данных для процедуры суммирования, а то, что может вернуть повторно вызванная процедура, не отображает наложенного вручную на форму фильтра. Кроме того, повторные вызовы процедуры просто тормозят.

Можно ли как-то изощриться и зачитывать данные с формы, висящей на АДО рекордсете без сброса пометки? То есть, можно ли как-то получить доступ к реальному набору записей, отображаемому в форме после вызова процедуры и фильтрации по содержимому одного из полей?
...
Рейтинг: 0 / 0
ADO рекордсет как источник формы: как сделать клон?
    #32610692
zz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я в похожих случаях менях фильтр, т.е при применении фильтра менялся рекордсурс (а, соответсвенно, и рекордсет) формы. И тогда me.recordset всегда дает истинное положение дел.

P.S. а Аксовский фильтр мне никогда не нравился. Бр-р...
...
Рейтинг: 0 / 0
ADO рекордсет как источник формы: как сделать клон?
    #32610699
Ольга_Т
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Имеется в виду, что нужно предвидеть, какие фильтры могут понадобиться юзеру и все это отписать в явном виде, запретив стандартные инструменты?
...
Рейтинг: 0 / 0
ADO рекордсет как источник формы: как сделать клон?
    #32610700
zz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да.
...
Рейтинг: 0 / 0
ADO рекордсет как источник формы: как сделать клон?
    #32610704
zz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В крайнем случае - сделать свою формочку фильтрации. Зато вы таким образом всегда контролируете рекордсет формы.
...
Рейтинг: 0 / 0
ADO рекордсет как источник формы: как сделать клон?
    #32610719
Ольга_Т
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Постановщик задач хочет полный произвол для фильтрации, это раз, и второе, главное, притормаживает формочка при обновлении рекордсета на каждый Shift-Dn. Хочется работать с уже открытым рекордсетом. А АДО-рекордсет не клонируется.
...
Рейтинг: 0 / 0
ADO рекордсет как источник формы: как сделать клон?
    #32610753
ячсм
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может так?
Для расчетов - сразу открыть еще один рекордсет, потом устанавливать ему св-во Filter. Значение для Filter - из одноименного св-ва формы.
...
Рейтинг: 0 / 0
ADO рекордсет как источник формы: как сделать клон?
    #32610754
ищ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
а что тебе мешает в примечание сделать
поле с sum(столбец)
он тебе покажет правильный результат
с любыми фильтрами
...
Рейтинг: 0 / 0
ADO рекордсет как источник формы: как сделать клон?
    #32610774
Ольга_Т
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мне не нужно суммировать столбец, мне нужно суммировать произвольное выделение)
...
Рейтинг: 0 / 0
ADO рекордсет как источник формы: как сделать клон?
    #32610783
Ольга_Т
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кроме того, для АДО-источника столбец в поле тоже не суммируется, по крайней мере, мне не удалось. Как рекордсета формы этого рекордсета как бы и нет, и число записей у него 1, и доступа к нему никакого.
...
Рейтинг: 0 / 0
ADO рекордсет как источник формы: как сделать клон?
    #32610813
ищ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
как понимать
"произвольное выделение"?
...
Рейтинг: 0 / 0
ADO рекордсет как источник формы: как сделать клон?
    #32610843
Ольга_Т
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Наводишь курсор мыши на любое поле в даташите на верхний угол, чтобы он превратился в крестик, и провозишь с нажатой левой кнпкой в любую сторону на любое количество позиций.
Или стоя на любом поле в даташите нашимаешь Shift и затем любую из четырех стрелочек, стрелочку несколько раз. Сколько надо.
...
Рейтинг: 0 / 0
ADO рекордсет как источник формы: как сделать клон?
    #32610875
ищ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вот готовый пример суммы по выделенному
столбец называется "код"

Private Sub код_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
Dim rst As DAO.Recordset, summa
Dim i As Long
If Me.Form.SelHeight > 0 Then
Set rst = Me.RecordsetClone
summa = 0
rst.MoveFirst
rst.Move Me.Form.SelTop - 1
For i = 1 To Me.Form.SelHeight
summa = summa + nz(rst("код"), 0)
rst.MoveNext
Next
Me.Parent.Сумма = summa
rst.Close
Set rst = Nothing
End If

End Sub
...
Рейтинг: 0 / 0
ADO рекордсет как источник формы: как сделать клон?
    #32610918
Ольга_Т
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так что, всех делов, что переменную для хранения клона надо декларировать как DAO.Recordset? И старый код будет работать? Сейчас попробую.
...
Рейтинг: 0 / 0
ADO рекордсет как источник формы: как сделать клон?
    #32610952
ищ, не вводи людей в заблуждение
ну или читай внимательнее. сказано же - ADO
...
Рейтинг: 0 / 0
ADO рекордсет как источник формы: как сделать клон?
    #32610962
Ольга_Т
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
щйгшук98кеао , так что, невозможно клонировать? Ни в какую переменную?
...
Рейтинг: 0 / 0
ADO рекордсет как источник формы: как сделать клон?
    #32611024
ищ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
а не надо лезть в ado в mdb в форме
форма в mdb к вашему сведению основана на dao.recordset
да и ваще сумма по выделенному-
пережиток екселя.
умные собаководы используют фильтр.
это я сделал медвежью услугу с кодом.
простите дурака. удалите код. пусть начинающие
программеры его не видят.(но он кстати работает)
...
Рейтинг: 0 / 0
ADO рекордсет как источник формы: как сделать клон?
    #32611069
йййй
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 ищ
а не надо лезть в ado в mdb в форме
Товарисч ищ, а где вы увидели слово mdb ?
Я вот только в вашем сообсчении его наблюдаю
да и ваще сумма по выделенному-
пережиток екселя.
А мужики то и не знают...
во беда...
авторумные собаководы используют фильтр.
Если ты не заметил - у автора вопроса и фильтр используется
Читай внимательнее вопросы.

2 OlgaT
Ну я же уже написал - заранее окрыть еще один рекордсет, установить ему фильтр как на форме. Т.е. mrst.Filter = Me.Filter
Если нужно еще выделение отслеживать - то надо будет еще и фильтрацию руками перенести.
Т.е. это такое вот рукотворное ADO-шное подобие DAO-шного поведения Form.RecordsetClone
З.Ы. Сам не пробовал.
...
Рейтинг: 0 / 0
ADO рекордсет как источник формы: как сделать клон?
    #32611107
Ольга_Т
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попробовала. С рукотворным фильтром 1)тормозит чудовищно, 2)результат суммирования неверный, то есть попадает все равно не в те записи.
...
Рейтинг: 0 / 0
ADO рекордсет как источник формы: как сделать клон?
    #32611110
йййй
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Т.е. открыть заранее, а фильтровать и сортировать - по какому-то событию от пользователя (тот же MouseUp)
...
Рейтинг: 0 / 0
ADO рекордсет как источник формы: как сделать клон?
    #32611112
йййй
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
гм. апаздал

Попробовала. С рукотворным фильтром 1)тормозит чудовищно
поиграть с различными режимами открытия

2)результат суммирования неверный, то есть попадает все равно не в те записи.
а какие попадают?
...
Рейтинг: 0 / 0
ADO рекордсет как источник формы: как сделать клон?
    #32611113
ищ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
в adp клон формы и рекордсет возвращают одни и те же записи, независимо от примененных не клиенте фильтров, поэтому Ольге и нет смысла спрашивать про клоны
а моя прога как раз и работает универсально (с фильтрами или без оных) и без разницы есть ли фильтр на форме или нет.
йййй читай правильный ответ.
...
Рейтинг: 0 / 0
ADO рекордсет как источник формы: как сделать клон?
    #32611119
ищ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
да ну вас нафиг.
им про стиральную машину, а они про корыто.
...
Рейтинг: 0 / 0
ADO рекордсет как источник формы: как сделать клон?
    #32611120
Ольга_Т
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вообще-то mdb, конечно, но а как же в АДО и лазить? Самая легкая конструкция для отбора данных, сохраненная процедурка, возвращающая 10 записей из нескольких миллионов и текстовый ее вызов в форму. Никаких линкованных таблиц, запросов-источников, никаких аксессных связей.
...
Рейтинг: 0 / 0
ADO рекордсет как источник формы: как сделать клон?
    #32611157
Ольга_Т
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У меня при попытке применить фильтр к рекордсету остается rst.Filter=0 и набор записей - исходный, нефильтрованный. Сама команда ошибки не вызывает (как и клонирование рекордсета), но игнорируется.
...
Рейтинг: 0 / 0
25 сообщений из 37, страница 1 из 2
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / ADO рекордсет как источник формы: как сделать клон?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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