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

 

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

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

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

ник: 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 >
я так и сделал, но наверно неправильно в запросе указываю на функцию (точнее не знаю как)...вообщем запрос пустой получаю.

По нажатию кнопки, вызвывается отчет, который строится вот по этому запросу.

У кого какие есть мысли? Может это можно гораздо проще реализовать и как можно вообще... Спасибо!


Ваше имя:

Пароль:

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

Сообщение:

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

Прикрепить:

 

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