Формы на основе sql-выражений с параметрами. (ADP MSA2002)
Автор ДиД   
05.09.2002 г.
Новые возможности 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]


Просмотров: 14249

  Коментарии (1)
 1 Написал(а) артур, в 15:47 06.12.2009
А как добавлять данные

Добавить коментарий
Имя:
E-mail
Коментарий:



Код:* Code