Использование правильного синтаксиса при публикации макросов Access в веб-базах данных
Исходная статья опубликована в понедельник 25 апреля 2011 г.
Макросы играют более важную роль Access 2010, чем в предыдущих версиях. Так, использование макроса — единственный способ автоматизации в веб-объектах и приложениях, публикуемых в службах Access.
Одна из трудностей заключается в использовании правильного синтаксиса в макросе.
Во-первых, существует два класса аргументов макроса с сильно отличающимся синтаксисом.
Первый класс аргумента макроса — это строка. Примером является аргумент Message действия макроса MessageBox. Чтобы указать сообщение, введите строку в аргументе без кавычек:
Однако также можно ввести выражение в этот аргумент, введя знак равенства, а затем само выражение. Как и все выражения, строки необходимо заключить в кавычки:
Другой класс аргументов указывается в форме выражения. Примером такого типа является аргумент WhereCondition действия макроса SetFilter. В конструкторе макросов эти аргументы отображаются со знаком равенстве перед текстовым полем аргумента и после него, чтобы указать пользователю, что аргумент должен быть представлен в форме выражения.
Важные вопросы использования аргумента с типом выражения
Что такое "двойное выражение" и что с ним делать?
"Двойное выражение" или "двойное вычисление" относится к случаям, когда одно выражение вложено в другое. Если ввести в аргументе типа выражения знак равенства (=) в текстовом поле, выражение будет вычислено дважды — один раз из-за знака равенства и один раз из-за знака, расположенного перед текстовым полем аргумента и после него.
Что с этим делать? Так как аргумент выражения используется в макросе веб-базы данных, синтаксис должен быть правильным, иначе при его выполнении будет возникать ошибка времени выполнения. Двойное выражение не поддерживается в приложениях служб Access. Если существует аргумент макроса, создающий двойное выражение, при каждом выполнении макроса будет возникать ошибка.
Итоги: при использовании выражения аргумента в макросе веб-базы данных не вводите знак равенства в начале выражения.
В общем случае...
При использовании аргумента выражения в макросе клиентской базы данных не следует вводить знак равенства в начале выражения, если это не требуется по каким-либо иным соображениям. Примечание. Двойное вычисление приводит к небольшому понижению производительности при каждом выполнении макроса.
Независимо от типа базы данных все строки в аргументах выражения должны быть заключены в кавычки.
Это локализованная запись блога. Исходная статья доступна по адресу Using the right syntax when publishing Access macros to Web databases