Microsoft Access 2010 (32-разрядная версия), Win7 (64-разрядная версия) - функция IIf в Expression Builder не работает

Мне не удается заставить функцию IIf () работать в построителе выражений в 64-разрядной версии Microsoft Access 2010, Windows 7 Professional. Я решил проблему до ее самой простой формы, и мне действительно кажется, что функция IIf в построителе выражений не поддерживается. Я пытаюсь следовать инструкциям, приведенным на странице http://msdn.microsoft.com/en-us/library/gg241307%28v=office.14%29.aspx.

Подробности: у меня простая база данных, и я использую в запросе только одно поле из одной таблицы: Таблица: schedule_data, Поле: цель. В первом пустом столбце справа я пытаюсь:

MyExp: IIf( IsNull([purpose]) , "n/a" , [purpose] )

Я пробовал много вариантов функции IIf (), чтобы включить логические значения, такие как:

MyExp: IIf(1=2,"Wow!","Bah!")

И каждый раз, когда возвращается ошибка: «Введенное вами выражение содержит недопустимый синтаксис». + «Вы пропустили операнд или оператор, вы ввели недопустимый символ или запятую, или вы ввели текст, не заключив его в кавычки». Предлагаются следующие варианты: «ОК» и «Справка», а нажатие кнопки «Справка» переводит меня прямо на первую страницу справочной системы (т. Е. Не направляет меня к чему-либо, относящемуся к моей проблеме).

У меня вопрос, может ли это быть связано с моей 64-битной установкой? Мне известно, что некоторые функции в 64-битных приложениях еще не получили широкой поддержки. Я использовал эквивалентную функцию на других языках и в приложениях, например WordPerfect (Perfect Script), и добился большого эффекта. Пожалуйста помоги; Это сводит меня с ума.

По запросу: вот вставка моего SQL при переключении на SQL View. Он не позволял мне переключать представления, пока я не исправил ошибку, поэтому мне просто пришлось удалить этот столбец:

SELECT schedule_data.sdate, schedule_data.purpose FROM schedule_data;

person Tony Rowlett    schedule 11.03.2014    source источник
comment
Переключите запрос с Design на SQL View, скопируйте текст оператора и вставьте его в свой вопрос.   -  person HansUp    schedule 11.03.2014
comment
Что касается логических значений, я хочу сказать True, False вместо Wow !, Ба! но я не думаю, что это имеет значение в моих простых примерах.   -  person Tony Rowlett    schedule 11.03.2014
comment
@HansUp, ОК, готово, но это не позволило мне переключиться на SQL View с проблемным оператором.   -  person Tony Rowlett    schedule 11.03.2014
comment
Работает ли в построителе выражений следующее: MyExp: iif([purpose] is null, "n/a", [purpose])?   -  person Yawar    schedule 12.03.2014
comment
В качестве общего совета вам не нужно зацикливаться на одном конструкторе / редакторе запросов, если Access не позволяет переключать представления из-за ошибки. Вы можете просто открыть новое окно конструктора SQL-запросов, переключиться в представление SQL и ввести какой-нибудь тестовый SQL-запрос, чтобы увидеть, что будет работать. Я все время это делаю.   -  person Yawar    schedule 12.03.2014
comment
Ах, спасибо, я запомню. Кроме того, нет, когда я пробую вашу версию с [target] is null, я получаю ту же ошибку.   -  person Tony Rowlett    schedule 12.03.2014


Ответы (3)


У меня была точно такая же проблема с доступом 2013. С ума сойти, я попытался изменить свои региональные настройки с французского в Швейцарии на английский США, и это сработало. Это точно ошибка в Access. Я предлагаю при написании выражения iif указать регион для США, а затем при необходимости вернуться к исходному региону.

person kamy    schedule 30.04.2014
comment
Спасибо за ответ, Ками. Я нахожусь в США, но дважды проверю такие настройки, чтобы убедиться! - person Tony Rowlett; 13.05.2014

Проблема связана либо с установкой Microsoft Office 2010 (Access), либо с оборудованием рабочей станции или операционной системой. Это подтверждается проверкой другого компьютера в той же организации с тем же самым компьютером, ОС и прикладным программным обеспечением. Незначительные отличия: на проблемном компьютере 16,0 ГБ или установленная память, а на компьютере без проблемы - 8,0 ГБ. Единственное другое отличие состоит в том, что последние три цифры «Идентификатора продукта» (не версии) на проблемном компьютере - 220, а последние три цифры на рабочем компьютере - 741.

person Tony Rowlett    schedule 13.03.2014
comment
Я должен был быть более ясным: функция IIF () в Expression Builder отлично работает на другом компьютере. - person Tony Rowlett; 13.03.2014

Не нужно менять региональные настройки, просто используйте точку с запятой вместо запятой:

IIF([MyField]="Special Value"; 0; 1)
person Limonka    schedule 18.06.2015