cuando quiero buscar registros en un formulario por medio de codigo generalemente hago lo siguiente: Dim RST as DAO.Recordset Set RST=Me.RecordsetClone RST.Findnext Criterios... If Not RST.Nomatch Then Me.Boockmarck=RST.Bookmarck end if Ahora, Como puedo hacer esto utilizando ADO JUAN M AFAN DE RIBERA ===================== la cuestión es que si estás trabajando con archivos mdb, los recordsets de los formularios son del tipo DAO y eso no lo podemos cambiar. Pero no hay problema, aunque estés utilizando ADO. Tienes que cambiar tu código a este: Dim RST as Object Set RST=Me.RecordsetClone RST.Findnext Criterios... If Not RST.Nomatch Then Me.Bookmark=RST.Bookmark end if lo único que hemos hecho ha sido declarar la variable RST como Object. De esta manera, esa variable puede ser cualquier tipo de objeto. Al hacer la asignación Set RST=Me.RecordsetClone como el recordset del formulario es de tipo DAO, la variable RST se convierte en una variable recordset tipo DAO, "heredando" sus propiedades y métodos. Access se encargará de enlazar con la biblioteca adecuada. De esta manera, no tienes necesidad de referenciar la librería DAO. Puedes acceder a esta librería (cuando no tengas más remedio) a través de las propiedades CurrentDb y DBEngine del objeto Application de Access, sin tener que referenciarla. Ahí se encuentran practicamente toda la jerarquía DAO, excepto las constantes, de las cuales tendrás que averiguar sus valores. Por ejemplo: CurrentDb.Execute "Sentencia_Sql", 128 ' Esto equivaldría a la constante dbFailOnError