Me gustaría saber en que subrutina se ha generado un error. Me explico, con el objeto Err puedo saber la descripción del error y el número del error, pero no se que fue en la subrutina command1_click.
¿Cómo podría saber este dato?

| ||||
Podías darme un pequeño ejemplo?
__________________ .::RsOfT::. --El que se aferra a lo conocido, nunca conocerá lo desconocido-- --Es intentando lo imposible como se realiza lo posible-- --Es de pésimo gusto contentarse con algo mediocre cuando lo excelente está a nuestro alcance-- |
| |||
Cita: Utiliza la función Erl.
Iniciado por RsOfT Tengo una duda. Me gustaría saber en que subrutina se ha generado un error. Me explico, con el objeto Err puedo saber la descripción del error y el número del error, pero no se que fue en la subrutina command1_click. ¿Cómo podría saber este dato? ![]()
Código:
En la siguiente rutina seguirias con 4, 5, 6 y asi lo que funciona es la funcion Erl la que te manda la linea de error. Private Sub Command1() On Error GoTo Errores Dim A As Long, B As Long 1 A = 10 2 B = 0 3 MsgBox A / B Exit Sub Errores: MsgBox Err.Description & " Linea de error: " & Erl() 'La función Erl() se encarga de esto. End Sub |
| ||||
Sería extremandamente tedioso numerar 162 formulario que tengo en mi proyecto ![]() No habrá otra solución?
__________________ .::RsOfT::. --El que se aferra a lo conocido, nunca conocerá lo desconocido-- --Es intentando lo imposible como se realiza lo posible-- --Es de pésimo gusto contentarse con algo mediocre cuando lo excelente está a nuestro alcance-- |
| ||||
![]() Antes que todo.. explícame bien qué quieres. Porque si el error se genera en Command1_Click Lógicamente que ahí se detendrá tu aplicación.
__________________ Por favor, antes de preguntar, revisa la Guía para realizar preguntas. |
| ||||
Lo que pasa es que en cada evento de mi aplicación tengo el "On Error Goto ResumenError". Son miles de subrutinas con On Error Goto .... Entonces, si sucede cualquier error se ejecuta este pedaso de código:
Código:
Si te fijas, el pedaso de código llama la subrutina "RutinaError" y esta, aparte de avisar al usuario del error, genera un archivo con todos los detalles del error:ResumenError: Call RutinaError(Me) Ej. La fecha y hora en que se produjo, la cantidad de espacio en disco disponible, la cantidad de memoria disponible, el usuario de windows y el usuario de la aplicación, etc. Luego yo me mantengo revisando estos archivos para ir mejorando mi aplicación, pero a veces es muy difícil saber exactamente en que subrutina dió el error y me gustaría saber de una forma genérica y sin tener que ir evento tras evento a ponerle a la subrutina "RutinaError" un parámetro que diga el nombre de la subrutina que lo está ejecutando. Lo que me dice "RadicalEd" es bueno, podque me diría la línea, pero para implementarle tendría que numerar todas las líneas de código de todos mis formularios. Si me pongo hacer eso, sería un suicidio, ![]() ¿Me expliqué bien? ![]() En conclusión, lo que quiero es saber el nombre de la subrutina en que dió un error la aplicación de una forma genérica, algo así como: "Me.SubRutina.Name", jeje ¿Alguna Idea? ![]()
__________________ .::RsOfT::. --El que se aferra a lo conocido, nunca conocerá lo desconocido-- --Es intentando lo imposible como se realiza lo posible-- --Es de pésimo gusto contentarse con algo mediocre cuando lo excelente está a nuestro alcance-- |