Tema: Ayuda
Ver Mensaje Individual
  #4 (permalink)  
Antiguo 09/02/2009, 13:14
Avatar de Txoco
Txoco
 
Fecha de Ingreso: junio-2008
Ubicación: Perdido en tierras Quijotescas
Mensajes: 189
Antigüedad: 15 años, 11 meses
Puntos: 7
Respuesta: Ayuda

Qué tal?

El primer error que veo en el código es que invocas al método Open y no sabemos si en ese momento la variable cadena contiene algo y es válido.

De todas formas, el código de error significa que el recordset está vacío; para evitar el mensaje, debes, o bien comprobar la propiedad RecordCount (que en tu ejemplo seguramente te devolverá cero o -1), o bien poner una comprobación:

Código:
If Validacion.EOF Or Validacion.BOF Then
    ' No hay ningún registro activo
Else
    ' Todo va bene
End If
Si EOF (End Of ¿File? - Fin de ¿fichero?)es Verdadero, significa que el recordset apunta a la última fila del recordset (ejecutar MoveNext elevaría un error interceptable). Si BOF (Beginning of F. - Principio de lo que sea) significa que el recordset apunta al registro anterior al primero, es decir, al aire. En este caso, ejecutar MovePrevious es lo que generaría el error. Como puedes deducir, si ambos son verdaderos, es que algo pasa .

Te recomiendo la segunda forma de comprobación, ya que hay engines de bases de datos que por ODBC siempre devuelven -1 en RecordCount aunque el recordset esté poblado.

Pon siempre un mecanismo de comprobación de este tipo para ahorrarle al usuario mensajes que no va a entender, pero revisa también que la instrucción SQL se concatena correctamente y devuelve al menos una fila.

Y como consejo final, comprueba el estado del recordset así:

If Validacion.State = adStateOpen Then ...

es más legible y eficaz
__________________
wile sona li mute e sona