Access 2002

Использование списков и полей


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

Заполнение полей формы путем автоматического поиска

Автоматический поиск (AutoLookup) является сложным и редко используемым свойством Access. Он выполняется при следующих условиях:

О между таблицами установлено отношение «один-ко-многим»;

О свойству RecordsetType вашей формы присвоено значение Dynaset;

О вместо формы используется табличная форма просмотра результатов запроса;

О изменено объединяющее поле на стороне «многие» при отношении «один-ко- многим».

Предположим, вы изменяете объединяющее поле со стороны «многие». Поскольку со стороны «один» существует только один набор данных, соответствующих значению этого поля, Access, основываясь на этом значении, заполняет поля формы, связанные с этим набором данных. Так как автоматический поиск можно выполнять только в том случае, если установлено отношение «один-ко-многим», его целесообразно применять, когда часть полей формы необходимо автоматически заполнить данными, например информацией о получателе товара.

Чтобы увидеть автоматический поиск в действии, откройте форму frmAutoLook- upDemo в базе данных CH06.MDB ( 6.21). Поля этой формы получают данные из запроса qryRowFixup, который, в свою очередь, получает данные из таблиц Customers и Orders. Важным в этой форме является то, что размещенное в ней поле со списком связано с полем CustomerlD таблицы Orders, связывающим эти две таблицы (таблица Orders принадлежит стороне «многие» отношения «один-ко-многим»). Когда пользователь делает выбор в поле со списком, Access ищет выбранное им значение в ключевом поле таблицы Customers и выводит в форме данные из найденной записи. Соответствующие им текстовые поля формы доступны только для чтения и имеют вдавленные границы.

Комментарии закрыты