Access 2002

Проблема, связанная со свойством RecordsetClone


Главу о работе с данными мы посвятили и ADO, поскольку именно эта объектная модель по умолчанию используется в новых файлах MDB и ADP. Однако ее предшественница DAO, изначально разработанная как механизм для работы с ядром базы данных Jet, не до конца утратила свои позиции. Если вы создаете связанную форму в MDB-файле, ее набор записей является объектом DAO. Поэтому новичку в Access недостаточно изучить только ADO — ему придется хоть немного разобраться в DAO. Иначе он не сможет написать код для работы с наборами записей форм, хранящихся в MDB-файлах. Кроме того, при работе с данными Jet и MDB-файлов может оказаться, что DAO предоставляет некоторые нужные свойства, отсутствующие в ADO, а также работает быстрее. Описание объектов DAO вы найдете в Приложении Б. В нем освещаются те же вопросы, что и в главе 5, но только относительно DAO.

Предположим, что у вас большой опыт программирования в Access 97. Несколько лет вы работали с формами и пользовались их свойством RecordsetClone. Перейдя к Access 2002, вы обнаружили, что можете использовать накопленный опыт, и приступили к разработке нового приложения. Вы создали MDB-файл, как всегда делали в Access 97 (а не файл проекта — проектов в Access раньше не было). Затем вы создали таблицу и основанную на ней форму. Далее вам потребовалось выполнить некоторые действия над набором записей формы, и вы написали такой код:

Dim rst As Recordset Set rst – Me.RecordsetClone

Этим кодом вы начали обработчик одного из событий формы, в котором запрограммировали нужные действия. Запустив приложение, вы с удивлением увидели сообщение об ошибке: «Несоответствие типов».

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