|
|
|
ADO рекордсет как источник формы: как сделать клон?
|
|||
|---|---|---|---|
|
#18+
Проблема следующая: Есть формочка для персональных данных. В ней табличная субформа, в которой можно видеть суммирование по выделению. Есть процедура, которая делала клон рекордсета формы и по нему просчитывала сумму по выделенным ячейкам. Процедура правильно работала и при наложении на субформу фильтров. Я сделала открывание формы персональных данных как клон формы (по Гетцу), а субформе подвесила источник АДО рекордсет. Теперь я не могу использовать клон рекордсета этой субформы как источник данных для процедуры суммирования, а то, что может вернуть повторно вызванная процедура, не отображает наложенного вручную на форму фильтра. Кроме того, повторные вызовы процедуры просто тормозят. Можно ли как-то изощриться и зачитывать данные с формы, висящей на АДО рекордсете без сброса пометки? То есть, можно ли как-то получить доступ к реальному набору записей, отображаемому в форме после вызова процедуры и фильтрации по содержимому одного из полей? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2004, 14:25:02 |
|
||
|
ADO рекордсет как источник формы: как сделать клон?
|
|||
|---|---|---|---|
|
#18+
Я в похожих случаях менях фильтр, т.е при применении фильтра менялся рекордсурс (а, соответсвенно, и рекордсет) формы. И тогда me.recordset всегда дает истинное положение дел. P.S. а Аксовский фильтр мне никогда не нравился. Бр-р... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2004, 14:32:49 |
|
||
|
ADO рекордсет как источник формы: как сделать клон?
|
|||
|---|---|---|---|
|
#18+
Имеется в виду, что нужно предвидеть, какие фильтры могут понадобиться юзеру и все это отписать в явном виде, запретив стандартные инструменты? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2004, 14:34:27 |
|
||
|
ADO рекордсет как источник формы: как сделать клон?
|
|||
|---|---|---|---|
|
#18+
Да. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2004, 14:34:58 |
|
||
|
ADO рекордсет как источник формы: как сделать клон?
|
|||
|---|---|---|---|
|
#18+
В крайнем случае - сделать свою формочку фильтрации. Зато вы таким образом всегда контролируете рекордсет формы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2004, 14:35:50 |
|
||
|
ADO рекордсет как источник формы: как сделать клон?
|
|||
|---|---|---|---|
|
#18+
Постановщик задач хочет полный произвол для фильтрации, это раз, и второе, главное, притормаживает формочка при обновлении рекордсета на каждый Shift-Dn. Хочется работать с уже открытым рекордсетом. А АДО-рекордсет не клонируется. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2004, 14:40:08 |
|
||
|
ADO рекордсет как источник формы: как сделать клон?
|
|||
|---|---|---|---|
|
#18+
Может так? Для расчетов - сразу открыть еще один рекордсет, потом устанавливать ему св-во Filter. Значение для Filter - из одноименного св-ва формы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2004, 14:46:49 |
|
||
|
ADO рекордсет как источник формы: как сделать клон?
|
|||
|---|---|---|---|
|
#18+
а что тебе мешает в примечание сделать поле с sum(столбец) он тебе покажет правильный результат с любыми фильтрами ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2004, 14:46:49 |
|
||
|
ADO рекордсет как источник формы: как сделать клон?
|
|||
|---|---|---|---|
|
#18+
Мне не нужно суммировать столбец, мне нужно суммировать произвольное выделение) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2004, 14:54:01 |
|
||
|
ADO рекордсет как источник формы: как сделать клон?
|
|||
|---|---|---|---|
|
#18+
Кроме того, для АДО-источника столбец в поле тоже не суммируется, по крайней мере, мне не удалось. Как рекордсета формы этого рекордсета как бы и нет, и число записей у него 1, и доступа к нему никакого. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2004, 14:56:33 |
|
||
|
ADO рекордсет как источник формы: как сделать клон?
|
|||
|---|---|---|---|
|
#18+
как понимать "произвольное выделение"? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2004, 15:06:56 |
|
||
|
ADO рекордсет как источник формы: как сделать клон?
|
|||
|---|---|---|---|
|
#18+
Наводишь курсор мыши на любое поле в даташите на верхний угол, чтобы он превратился в крестик, и провозишь с нажатой левой кнпкой в любую сторону на любое количество позиций. Или стоя на любом поле в даташите нашимаешь Shift и затем любую из четырех стрелочек, стрелочку несколько раз. Сколько надо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2004, 15:16:24 |
|
||
|
ADO рекордсет как источник формы: как сделать клон?
|
|||
|---|---|---|---|
|
#18+
вот готовый пример суммы по выделенному столбец называется "код" 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 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2004, 15:24:13 |
|
||
|
ADO рекордсет как источник формы: как сделать клон?
|
|||
|---|---|---|---|
|
#18+
Так что, всех делов, что переменную для хранения клона надо декларировать как DAO.Recordset? И старый код будет работать? Сейчас попробую. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2004, 15:35:54 |
|
||
|
ADO рекордсет как источник формы: как сделать клон?
|
|||
|---|---|---|---|
|
#18+
ищ, не вводи людей в заблуждение ну или читай внимательнее. сказано же - ADO ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2004, 15:48:06 |
|
||
|
ADO рекордсет как источник формы: как сделать клон?
|
|||
|---|---|---|---|
|
#18+
щйгшук98кеао , так что, невозможно клонировать? Ни в какую переменную? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2004, 15:52:10 |
|
||
|
ADO рекордсет как источник формы: как сделать клон?
|
|||
|---|---|---|---|
|
#18+
а не надо лезть в ado в mdb в форме форма в mdb к вашему сведению основана на dao.recordset да и ваще сумма по выделенному- пережиток екселя. умные собаководы используют фильтр. это я сделал медвежью услугу с кодом. простите дурака. удалите код. пусть начинающие программеры его не видят.(но он кстати работает) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2004, 16:13:02 |
|
||
|
ADO рекордсет как источник формы: как сделать клон?
|
|||
|---|---|---|---|
|
#18+
2 ищ а не надо лезть в ado в mdb в форме Товарисч ищ, а где вы увидели слово mdb ? Я вот только в вашем сообсчении его наблюдаю да и ваще сумма по выделенному- пережиток екселя. А мужики то и не знают... во беда... авторумные собаководы используют фильтр. Если ты не заметил - у автора вопроса и фильтр используется Читай внимательнее вопросы. 2 OlgaT Ну я же уже написал - заранее окрыть еще один рекордсет, установить ему фильтр как на форме. Т.е. mrst.Filter = Me.Filter Если нужно еще выделение отслеживать - то надо будет еще и фильтрацию руками перенести. Т.е. это такое вот рукотворное ADO-шное подобие DAO-шного поведения Form.RecordsetClone З.Ы. Сам не пробовал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2004, 16:30:01 |
|
||
|
ADO рекордсет как источник формы: как сделать клон?
|
|||
|---|---|---|---|
|
#18+
Попробовала. С рукотворным фильтром 1)тормозит чудовищно, 2)результат суммирования неверный, то есть попадает все равно не в те записи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2004, 16:45:59 |
|
||
|
ADO рекордсет как источник формы: как сделать клон?
|
|||
|---|---|---|---|
|
#18+
Т.е. открыть заранее, а фильтровать и сортировать - по какому-то событию от пользователя (тот же MouseUp) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2004, 16:47:22 |
|
||
|
ADO рекордсет как источник формы: как сделать клон?
|
|||
|---|---|---|---|
|
#18+
гм. апаздал Попробовала. С рукотворным фильтром 1)тормозит чудовищно поиграть с различными режимами открытия 2)результат суммирования неверный, то есть попадает все равно не в те записи. а какие попадают? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2004, 16:49:45 |
|
||
|
ADO рекордсет как источник формы: как сделать клон?
|
|||
|---|---|---|---|
|
#18+
в adp клон формы и рекордсет возвращают одни и те же записи, независимо от примененных не клиенте фильтров, поэтому Ольге и нет смысла спрашивать про клоны а моя прога как раз и работает универсально (с фильтрами или без оных) и без разницы есть ли фильтр на форме или нет. йййй читай правильный ответ. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2004, 16:49:49 |
|
||
|
ADO рекордсет как источник формы: как сделать клон?
|
|||
|---|---|---|---|
|
#18+
да ну вас нафиг. им про стиральную машину, а они про корыто. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2004, 16:51:13 |
|
||
|
ADO рекордсет как источник формы: как сделать клон?
|
|||
|---|---|---|---|
|
#18+
Вообще-то mdb, конечно, но а как же в АДО и лазить? Самая легкая конструкция для отбора данных, сохраненная процедурка, возвращающая 10 записей из нескольких миллионов и текстовый ее вызов в форму. Никаких линкованных таблиц, запросов-источников, никаких аксессных связей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2004, 16:51:31 |
|
||
|
ADO рекордсет как источник формы: как сделать клон?
|
|||
|---|---|---|---|
|
#18+
У меня при попытке применить фильтр к рекордсету остается rst.Filter=0 и набор записей - исходный, нефильтрованный. Сама команда ошибки не вызывает (как и клонирование рекордсета), но игнорируется. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.07.2004, 17:04:00 |
|
||
|
|

start [/forum/topic.php?fid=45&msg=32610753&tid=1673065]: |
0ms |
get settings: |
5ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
43ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
45ms |
get tp. blocked users: |
1ms |
| others: | 197ms |
| total: | 317ms |

| 0 / 0 |
