|
Фильтрация данных в подчиненной форме (AfterUpdate и Change)
|
|||
---|---|---|---|
#18+
Добрый день. Прошу помощи. Необходимо сделать фильтрацию в подчиненной табличной форме. Причем там, чтобы фильтр применялся по мере ввода данных. Для этого использую событие поля Change. Но что-то не складывается. Может сработать 1 раз, потом не работать, а потом сработать при деактивации и повторной активации поля и ввода в него данных. Изначально использовал свойства подчиненной формы Filter и FilterOn - не получилось. Потом решил попробовать со свойством RecordSource - та же история. Код прилагаю ниже. Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.
Что примечательно. С событием поля AfterUpdate работает отлично. То есть, код, вроде как, верный. Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.
Но задача стоит о применении фильтра именно в процессе ввода данных. Буду очень благодарен за помощь. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.08.2016, 09:47 |
|
Фильтрация данных в подчиненной форме (AfterUpdate и Change)
|
|||
---|---|---|---|
#18+
dmitriy_po, Код: vbnet 1. 2. 3. 4. 5.
... |
|||
:
Нравится:
Не нравится:
|
|||
16.08.2016, 09:59 |
|
Фильтрация данных в подчиненной форме (AfterUpdate и Change)
|
|||
---|---|---|---|
#18+
Панургdmitriy_po, Код: vbnet 1. 2. 3. 4. 5.
СПАСИБО!!! ... |
|||
:
Нравится:
Не нравится:
|
|||
16.08.2016, 10:10 |
|
Фильтрация данных в подчиненной форме (AfterUpdate и Change)
|
|||
---|---|---|---|
#18+
Requery не нужен после замены RecordSource, форма обновляется автоматически. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.08.2016, 10:25 |
|
Фильтрация данных в подчиненной форме (AfterUpdate и Change)
|
|||
---|---|---|---|
#18+
Новый затык. По одному полю фильтрует без проблем, но... Как быть, если в наличие 2 и более полей (критериев) фильтрации? При обращении к свойству Text неактивного элемента возникает ошибка 2185 ("Невозможно обратится... пока на этот элемент не установлен фокус ввода"). ... |
|||
:
Нравится:
Не нравится:
|
|||
16.08.2016, 11:46 |
|
Фильтрация данных в подчиненной форме (AfterUpdate и Change)
|
|||
---|---|---|---|
#18+
dmitriy_poПри обращении к свойству Text неактивного элемента возникает ошибкаепстепственно. Ты хотя бы справочку почитай. У текстбокса/комбобокса есть свойства Value и Text . Значение свойства Text можно получить когда на контрол установлен фокус. dmitriy_poКак быть, если в наличие 2 и более полей (критериев) фильтрации?У одного контрола спрашиваешь его Value , а у Me. ActiveControl получаешь Text . Ну и разберись какой какой. Проще написать на каждый контрол свою процедуру на событие изменение. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.08.2016, 12:04 |
|
Фильтрация данных в подчиненной форме (AfterUpdate и Change)
|
|||
---|---|---|---|
#18+
dmitriy_po, что столько-то букав? Код: vbnet 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
16.08.2016, 12:11 |
|
Фильтрация данных в подчиненной форме (AfterUpdate и Change)
|
|||
---|---|---|---|
#18+
Панургdmitriy_po, что столько-то букав? Код: vbnet 1. 2. 3.
Осподе, милосердный? 1. Для подчиненной формы пишешь процедуру с параметрами. 2. На главной размещает любые элементы для ввода. 3. Главное! Имена параметров и имена "элементов для ввода" должны совпадать. (в именах параметров процедуры @ не считается). 4. Фсе. Можно вводить. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.08.2016, 12:43 |
|
Фильтрация данных в подчиненной форме (AfterUpdate и Change)
|
|||
---|---|---|---|
#18+
Не надо на каждый контрол свою процедуру писать. В событии Change каждого из полей, от которых зависит поиск просто вызываем процедуру формирования Recordsource, а там уже читаем все эти поля и если не пустое, добаляем соответствующее условие отбора в SQL. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.08.2016, 12:48 |
|
Фильтрация данных в подчиненной форме (AfterUpdate и Change)
|
|||
---|---|---|---|
#18+
aleks2Осподе, милосердный? MrShinНе надо на каждый контрол свою процедуру писать.И на 1, 2, 3 контрола городить огород? Имхо 3 строки не стоят того. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.08.2016, 12:51 |
|
Фильтрация данных в подчиненной форме (AfterUpdate и Change)
|
|||
---|---|---|---|
#18+
Панурггородить огород Одна(!) простая функция - огород? Вызовы этой функции можно прописать непосредственно в свойстве OnChange, никаких допольнительных процедур для эвентов. А вот копи-паст несколько кусков кода дадут о себе знать при дальнейших изменениях, которые нужно будет делать сразу в нескольких местах ... |
|||
:
Нравится:
Не нравится:
|
|||
16.08.2016, 13:35 |
|
Фильтрация данных в подчиненной форме (AfterUpdate и Change)
|
|||
---|---|---|---|
#18+
aleks21. Для подчиненной формы пишешь процедуру с параметрами. . Я так уже делал изначально. В результате, при загрузке подчиненная форма запрашивает параметры у меня, а не берет их из главной формы. Это вариант действует, когда есть одна форма (ленточная), а поля для фильтров помещены в область заголовка формы. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.08.2016, 13:35 |
|
Фильтрация данных в подчиненной форме (AfterUpdate и Change)
|
|||
---|---|---|---|
#18+
Панургaleks2Осподе, милосердный? MrShinНе надо на каждый контрол свою процедуру писать.И на 1, 2, 3 контрола городить огород? Имхо 3 строки не стоят того. Таких элементов всего 9) ... |
|||
:
Нравится:
Не нравится:
|
|||
16.08.2016, 13:36 |
|
Фильтрация данных в подчиненной форме (AfterUpdate и Change)
|
|||
---|---|---|---|
#18+
Также рекомендую учесть баг Акцеса и не пытаться строить субформу с использованием прямых обращений к коноролам главной формы - субформа перестает читать изменившиеся поля на главной форме после первого же наложения фильтра. Это есть во многих версиях, по крайней мере для форм в табличном виде. Я описывал этот баг в прикрепленной теме по багам. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.08.2016, 14:11 |
|
Фильтрация данных в подчиненной форме (AfterUpdate и Change)
|
|||
---|---|---|---|
#18+
dmitriy_poпри загрузке подчиненная форма запрашивает параметры у меня, а не берет их из главной формы Там нужно не просто абы какие параметры, а в том виде, который выдает построитель выражений в конструкторе запросов, типа Forms![frmMainForm]![txtTextBoxControl] и писать их непосредственно в запрос. Вот как раз на таких обращениях баг и вылезает. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.08.2016, 14:15 |
|
Фильтрация данных в подчиненной форме (AfterUpdate и Change)
|
|||
---|---|---|---|
#18+
MrShinПанурггородить огород Одна(!) простая функция - огород? Вызовы этой функции можно прописать непосредственно в свойстве OnChange, никаких допольнительных процедур для эвентов. А вот копи-паст несколько кусков кода дадут о себе знать при дальнейших изменениях, которые нужно будет делать сразу в нескольких местах Бла-бла... Нарисуй. Интересно посмотреть простую функцию. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.08.2016, 15:50 |
|
Фильтрация данных в подчиненной форме (AfterUpdate и Change)
|
|||
---|---|---|---|
#18+
Например для 3-х полей Код: vbnet 1. 2. 3. 4. 5. 6.
В свойствах On Change для текстбоксов FindField1 - FindField3 прописать Код: vbnet 1.
вместо "[Event Procedure]" ... |
|||
:
Нравится:
Не нравится:
|
|||
16.08.2016, 16:21 |
|
Фильтрация данных в подчиненной форме (AfterUpdate и Change)
|
|||
---|---|---|---|
#18+
MrShin, хм, мне каатся, что это на событие изменеии работать корректно не будет, т.к Value и Text несколько отличаются. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.08.2016, 16:25 |
|
Фильтрация данных в подчиненной форме (AfterUpdate и Change)
|
|||
---|---|---|---|
#18+
А так? Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19.
... |
|||
:
Нравится:
Не нравится:
|
|||
16.08.2016, 16:45 |
|
Фильтрация данных в подчиненной форме (AfterUpdate и Change)
|
|||
---|---|---|---|
#18+
Да, ты прав, чуть сложнее получается, т.к. iif уже не подойдет Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20.
Можно сократить копи-паст через цикл ... |
|||
:
Нравится:
Не нравится:
|
|||
16.08.2016, 17:03 |
|
Фильтрация данных в подчиненной форме (AfterUpdate и Change)
|
|||
---|---|---|---|
#18+
MrShin, dmitriy_po...Таких элементов всего 9)... ... |
|||
:
Нравится:
Не нравится:
|
|||
16.08.2016, 17:13 |
|
Фильтрация данных в подчиненной форме (AfterUpdate и Change)
|
|||
---|---|---|---|
#18+
__Michelle, Конечно для 9 и даже для 3-х копи-пастить не стал бы, это был всего лишь демонстрационный пример. И я бы сделал не через for i... по массиву, а через For each по контролам с использованием тэгов в контролах, которые определяют поиск. Впрочем, вариантов много. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.08.2016, 17:26 |
|
Фильтрация данных в подчиненной форме (AfterUpdate и Change)
|
|||
---|---|---|---|
#18+
MrShin__Michelle, Конечно для 9 и даже для 3-х копи-пастить не стал бы, это был всего лишь демонстрационный пример. И я бы сделал не через for i... по массиву, а через For each по контролам с использованием тэгов в контролах, которые определяют поиск. Впрочем, вариантов много. Я предложил наиболее простой вариант, доступный. А усложнять и через одну функцию сделать, это и мы умеем... Так чта... ... |
|||
:
Нравится:
Не нравится:
|
|||
16.08.2016, 17:40 |
|
Фильтрация данных в подчиненной форме (AfterUpdate и Change)
|
|||
---|---|---|---|
#18+
Мне вообще-то проще, когда одна функция... ... |
|||
:
Нравится:
Не нравится:
|
|||
16.08.2016, 17:45 |
|
Фильтрация данных в подчиненной форме (AfterUpdate и Change)
|
|||
---|---|---|---|
#18+
__MichelleМне вообще-то проще, когда одна функция...Проще, когда много контролов нужно обслужить, а 2-3 - только код раздувать, да усложнять. Я вообще не вижу надобности в динамической фильтрации на таком количестве условий, это хорошо когда данных немного. А так-то можно и на классах запузырить... ... |
|||
:
Нравится:
Не нравится:
|
|||
16.08.2016, 18:06 |
|
|
start [/forum/topic.php?fid=45&fpage=96&tid=1613260]: |
0ms |
get settings: |
8ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
27ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
56ms |
get tp. blocked users: |
2ms |
others: | 325ms |
total: | 452ms |
0 / 0 |