2016-12-13 2 views
0

У меня есть following запроса where заявления в базе данных доступа:доступа Введите значение параметра не работает

WHERE (((IIf([MinOfDueDayMin]<0,0,Int([MinOfDueDayMin]/7)+1))<[EnterValue]) AND ((tblEquipment.Retired)=False)) 

намерение состоит в том, чтобы спросить у пользователя значения и, когда формула ----((IIf([MinOfDueDayMin]<0,0,Int([MinOfDueDayMin]/7)+1))---- меньше, чем пользователь при появлении запроса [EnterValue]. Если я использую число 52, а не [EnterValue], я получаю правильные результаты, но когда я держу [EnterValue], я получаю приглашение, и когда я вхожу в 52, я получаю результаты, которые не меньше 52. Я действительно получаю все результаты, как если бы критериев не было. Однако когда я ставлю 10, когда будет предложено вместо 52, я получу правильные результаты.

Формула в моих результатах

IIf([MinOfDueDayMin]<0,0,Int([MinOfDueDayMin]/7)+1) AS Wks 

так отображает результаты.

ответ

0

Вам необходимо преобразовать пользовательский ввод в числовое значение. Используйте функцию Val() для этого:

IIf([MinOfDueDayMin]<0,0,Int([MinOfDueDayMin]/7)+1))<Val([EnterValue]) 

Вы также можете указать тип данных для параметра. This article показывает вам, как:

Чтобы задать тип данных для параметров в запросе:

  1. С запросом открыть в режиме конструктора, на вкладке Конструктор в Show/Hide группы, нажмите Параметры.

  2. В поле «Параметры запроса» в столбце «Параметры» введите приглашение для каждого параметра, для которого вы хотите указать тип данных. Сделайте уверенным, что каждый параметр соответствует запросу, которое вы использовали в строке критериев в сетке запроса.

  3. В столбце «Тип данных» выберите тип данных для каждого параметра.

+0

Спасибо. Я сам это понял. Добавление числа работает тоже, а затем оно рассматривает его как значение. – Charlie

Смежные вопросы