Форумы HiProg.com - MS ACCESS, VBA, VB

 

Ответить на сообщение

Вернуться к теме

Вы отвечаете на сообщение:

ник: snipe
khvostatyy
чувствую не попью я пива

вот это зачем?

s = s & IIf((Nz(Me.search_by_progress_phase, 0) <> 0) Or (Nz(Me.search_by_document_type, 0) <> 0), " where ", "") & IIf((Nz(Me.search_by_progress_phase, 0) <> 0), "(D.progress_phase_id=" & Str(Me.search_by_progress_phase.Value) & ")", "") & IIf((Nz(Me.search_by_progress_phase, 0) <> 0) And (Nz(Me.search_by_document_type, 0) <> 0), " AND ", "") & IIf((Nz(Me.search_by_document_type, 0) <> 0), "(D.document_type_id =" & Str(Me.search_by_document_type.Value) & ")", "")


зачем в строке SQL Вам нужны iif?

вам надо дособирать Where
т.е. ваши действия должны быть примерно такие (по моему мнению)

имеем некую текстовую переменную strWhere
изначально strWhere=""

спрашиваем первое поле на значение
если поле пустое то ничего не делаем
если не пустое strWhere присваиваем первое условие

спрашиваем второе поле на значение
если поле пустое то ничего не делаем
если не пустое
спрашиваем strWhere на ""
если "" то strWhere присваиваем второе условие
если не пустое то strWhere = strWhere & "and второе условие"

спрашиваем третье поле на значение
если поле пустое то ничего не делаем
если не пустое
спрашиваем strWhere на ""
если "" то strWhere присваиваем третье условие
если не пустое то strWhere = strWhere & "and третье условие"
....
....
....
спрашиваем N поле на значение
если поле пустое то ничего не делаем
если не пустое
спрашиваем strWhere на ""
если "" то strWhere присваиваем N условие
если не пустое то strWhere = strWhere & "and N условие"

Спрашиваем strWhere на ""
если "" то RowSource присваиваем значение s
если не пустое то RowSource присваиваем значение s & " Where " & strWhere & ";"


Ваше имя:

Пароль:

Цитировать: [quote][/quote] Код: [code][/code]
Жирный: [b][/b] Наклонный: [i][/i]
URL: [url][/url] 

Сообщение:

 Размер файла не более 50 Кбт. Большие файлы можно размещать на www.slil.ru

Прикрепить:

 

Для вставки смайлов в текст щелкните по значку.