Visual Basic - como hago?

Life is soft - evento anual de software empresarial
 
Vista:

como hago?

Publicado por Mariel (78 intervenciones) el 16/03/2006 20:35:29
mi programa da como error el 3077 yo quisiera capturarlo de alguna manera para poner un if error = 3077 then
exit sub
endif
pero no puedo como se hace??
muchas gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:como hago?

Publicado por LLE (1 intervención) el 16/03/2006 20:58:24
Private Sub Form_Load()
On Local Error GoTo men

Exit Sub
men:
If Err.Number = 3077 Then MsgBox "Error": Resume Next
End Sub

Salu2
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:como hago?

Publicado por Joan Meru (21 intervenciones) el 16/03/2006 23:05:38
"Encapsular" errores y utilizarlos es muy facil, se requiere de que coloques una linea de codigo despues del public o private de un procedimiento y antes del end sub y unas sentencias para hacer algo con el error, en tu caso creo que quieres cerrar el programa el codigo es el siguiente:

Private Sub Un_procedimiento()
On Error GoTo error ' linea para localizar error y pasarlo a la etiqueta "error"

''''procedimiento donde talvez exista el error
busfech = CVDate(DateClicked)
If IsDate(busfech) = False Then
Set rs3 = dbase.OpenRecordset("select * from Pos1 ORDER BY Prefijo_pos1, Hora_pos1")
lv1_carga
Else
Set rs3 = dbase.OpenRecordset("select * from Pos1" & _
" where Fecha_pos1 like '*" & busfech & "*' ORDER BY Fecha_pos1, Hora_pos1")
If rs3.RecordCount = 0 Then
MsgBox "Fecha no Hallada!", , "Busqueda por Fecha"
Set rs3 = dbase.OpenRecordset("select * from Pos1 ORDER BY Fecha_pos1, Hora_pos1")
lv1_carga
Else
lv1_carga
End If
End If
MonthView1.Visible = False

Exit Sub ''''salir del procedimiento para encapsular por asi decirlo


error: 'etiqueta a donde nos ha enviado el goto
If Err = 13 Then ' un if que nos dice cual seria el error, puedes poner el ' numero del error que ya identificaste
MsgBox "Datos no validos como Fecha!", , "Error generado por usuario.."
cmdbusfecha_Click

end ''cerrar el programa

Else
Resume Next 'ignorar el errro
End If
End Sub


chao espero te sirva esto para que te guies,.... AHORA ALGUIEN QUIERE POR FAVOR RESPONDER MI PREGUNTA SI SON TAN AMABLES ?, ES SOBRE EL DATAREPORT...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Sobre el manejo de errores

Publicado por ivan (463 intervenciones) el 17/03/2006 01:08:13
Aprovechando el tema sobre el manejo de errores, en la nota anterior se comenta que basta con poner el mensaje on error goto x al inicio del sub o de la función, y antes del end poner la referencia a la etiqueta del error.

Eso, supongo, detecta un error durante la ejecución de dicho sub o función... pregunto a quienes participan en esta nota..

Existe una forma como para detectar los errores en todo el código de un formulario, o acaso debo repetir ese proceso por cada sub o función que estén en el formulario.

Por su atención, gracias, y respecto al datareport no sé nada de eso, yo uso el crystal para impirimir
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:como hago?

Publicado por Joan Meru (21 intervenciones) el 17/03/2006 23:59:56
No se si exista una forma para hacer el cath de los errores en todo el programa, (es posible ) pero yo con mi limitada experiencia diria que por codigo es muy dificil puesto que cada "funcion" se maneja separadamente,...siria dificil, sin hacer la llamada a un segundo programa que se encarge de eso,o talvez tener una linea de llamada a una funcion para llamarla dentro del mismo formulario pero con la ventaja de no hacer siempre el mismo codigo, y tener esta funcion siempre en constante actividad desde que se lleve acabo alguna operaciopn en un sub si no es de esta forma la unica y talvez mas practica de la que tengo referencia es colocar esas lineas en cualquier evento de cualquier clase que se realise sobre un elemento del formulario o sobre una funcion, si se prefiere se puede colocar la linea :

On Error Resume Next

claro eto es bueno y malo dependiendo de lo quye se quiera hacer y cuando, en tiempo de diseño no creo que sea muy recomendable pues la linea lo quye hace es que ignore casi cualquier error en tiempo de ejecusion lo que afectaria los datos que no se pudieron operar y el programador no estaria conciente de que o donde se presentaria el error, pero si seria bueno en los casos donde el error no sea grave y no afecte la funcionalidad de la aplicacion como es el caso cuando se manipulan base de datos y el conteo de registros esta por debajo o por encima del rango, de registros,...

si alguien tiene mas informacion sobre el tema seria bueno, que la hicieran publica...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar