2015-06-08 3 views
1

Я не использую SQL в данный момент, я просто пытаюсь определить функцию с помощью функции проектирования запросов в MS Access 2010.MS Access Если функция

Что я пытаюсь сделать: очень получается что у меня есть 5-месячный спред (январь, февраль), где каждый месяц является столбцом. Оказывается, временами май имеет значение, а январь - нет, но он должен. Все значения равны или равны нулю.

То, что я пытаюсь сделать, если написать функция такого рода:

Jan15new: Ифф ([Май-15] = 1, [Jan-15] = 1, [Jan-15])

Однако, когда я запускаю запрос с помощью этой функции iff, я получил столбец, полный отрицательных, который не соблюдает правила этой функции if.

Если вы можете потерять somelight, это было бы здорово! спасибо,

+0

Можете ли вы предоставить некоторые данные вашего образца за май и янв? Это утверждение у вас есть? IFF не является заявлением о доступе, IIF. Кроме того, в истинной части вашего утверждения, похоже, есть бродяга =. Можете ли вы опубликовать заявление точно так, как оно появляется? – Gene

+1

Спасибо, ген, Рэйчел прибил его. – Matty

+0

Численное значение «True» в Access и Visual Basic - «-1» (другими словами, все биты установлены). Это, в отличие от большинства других языков (например, C-производных языков) и систем баз данных (например, SQL Server), где оно равно «1». – phoog

ответ

2

Эта формула возвращает 1, если Май-15 = 1, в противном случае возвращает любое значение, в январе-15: Если значения в вашей формуле являются логические значения, вам не нужно

Jan15new: IIf([May-15]=1,1,[Jan-15]) 
0

сравнить их к чему-либо, и вы не должны сравнивать их с номерами:

Jan15new: IIf([May-15]=True,[Jan-15]=True,[Jan-15]) 

это на самом деле бессмысленно, потому что это эквивалентно следующему:

Jan15new: IIf([May-15],[Jan-15],[Jan-15])