|
|
|
| Есть таблица, в которой присутствует поле DTM_FH, типа "Date/Time" . В зависимости от значения элемента RHM1 в форме условие Like должно меняться с Is Not Nul на Is Null. Вот весь текст запроса
SELECT t010_KDST.DTM_FH
FROM t010_KDST
WHERE (((t010_KDST.DTM_FH)=IIf([Forms]![FRM_KDSTM_00]![RHM1]=5,(t010_KDST.DTM_FH) Is Not Null,(t010_KDST.DTM_FH) Is Null)));
То есть, в одном случае выходят все строки в которых поле пустое, а в другом поля с занесенной датой.
Не работает, собак кудой. Напортачил с синтаксисом, чувствую.
Кто поможет? | |
|
| |
|
|
|
| Моё мнение: что IIF (тернарная операция в VB) будет тяжко работать при росте строк.
По вопросу: что если написать отдельно условие для составлении 2-х вариантов строки запроса,
одно с "Not" другое без, а потом просто пользовать где необходимо.
Т.е. реализовывать условие не в самом запросе, а просто динамически составлять запрос. | |
|
| |
|
|
|
| Можно и так, но хочется просто подсунуть запрос под форму, не расписывая в модуле.
в этом запросе уже одно поле фильтруется таким образом, но там LONG. А с датами вечная проблема. | |
|
| |
|
|
|
| WHERE IIf([Forms]![FRM_KDSTM_00]![RHM1]=5,(t010_KDST.DTM_FH) Is Not Null,(t010_KDST.DTM_FH) Is Null); | |
|
| |
|
|
|
| Это условие из запроса в конструкторе? В VBA IIF пишется IF | |
|
| |
|
|
|
|
| WHERE IIf([Forms]![FRM_KDSTM_00]![RHM1]=5,(t010_KDST.DTM_FH) Is Not Null,(t010_KDST.DTM_FH) Is Null);
только фокус с поля [RHM1] нужно убирать | |
|
| |
|
|
|
| А почему?
Сейчас попробую | |
|
| |
|
|
9 Кб. |
|
| вот => | |
|
| |
|
|
|
| Точнее будет так
WHERE (((t010_KDST.DTM_FH) Like IIf([Forms]![FRM_KDSTM_00]![RHM1]=5,(t010_KDST.DTM_FH) Is Not Null,(t010_KDST.DTM_FH) Is Null
То есть добавлен оператор LIKE. Но все равно не работает. Ничего не понимаю | |
|
| |
|
|
|
|
| Не не равно же Is Not Null.
Хотя все равно не желает. Придется, видимо переносить в модуль и выписывать RowSource. А так не хочется | |
|
| |
|
|
|
| непойму скачал пример все работает - проверь еще раз условия | |
|
| |
|
|
|
| Попробуй так. Если 5, то запускай запрос, в котором условие is null
Во всех остальных случаях запускай запрос с условием is not null
У меня почему-то не открывается VBA с данного снипом примера. | |
|
| |
|
|
|
| это чего-то с моим компом (я про не открывается)
на VBA только
Private Sub Кнопка4_Click()
DoCmd.OpenQuery "Запрос1"
End Sub | |
|
| |
|
|
|
| Спасибо, но это для школы юного программиста, думаю, что на 10 или 12 занятие. | |
|
| |
|
|
|
|
|
бабушка а что такое - несусветный крик?
- ну это внученька тип того: "Эге-ге-ге-гей-й-й-й, еб твою мать!!!!!" | |
|
| |
|
|
|
| попробуй, только верни имя таблицы
SELECT t010.*, [Forms]![FRM_KDSTM_00]![RHM1] AS dd
FROM t010
WHERE (((IsNull([t010].[DTM_FH]))=IIf([Forms]![FRM_KDSTM_00]![RHM1]=5,False,True)));
|
| |
|
| |
|
|
|
| WHERE ([Forms]![FRM_KDSTM_00]![RHM1]=5 AND t010_KDST.DTM_FH Is Not Null) OR ([Forms]![FRM_KDSTM_00]![RHM1]<>5 AND t010_KDST.DTM_FH Is Null) | |
|
| |
|
|
|
| Спасибо!!! Все получилось! | |
|
| |