En ADO no existe NoMatch, ni tampoco FindFirst. Debes utilizar o bien el método Find (sólo permite un criterio de comparación) o bien el método Filter del recordset. En ambos casos sabrás si la búsqueda ha tenido exito comprobando si se ha llegado al final del recordset (EOF). Yo te recomiendo el método Filter, pues el método Find es poco práctico (sólo permite un criterio de comparación y tienes que llamarlo cada vez con el criterio de búsqueda - con DAO tenías FindFirst y FindNext) El método Filter te permite más de un criterio de comparación y lo que hace es "abrir" un segundo recordset con el resultado de la búsqueda o comparación. Después lo desactivas dándole el valor adFilterNone. Por ejemplo, ejecuta este código en la base neptuno.mdb: Dim rst As ADODB.Recordset Set rst = New ADODB.Recordset With rst .ActiveConnection = CurrentProject.Connection .CursorType = adOpenStatic .LockType = adLockOptimistic .Source = "Clientes" .Open 'método Find .Find "[Ciudad] = 'Madrid'" While Not .EOF Debug.Print !IdCliente .Find "[Ciudad] = 'Madrid'", 1 Wend 'método Filter .Filter = "[Ciudad] = 'Madrid'" While Not .EOF Debug.Print !IdCliente .MoveNext Wend 'desactivamos el filtro .Filter = adFilterNone 'verás que se vuelve al primer registro While Not .EOF Debug.Print !IdCliente .MoveNext Wend End With rst.Close Set rst = Nothing