eso me preguntaba yo hasta hace unos segundos...pero creo q se me ha ocurrido una manera.
Si despues del recordset.find preguntas si llego al final...puedes evitar el error. Ej:
rsCliente.MoveFirst
rsCliente.Find "Nom_Cli='" & txtBuscar & "'"
If Not rsCliente.EOF Then
idCliente = rsCliente("Codigo_Cli")
cadena = "select * from tabla "
rsBuscar.Open cadena, db, adOpenStatic, adLockOptimistic
Set dgCambioT.DataSource = rsBuscar
Else
MsgBox "No se halló ese nombre", vbOKOnly, "No se encuentra"
txtBuscar.SetFocus
End If