RE:Crear recordset virtuel
buenas:
Como virtual puedes currarte una base de datos desde cero programandola integramente desde Visual basic. Es decir crear la BD, crear una tabla,crear campos y crear registros. Una vez trabajada la tabla, borrar toda la BD (vamos una BD temporal). Esto es posible hacerlo tanto por DAO como ADO, como más te interese, eso si, la creacion de la BD (crear el archivo) yo solo lo consegui con DAO (aunque supongo que es posible hacerlo tambien con ADO). De todas maneras tambien, si quieres, puedes trabajar con los 2 metodos (una para hacer la BD y el resto con ADO).
En la ayuda de Visual Basic 6 sale muy bien explicado como hacer una tabla y como crear tablas y campos.
En relacion con el CrystalReports eso será otra matada, que si el rpt necesita tratar con varios tipos de recordset (que no tengan un mismo patron de volcado)...
Quiza lo mas sencillo (tambien dependiendo de los datos que necesites volcar), puedes crear un campo formula (de aquellos datos que se le suelen pasan desde visual) que ocupe toda la hoja y desde visual vuelques los datos.
Espero que te sirva de ayuda.