Использование правильного синтаксиса при публикации макросов Access в веб-базах данных

Исходная статья опубликована в понедельник 25 апреля 2011 г.

Макросы играют более важную роль Access 2010, чем в предыдущих версиях. Так, использование макроса — единственный способ автоматизации в веб-объектах и приложениях, публикуемых в службах Access.

Одна из трудностей заключается в использовании правильного синтаксиса в макросе.

Во-первых, существует два класса аргументов макроса с сильно отличающимся синтаксисом.

Первый класс аргумента макроса — это строка. Примером является аргумент Message действия макроса MessageBox. Чтобы указать сообщение, введите строку в аргументе без кавычек:

 

Однако также можно ввести выражение в этот аргумент, введя знак равенства, а затем само выражение. Как и все выражения, строки необходимо заключить в кавычки:

Другой класс аргументов указывается в форме выражения. Примером такого типа является аргумент WhereCondition действия макроса SetFilter. В конструкторе макросов эти аргументы отображаются со знаком равенстве перед текстовым полем аргумента и после него, чтобы указать пользователю, что аргумент должен быть представлен в форме выражения.

 

Важные вопросы использования аргумента с типом выражения

Что такое "двойное выражение" и что с ним делать?

"Двойное выражение" или "двойное вычисление" относится к случаям, когда одно выражение вложено в другое. Если ввести в аргументе типа выражения знак равенства (=) в текстовом поле, выражение будет вычислено дважды — один раз из-за знака равенства и один раз из-за знака, расположенного перед текстовым полем аргумента и после него.

Что с этим делать? Так как аргумент выражения используется в макросе веб-базы данных, синтаксис должен быть правильным, иначе при его выполнении будет возникать ошибка времени выполнения. Двойное выражение не поддерживается в приложениях служб Access. Если существует аргумент макроса, создающий двойное выражение, при каждом выполнении макроса будет возникать ошибка.

Итоги: при использовании выражения аргумента в макросе веб-базы данных не вводите знак равенства в начале выражения.

В общем случае...

При использовании аргумента выражения в макросе клиентской базы данных не следует вводить знак равенства в начале выражения, если это не требуется по каким-либо иным соображениям. Примечание. Двойное вычисление приводит к небольшому понижению производительности при каждом выполнении макроса.

Независимо от типа базы данных все строки в аргументах выражения должны быть заключены в кавычки.

Это локализованная запись блога. Исходная статья доступна по адресу Using the right syntax when publishing Access macros to Web databases