|
|
|
Фильтрация в подчиненной форме
|
|||
|---|---|---|---|
|
#18+
Ситуация такая (AC2000, проект ADP): есть форма master-detail. С помощью контролов в главной форме пользователь может накладывать на подчиненную фильтры. Например так: Внедренный1.Form.Filter = "fk_section = " & edSection Внедренный1.Form.FilterOn = True Все хорошо работает, но только если свойство "Источник записей" подчиненной формы указывает непосредсвенно на таблицу. А вот если вместо нее указать SQL запрос (пусть даже SELECT * FROM), то все отваливается. Пишет "Возникла ошибка при обращении к свойству или методу объекта OLE.". Также скажу, что в MDB такой код работал прекрасно. В чем тут может быть проблема? И раз такое дело, в догонку еще один вопрос. Раз уж он пишет "при обращении к свойству или методу объекта OLE", то как можно узнать что это за объект и каков код ошибки. В данной ситуации я думаю, что имеется ввиду объект ADO, но вот коллекция CurrentProject.Connection.Errors подозрительно пуста... Буду признателен за помощь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2005, 14:59:48 |
|
||
|
Фильтрация в подчиненной форме
|
|||
|---|---|---|---|
|
#18+
МОЖЕТ глюки с индексами, хотя не факт. Но всё равно проверь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2005, 15:09:09 |
|
||
|
Фильтрация в подчиненной форме
|
|||
|---|---|---|---|
|
#18+
Я с такой ошибкой не сталкивался, потому что люблю делать по-другому. Обычно "управляющих" контролов на форме много, да они все разные. Но все влияют на представление данных в подчиненной. Я формирую строку select, а конкретно ее чать where ручками, постепенно склеивая нужные условия. А потом сажаю подчиненную форму на новый Recordsource. У вас сказано, что имеют место мастер-деталь формы. Тогда еще можно загнать условия отбора в LinkChild/MasterFields. Вот, прямо не ответил, но два пути обхода подсказал. Может, пригодится... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2005, 15:12:00 |
|
||
|
Фильтрация в подчиненной форме
|
|||
|---|---|---|---|
|
#18+
ProgaМОЖЕТ глюки с индексами, хотя не факт. Но всё равно проверьХм... а какие возможны глюки с индексами? Программист-ЛюбительЯ с такой ошибкой не сталкивался, потому что люблю делать по-другому. Обычно "управляющих" контролов на форме много, да они все разные. Но все влияют на представление данных в подчиненной. Я формирую строку select, а конкретно ее чать where ручками, постепенно склеивая нужные условия. А потом сажаю подчиненную форму на новый Recordsource.Спасибо за рекомендацию. Просто это не совсем "честный" способ :). Я хотел бы использовать локальный фильтр, чтобы поменьше гонять данные по сетке. Но все идет к тому, что придется сделать именно так. Программист-ЛюбительТогда еще можно загнать условия отбора в LinkChild/MasterFields.Попробовал. Появлявляются такие глюки.... на словах не объяснишь... короче в полях формы и починенной формы появляется полная чепуха. Очевидно, я что-то делаю не так, но вот как правильно, не понятно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2005, 15:51:23 |
|
||
|
Фильтрация в подчиненной форме
|
|||
|---|---|---|---|
|
#18+
Например 2 PK, или повторяющееся поле на ключе ну и т.д. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2005, 15:55:38 |
|
||
|
Фильтрация в подчиненной форме
|
|||
|---|---|---|---|
|
#18+
roman10Я хотел бы использовать локальный фильтр, чтобы поменьше гонять данные по сетке. А вы уверены, что они не гоняются при использовании св-ва Filter? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2005, 16:08:22 |
|
||
|
Фильтрация в подчиненной форме
|
|||
|---|---|---|---|
|
#18+
Сочинение строки WHERE отбирает с сервера только те данные, которые подпадают в ваше условие. В случае разных фильтров это неявно делается аксессом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2005, 16:22:24 |
|
||
|
Фильтрация в подчиненной форме
|
|||
|---|---|---|---|
|
#18+
ЛПА вы уверены, что они не гоняются при использовании св-ва Filter?Уже нет... :) Хотя вот у Гетца, 2-й том написано, что "... сугубо локальная клиентская технлогия, не предусматривающего никакого взаимодейсвтия с сервером". На самом деле я проблему уже решил. Нужный мне SQL запрос я просто оформил в виде view, и уже его указал в качестве источника записей подчиненной формы. Вероятно, некие высокие моральные соображения не позволяют Акцессу фильтровать рекордсет, если он получен явным указанием текста запроса. Будемь знать :). Больше спасибо всем откликнувшимся на мой пост. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2005, 17:14:46 |
|
||
|
Фильтрация в подчиненной форме
|
|||
|---|---|---|---|
|
#18+
автор Уже нет... :) Хотя вот у Гетца, 2-й том написано, что "... сугубо локальная клиентская технлогия, не предусматривающего никакого взаимодейсвтия с сервером". Из чего следует вывод, что даже при жестком Filter с сервера будут утянуты все записи ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2005, 17:18:14 |
|
||
|
Фильтрация в подчиненной форме
|
|||
|---|---|---|---|
|
#18+
Программист-Любитель автор Уже нет... :) Хотя вот у Гетца, 2-й том написано, что "... сугубо локальная клиентская технлогия, не предусматривающего никакого взаимодейсвтия с сервером". Из чего следует вывод, что даже при жестком Filter с сервера будут утянуты все записи ? Это же не серверный фильтр (Form.ServerFilter) Раз фильтр локальный - то и фильтруется локально. А с сервера идет все подряд. ------------------------------- Кстати, я вот тут сижу и ради интереса пытаюсь от этого избавиться. Мыслил я, что если повесить форму на отсоединенный рекордсет - то он не будет к серверу обращаться. Хрена лысого. Имею код: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. профайлерselect * from t select * from t EXEC sp_MShelpcolumns N't', NULL, N'id', 1 Ну и как это у него получается - обновлять отвязанный рекордсет, висящий на закрытом коннекшене? Ниче не понимаю Аксес 2003 SP1, MS SQL 2000 SP3a ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2005, 17:35:29 |
|
||
|
|

start [/forum/topic.php?fid=45&msg=32880302&tid=1669092]: |
0ms |
get settings: |
7ms |
get forum list: |
14ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
41ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
42ms |
get tp. blocked users: |
1ms |
| others: | 216ms |
| total: | 334ms |

| 0 / 0 |
