Control de errores

Hola
Mi pregunta es la siguiente
Tengo una base de datos en sql server 2000, pero cuando hago una consulta y en la base de datos no existe información me da un error de eof o bof
se que debo trabajar con on error resume next para controlar el error pero no se como
Espero que me puedas ayudar enviándome un pequeño ejemplo
Y te anticipo mis agradecimientos
Mi mail es el siguiente
[email protected]
[email protected]
Respuesta
1
A ver... supongo que estarás tomando los datos con un
FOR 1 TO X
Una forma fácil de saltear ese error podría ser...
Algo como
if rs.eof then
msgbox salir
end if
Sino yo uso otra forma
es
on error goto errorProcedimiento
bla bla
bla bla
bla bla bla
errorProcedimiento:
if err.number > 0 then
msgbox err.number
end if
end sub
Bueno espero que te sirva
Cualquier problema me volvés a avisar
Ezequiel como estas
Quisiera una aclaración
que codigo deberia poner dentro del on error goto
Muchas gracias
Johnny
Muchas gracias Ezequiel tus consejos me han sido de gran ayuda
A ver...
Todo depende..
Por ejemplo... habrá algunos errores para los que quieres poner un mensaje especial y otros en que quieras un mensaje general...
Lo que hace un evento on error... es dejar de hacer lo que estaba haciendo... ir a la nueva intentar... error:
Y ahí.. se puede usar para enviar un mensaje... es para que no se cuelgue el programa por un error... del usuario
Ejemplo
Tienes en la BD la tabla Persona
persona = id_pers + nombre + apellido + telefono + direccion + localidad
Bueno.. supongamos que nombre y apellido son campos requeridos...
Entonces si nuestro programa en VB.. crea una persona y no le asigna NOMBRE Y APELLIDO
El programa tirara un mensaje de error
Entonces lo que se hace es... detectar cual es el numero de error que muestra... cuando un CAMPO requerido esta vacío...
Y ponerle un mensaje de error
No recuerdo de memoria supongamos que es el error numero 15
errorPersona:
select case err.number
case 15: msgbox "a olvidado ingresar datos necesarios"
end select
Rs. Close
Bd. Close
Esto si la quieres hacer simple... si quieres hacerlo más indicativo del error...
Podría ser
ErrorPersona:
select case err.number
case 15:
if txtNombre.text = "" then
var = "Nombre"
end if
if txtApellido.text = "" then
var2 = "Apellido"
end if
msgbox "a olvidado ingresar:" & var & " - " & var2
case 34: msgbox "otro error"
end select
...
Fíjate que los cierro el rs y la bd
Después del la etiqueta errorPersona:
Porque vb ... sigue recorriendo el procedimiento desde las etiquetas...
Si no hubiera error...
Vb verificaría las condiciones... y cerrara el rs y la bd... 1 vez
Si los hubiera ingresado... antes del error...
Entonces me hubiera salido otro error... porque habría intentado cerrar el rs y la bd.. 2 veces
Por eso te recomendé que uses
ErrorPersona:
if err.number > 0 then
msgbox err.number & " - " & err.description
end if
Entonces ahí tomas el numero de error que salio en ese momento... y podes agregarlo al select case err. Number
Bueno espero que te sirva mi consejo
Si aun tienes problemas
Me dices y veo de mandarte otro ejemplo

1 respuesta más de otro experto

Respuesta
1
Si lo que tienes es un recordset que toma estos valores no requieres hacer la validación del error posteriormente. Cuando realizo estas validaciones lo tomo como sigue, suponiendo que rs es un ADODB. Recordset
Rs. Open "Select * from mitabla"
if not rs.eof then
' el código que presenta datos o cualquier proceso
else
msgbox("No existen Datos")
end if
Muchas gracias por tu ayuda David
Voy a probar el código que me diste
Si se me presenta cualquier inconveniente te estaré consultado nuevamente
Muchas gracias
Johnny

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas