|
|
|
Изменение условий фильтрации запроса
|
|||
|---|---|---|---|
|
#18+
Зравствуйте еще раз. Извините за назойливость но после долгих экспериментов хочу опять задать вопрос. Есть таблица, где проставлены флаги напротив наименований деталей. По наличию флага выдергиваются параметр детали из основой таблицы. Делается все это запросом, в котором соответственно 2 объединенные таблицы, причем со стрелкой от основной к той, в которой флаги проставлены. В сам запрос поставлено 2 поля - параметр из основной и условие, где флаг=Истина. Если в таблице с флагами не стоит ни одного флага, то нужно не выбирая просто вывести полный список из главной таблицы. Этот запрос может работать в обоих вариантах, только в первом случае в поле условия мы ставим Истину или Not is Null, во втором случае, НИЧЕГО не ставим или Is Null or Not Is Null. Вот. Cначала я стал вводить в поле условия iif(Dcound("*","Детали Вывод","[Вывод]=true";not is null;is null or not is null). Всячески пытался, но ничего не получилось. Все время он фильтрует не смотря ни на что. Стал писать функцию, которая делает тоже самое и возвращает логическое значение. Поставил в условия ( WHERE [Детали вывод].Вывод=CheckAssort()). Только CheckAssort может вернуть исключительно True или False (is null or not is null и не вернешь, потому как в SQL инструкция по другому и записыватеся) За тем переделал и CheckAssort() возвращал строку. В SQL форме запроса написал WHERE CheckAssort(). На этот раз он никогда не фильтрует. Фу... Подскажите плз, как его заставить делать и то и другое? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.05.2004, 17:46 |
|
||
|
Изменение условий фильтрации запроса
|
|||
|---|---|---|---|
|
#18+
Ну помогите пожалуйстааа. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.05.2004, 19:38 |
|
||
|
Изменение условий фильтрации запроса
|
|||
|---|---|---|---|
|
#18+
А если вторым и третьим аргументом iif поставить не is null, а Вывод is null? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.05.2004, 20:58 |
|
||
|
Изменение условий фильтрации запроса
|
|||
|---|---|---|---|
|
#18+
В строке условий прописал следующее: IIf([ok]=1;Not ([Вывод Деталей]![Вывод]) Is Null;([Вывод деталей]![Вывод] Is Null) Or (Not ([Вывод деталей]![Вывод]) Is Null)) Какой бы ОК не вводил результат один и тот же - фильтрует по проставленным флагам. В SQL это выглядит так: WHERE ((([Вывод Деталей].Вывод)=IIf([ok]=1,Not ([Вывод Деталей]![Вывод]) Is Null,([Вывод деталей]![Вывод] Is Null) Or (Not ([Вывод деталей]![Вывод]) Is Null)))) Не работает :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.05.2004, 21:43 |
|
||
|
Изменение условий фильтрации запроса
|
|||
|---|---|---|---|
|
#18+
Владимир Саныч, СПАСИБО тебе огромное за подкинутую идею Вывод is null. Разумеется, когда посмотреть на SQL, здесь уже все понятно становится!!! Я убрал лишнее и все получилось!!!! Еще раз спасибо за мысль!!!!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.05.2004, 21:50 |
|
||
|
Изменение условий фильтрации запроса
|
|||
|---|---|---|---|
|
#18+
Ну так [Вывод Деталей].Вывод= в начале условия лишнее. А то получается: [Вывод Деталей].Вывод=Not ([Вывод Деталей]![Вывод]) Is Null вместо просто Not ([Вывод Деталей]![Вывод]) Is Null ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.05.2004, 21:53 |
|
||
|
|

start [/forum/topic.php?fid=45&msg=32511808&tid=1674753]: |
0ms |
get settings: |
7ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
42ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
45ms |
get tp. blocked users: |
1ms |
| others: | 209ms |
| total: | 334ms |

| 0 / 0 |
