Новые возможности MSA2002 при использовании в ADP форм на основе sql-выражений с параметрами.
Из версии А2000 нам известно: для того, чтобы работала форма с параметрами, необходимо в источнике формы в качестве условия вместо параметров вписать знаки "?": Источник формы: Select Документы.* From Документы Дата between ? and ? , а в свойстве формы соответственно указать на какие поля формы ссылаются эти параметры: Входные параметры:? datetime =Forms![Имя формы]![Поле формы1], ? datetime =Forms![Имя формы]![Поле формы2] При переходе на А2002 при таком способе обнаруживается интересная неприятность: если попытаемся что-нибудь поправить в источнике формы (добавить или удалить поле или изменить сам источник), то свойство "Входные параметры" очищается. Первая мысль, которая приходила в голову - глюк Аксесса. Нет. Оказывается, что теперь можно прямо в sql-выражении ссылаться на конкретные поля формы, добавляя при этом знак @: Источник формы:Select Документы.* From Документы Where Дата between @Forms![Имя формы]![Поле формы1] and @Forms![Имя формы]![Поле формы2] и уже тогда не надо ничего вписывать в свойство "входные парметры" - там все появляется само собой. Входные параметры: ? = Forms![Имя формы]![Поле формы1], ? = Forms![Имя формы]![Поле формы2] Сам Акссесс ищет параметры в sql-выражении, начинающиеся на @ и подставляет их в свойство формы "Входные параметры", а так как, используя предыдущие методы заполнения источника формы (sql-выражения или хранимая процедура), Аксесс не находил @ в выражении, соответственно, он и очищал строку во входных параметрах, считая, что параметров нет. Данный способ предоставляет возможность создавать более сложные выражения и сортировку, чем используя знаки "?"
Некоторые замечания по использованию нового метода.
При формированиии sql-выражения с параметрами в графическом редакторе в источнике формы и попытке выйти с сохранением этого выражения Аксесс будет ругаться. Ничего страшного. Спокойно закрывайте окно. Аксесс при этом сохранении добавляет лищние пробелы в имени параметра. Поэтому придется вручную удалить их в свойстве "Источник формы". Что дает Аксесс при сохранении: ... @Forms ! [Имя формы] ! [Поле формы1] and @Forms ! [Имя формы] ! [Поле формы2] Нужно удалить пробелы: ... @Forms![Имя формы]![Поле формы1] and @Forms![Имя формы]![Поле формы2]