LEADERSOFT.ru Разработка на заказ программ и сайтов
Форумы по информационным технологиям
 
Регистрация  |  Вход
left
Форумы Минимизировать
ПоискСписок форумов
  Программирование  Microsoft Access. Файлы mdb и accdb  Тема: Фильтраци...
 Тема: Фильтрация записей по полям главной и подчинённой
 
 15.06.2007 21:02:25
All
4316 сообщения
1-ый


Тема: Фильтрация записей по полям главной и подчинённой
Подскажите, пожалуйста, как правильно организовать
фильтрацию записей по полям главной и подч. форм.
в Access 97
Я делал так:
1. Создал запрос по двум таблицам
(таблица главной и таблица подчинённой).
В запрос включено поле счётчика записей главной.
2. Создал отдельную форму для этого запроса
и вызвал эту форму кнопкой из главной формы.
Затем переход в режим изменения фильтра,
задание условий и применение фильтра.
В результирующем наборе получены записи отобранные
по полям главной и подчинённой. Каждая запись
имеет уникальный номер в поле счётчика.
3. После этого программно сформировал предложение
WHERE: (счётчик = …..) Or (счётчик = …..) Or и т.д.
4. Дальше вроде просто:
Прописываем сформированный фильтр в свойство
Filter главной формы, включаем фильтр.
Закрываем дополнительную форму.
Но! Оказывается, что в свойство Filter нельзя писать строку > 2048, хотя в справке разрешено 32768 ???
Можно что-то ещё длиной 256, но что я не нашел и
сообразить не смог, хотя здесь наверное решение
проблемы.
5. Пришлось при сформированном фильтре > 2048
в свойство Filter главной формы писать фиктивный
фильтр (счетчик > 0), а сформированный фильтр
вместо базового запроса главной формы, затем
включать фильтр главной формы. Работает, но
в общем случае подмена базового запроса главной
формы это неправильно и вообще что-то сильно
сложно.
Буду благодарен, если подскажете как грамотно решить проблему.



P.S. Общий раздел по формам
Автор: Юрий от 0:00:00 Источник ...
 15.06.2007 21:02:25
All
4316 сообщения
1-ый


RE: Фильтрация записей по полям главной и подчинённой
1. Для отбора записей в форме желательно использовать Me.RecordSource = "SELECT * ...", а фильтр использовать только для минимального отбора.
2. LinkChildFields и LinkMasterFields надо использовать для связи подчиненной и основной формы, тогда менять фильтр в подчиненной форме не надо.



P.S. Общий раздел по формам
Автор: Виктор Конюков от 0:00:00 Источник ...
 15.06.2007 21:02:25
All
4316 сообщения
1-ый


RE: Фильтрация записей по полям главной и подчинённой
Очевидно я плохо изложил суть проблемы.
Если главная и подчинённая формы нормально
связаны, то при фильтрации записей по полям
главной формы в подчинённой автоматом показываются
соответствующие записи. Известно, что при
наложении фильтра по полям подчинённой формы
записи в главной форме не фильтруются т.е в
некоторых записях главной формы подчинённая форма
будет пустая, а в некоторых записях главной формы
подчинённая форма будет содержать записи из
подчинённой таблицы, удовлетворяющие заданным условиям. Но общее количество записей в главной
форме не изменится.
Проблема - как убрать из результирующего набора
главной формы записи, которые содержат после фильтрации пустую подчинённую форму т.е. не
удовлетворяют условиям наложенным по полям
подчинённой формы.
Я не могу согласиться с Вашим утверждением:
"Для отбора записей в форме желательно использовать Me.RecordSource = "SELECT * ...", а фильтр использовать только для минимального отбора."
По моему мнению в RecordSource любой формы
необходимо изначально прописывать запрос на
максимальный для этой формы набор записей, а
фильтрация всегда должна выполняться с помощью
свойства Filter формы, а не подменой запроса
в RecordSource.
Дело в том, что после фильтрации иногда приходится
вручную уточнять результирующий набор записей.
Если фильтрация выполнялась подменой RecordSource,
то из результирующего набора можно только удалять
записи (напр. с помощью "Исключить выделенное").
Если фильтрация выполнялась с помощью свойтва
Filter, то можно в результирующий набор добавить
записи не удовлетворяющие условиям предыдущей
фильтрации (в окне "Изменение фильтра" вкладка ИЛИ
с явным указание номера записи, которую необходимо
добавить).
Если вы скажете, что это "ненаучно", я отвечу: зато иногда очень удобно и не противоречит науке.
Вопросы остаются:
Почему в свойство Filter Формы нельзя записать
строку длинее 2048, хотя в справке 32768 ?
Какой объект длиной 256 симв. можно записать
в свойство Filter Формы ?
Может кто подскажет другой метод решения проблемы
фильтрации записей в гл. и подч. формах.
С уважением,
Юрий


P.S. Общий раздел по формам
Автор: Юрий от 0:00:00 Источник ...
 15.06.2007 21:02:25
Dok
5 сообщения


RE: Фильтрация записей по полям главной и подчинённой
Вопрос к Юрию. Я с помощью фильтра по нескольким полям отфильтровал записи подчиненной формы, встроенной в главную, но выводятся отфильтрованные записи по одной в подчиненной форме. А вот если открыть новую фориу то там рез-ты фильтрации выводятся полностью. В чем проблема?
Заранее спасибо за ответ


P.S. Общий раздел по формам
Автор: Dok от 17.11.2003 0:43:41 Источник ...
  Программирование  Microsoft Access. Файлы mdb и accdb  Тема: Фильтраци...
ПоискПоиск  Список форумовСписок форумов  
right