Hola Javiburgo.
Vamos por partes:
1 - Que no obtengas registros al hacer
adoprev.RecordSource = "XXX"
adoprev.Refresh
Se puede deber a que no hayas definido una cadena de conexión en la propiedad 'ConnectionString' del control.
2- Que al hacer
set cons = bd.OpenRecordset("XXX",dbOpenDynaset)
Set adoprev.Recordset = cons
te de error es normal, estás mezclando DAO con ADO (Supongo que 'bd' es un objecto Database de DAO, cuya función 'OpenRecordset', devuelve un recordset DAO, que tu intentas asignar a un ADO).
Con lo cual, si mezclas ADO por un LADO y DAO por otro LADO, te puedes quedar helADO... ji,ji,ji.
Espero que esto te sirva.
Abur.