Такая проблема:
На одной форме есть 6 текстовых полей : ВозрастОт, ВозрастДо, ВремяОт, ВремяДо, КоличествоОт, КоличествоДо, а в таблице 6 соответствующих им ячеек: AgeBeg, AgeEnd, TimeBeg, TimeEnd, NumBeg, NumEnd.
Как сделать фильтр, с помощью которого отбираются такие строки данных, соответствующие области которых пересекаются. Например для возраста проверка на пересечение выглядит так:
(agebeg>= [ВозрастОт] And ageend<= [ВозрастДо]) Or (agebeg<= [ВозрастОт] And ageend>= [ВозрастДо]) Or (agebeg<= [ВозрастОт] And (ageend>= [ВозрастОт] And ageend <= [ВозрастДо])) Or ((agebeg>= [ВозрастОт] And agebeg [ВозрастДо]) And ageend>= [ВозрастДо]).
Аналогично для времени и количества. Все три проверки должны выполняться одновременно.
Подскажите, как выполнить такую задачу.
Заранее благодарен за помощь!
Access фильтры
Модератор: Naeel Maqsudov
Как сделать одновременно 3 сложных фильтра для формы?
Пример условия одного фильтра (остальные условия имеют такую же структуру):
(agebeg>= [ВозрастОт] And ageend<= [ВозрастДо]) Or (agebeg<= [ВозрастОт] And ageend>= [ВозрастДо]) Or (agebeg<= [ВозрастОт] And (ageend>= [ВозрастОт] And ageend <= [ВозрастДо])) Or ((agebeg>= [ВозрастОт] And agebeg [ВозрастДо]) And ageend>= [ВозрастДо]).
Заранее благодарен за помощь!!!
Пример условия одного фильтра (остальные условия имеют такую же структуру):
(agebeg>= [ВозрастОт] And ageend<= [ВозрастДо]) Or (agebeg<= [ВозрастОт] And ageend>= [ВозрастДо]) Or (agebeg<= [ВозрастОт] And (ageend>= [ВозрастОт] And ageend <= [ВозрастДо])) Or ((agebeg>= [ВозрастОт] And agebeg [ВозрастДо]) And ageend>= [ВозрастДо]).
Заранее благодарен за помощь!!!
- Naeel Maqsudov
- Сообщения: 2570
- Зарегистрирован: 20 фев 2004, 19:17
- Откуда: Moscow, Russia
- Контактная информация:
Ну а взять все фильтры в скобки и объединить с помощью And?
Или я не понял вопрос?
Или я не понял вопрос?
Я пытался, но Access пишет, что слишком длинное условие. Думаю надо писать три отдельных фильтра на VBA, но вот как...?