ник: NewMaN
Здравствуйте! Столкнулся со следующей проблемой...
Необходимо в таблице найти все записи, числовые значения которых находятся в пределах, указываемых в текстовых полях формы. Поиск производить одновременно по 10-ти полям.
Я сделал так: создал запрос, который впринципе работает, НО, если пользователь не ввел в одно из полей значение, то запрос не находит ни одной записи. Тоесть нужно сделать так, чтобы в запрос не включались текстовые поля, которые остались пустыми.
(поля lstg5, lstg10 и тд. - минимальное значение; поля hstg5, hstg10 - максимальные, соответственно) Данные находятся в подчиненной форме.
SELECT *
FROM sample, stg
WHERE stg.stg_id=sample.sample_id And
stg.[5C]>=Forms!stgn.Controls!stg_profile.Form.Controls!lstg5.Value And
stg.[5C]<=Forms!stgn.Controls!stg_profile.Form.Controls!hstg5.Value And
stg.[10C]<=Forms!stgn.Controls!stg_profile.Form.Controls!lstg10.Value And
stg.[10C]<=Forms!stgn.Controls!stg_profile.Form.Controls!hstg10.Value And
stg.[15C]>=Forms!stgn.Controls!stg_profile.Form.Controls!lstg15.Value And
stg.[15C]<=Forms!stgn.Controls!stg_profile.Form.Controls!hstg15.Value And
stg.[20C]>=Forms!stgn.Controls!stg_profile.Form.Controls!lstg20.Value And
stg.[20C]<=Forms!stgn.Controls!stg_profile.Form.Controls!hstg20.Value And
stg.[25C]>=Forms!stgn.Controls!stg_profile.Form.Controls!lstg25.Value And
stg.[25C]<=Forms!stgn.Controls!stg_profile.Form.Controls!hstg25.Value And
stg.[30C]>=Forms!stgn.Controls!stg_profile.Form.Controls!lstg30.Value And
stg.[30C]<=Forms!stgn.Controls!stg_profile.Form.Controls!hstg30.Value And
stg.[35C]>=Forms!stgn.Controls!stg_profile.Form.Controls!lstg35.Value And
stg.[35C]<=Forms!stgn.Controls!stg_profile.Form.Controls!hstg35.Value And
stg.[40C]>=Forms!stgn.Controls!stg_profile.Form.Controls!lstg40.Value And
stg.[40C]<=Forms!stgn.Controls!stg_profile.Form.Controls!hstg40.Value And
stg.[45C]>=Forms!stgn.Controls!stg_profile.Form.Controls!lstg45.Value And
stg.[45C]<=Forms!stgn.Controls!stg_profile.Form.Controls!hstg45.Value And
stg.[50C]>=Forms!stgn.Controls!stg_profile.Form.Controls!lstg50.Value And
stg.[50C]<=Forms!stgn.Controls!stg_profile.Form.Controls!hstg50.Value And
stg.[55C]>=Forms!stgn.Controls!stg_profile.Form.Controls!lstg55.Value And
stg.[55C]<=Forms!stgn.Controls!stg_profile.Form.Controls!hstg55.Value;
|
Я еще новичек, поэтому сильно не смейтесь, вполне возможно запрос можно было сделать менее громоздким, но я не знаю.
У меня есть лишь одна бредовая идея по реализации задуманного - данные из тектовых полей формы вытягивать в отдельные переменные, и в случае, если поле пустое - применить значение минимального пустого поля = "0" а максимального = "9999". Но у меня не вышло, потому что плохо понимаю как включить название функции в запрос. Нашел в одном справочнике по использованию переменных в запросе следующее:
<Часто встает задача в условии SQL запроса использовать значение из переменной.
На прямую это невозможно сделать, но можно подставить в условие название функции которая возвращает значение требуемой переменной.
Public Function GetValue()
GetValue = variablename
End Function >
я так и сделал, но наверно неправильно в запросе указываю на функцию (точнее не знаю как)...вообщем запрос пустой получаю.
По нажатию кнопки, вызвывается отчет, который строится вот по этому запросу.
У кого какие есть мысли? Может это можно гораздо проще реализовать и как можно вообще... Спасибо!