nooo, no te rindas...
a ver, he querido decir que cuando cambie algo en el recordset, vuelves a hacer:
--->"aquí preguntas si está abierto el rec"
prueba.Open "select * from facturas", cn, adOpenDynamic,
adLockOptimistic
Set frmbusqueda.DataGrid1.DataSource = prueba
frmbusqueda.DataGrid1.Refresh
Si cierras el recordset, apaga y vamonos, no lo cierres
![Negando](http://static.forosdelweb.com/fdwtheme/images/smilies/negar.gif)
, antes de volver a abrirlo, preguntas si está abierto y si lo está, lo cierras para que no te de error.
Abres la BBDD solo una vez, en un módulo, con variables globales y lo del adUseClient también solo una vez.