Access 2002

Новые базы данных


При этом Access выделила вышеприведенный оператор Set. В чем же дело? В Access 97 этот код всегда работал!

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

приложении вы будете использовать объекты наборов записей, команд и подключений именно из этой библиотеки. В ответ на оператор Dim rst As Recordset

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

Set rst – Me.RecordsetClone

Но только объект, возвращенный свойством RecordsetClone, — это набор записей DAO, а не ADO. Вот вам и несоответствие типов. Переменной, объявленной как DAO.Recordset, нельзя присвоить ссылку на объект ADO.Recordset.

Можно заранее предположить, что с такой ситуацией столкнется огромное количество разработчиков. Что же им поовать? Решение простое. Если вы хотите работать со свойством RecordsetClone в MDB-файле, созданном в Access 2002, выполните следующее.

1.   Откройте любой модуль, выберите в Visual Basic команду Tools  References и в открывшемся диалоговом окне добавьте в приложение ссылку на библиотеку Microsoft DAO 3.6 Object Library.

2.   Модифицируйте свой код, чтобы все ссылки на объекты из библиотек ADO и DAO в нем были явными:

Dim rst As DAO.Recordset

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

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