Создать набор записей можно разными путями. Вот схема:

Итак, объект CDaoRecordset всегда создается на основе CDaoDatabase:
CDaoRecordset( CDaoDatabase* pDatabase = NULL );
Дальше следует функция Open(). Эта функций может использовать для создания набора записей три варианта.
virtual void Open( int nOpenType = AFX_DAO_USE_DEFAULT_TYPE,
LPCTSTR lpszSQL = NULL, int nOptions = 0 );
throw( CDaoException, CMemoryException );
virtual void Open( CDaoTableDef* pTableDef,
int nOpenType = dbOpenTable, int nOptions = 0 );
throw( CDaoException, CMemoryException );
virtual void Open( CDaoQueryDef* pQueryDef,
int nOpenType = dbOpenDynaset, int nOptions = 0 );
throw( CDaoException, CMemoryException );
В зависимости от того на основе чего создается набор записей. Если есть Open() на 100% должен быть Close() и он есть:
virtual void Close( );
throw( CDaoException );
Давайте построим набор записей на основе SQL запроса:
if (!cDaoDB.IsOpen()) return FALSE;
cDaoRset = new CDaoRecordset(&cDaoDB);
cDaoRset->Open( AFX_DAO_USE_DEFAULT_TYPE,"SELECT * FROM TABLE1");
Проверяем, что таблица создана, создаем новый объект и открываем набор записей.