Access 2002

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


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

В Access 97 поддерживать два синхронизированных представления одних и тех же данных было не так просто: для этого требовалось писать специальный код. Начиная с Access 2000 эта задача решается элементарно. На  7.8 показан пример формы (frmSyncRecordset) с двумя подчиненными формами: в одной данные представлены в виде таблицы, а в другой показаны все поля текущей записи. Когда в верхней подчиненной форме вы переходите от одной строки к другой, в нижней форме информация меняется. Чтобы реализовать все это в Access 97, потребовалось бы писать процедуры обработки события Current обеих подчиненных форм, и каждая из них должна была бы знать о существовании второй формы.

В Access 2002 все гораздо проще. Мы создали две формы (fsubTabular и fsub- Columnar), связав их с одними и теми же данными. Эти формы мы включили в frmSyncRecordset в качестве подчиненных. Затем в обработчик события главной формы Load мы поместили одну-единственную строку кода.

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

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