Access 2002

Объект формы


Что касается определения общего количества строк, то здесь придется потрудиться. Данную информацию объект формы вам не предоставит: обратитесь к лежащему в ее основе набору записей. Свойство набора записей RecordCount возвращает количество загруженных строк. Поэтому естественно предположить, что для определения общего количества строк в наборе записей нужно сначала переместиться в его конец с помощью метода MoveLast. Это верно по отношению к объектам DAO, особенно если необходимо узнать общее количество записей сразу после открытия объекта Recordset. Однако опыт показывает, что для некоторых типов наборов записей это не обязательно: если немного подождать, Access сама обновит значение свойства RecordCount, присвоив ему общее количество записей еще до того, как все они будут загружены. (Более подробная информация о программном управлении данными формы приведена в разделе «Использование свойств Recordset и RecordsetClone» этой главы.)

Именно на такое поведение Access и полагается подчиненная форма, хотя ее код легко изменить. Вот как она определяет количество записей в наборе:

Этот код взят из обработчика события Current главной формы, который хранится в модуле подчиненной формы fSubNavigation. Он выводит в форме значение свойства RecordCount объекта Recordset, рассчитывая на то, что рано или поздно оно станет правильным. Если набор записей имеет небольшой объем, это значение становится правильным сразу после перехода к строке, отличной от первой. В большом наборе заиисей данный процесс может занять несколько секунд. Каждый раз, когда вы переходите от строки к строке, Access инициирует событие Current, и наша форма-пример активизирует приведенный выше код.

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